1.一种基于深度学习的中草药推荐系统,其特征在于,包括:数据采集模块,采集伤寒论症状信息以及其对应的状态要素、证型和中药处方,构建《伤寒论》诊疗知识的数据集;
数据预处理模块,基于《伤寒论》诊疗知识的数据集,通过对症状信息及其对应的中药方剂信息进行Multi‑hot编码预处理,并建立数据库;
深度学习中草药推荐模块,运用卷积神经网络仿真临床症状群与中药间的内在匹配规律,利用Pytorch框架设计临床中药方剂推荐算法,进而实现依据症状实现中草药推荐的功能;
所述数据库中,使用含158个元素的一维向量表示一条诊疗数据中的症状组,一个元素对应着一个具体的症状,若其中一症状出现在一诊疗数据中,将其对应位置元素设定为1,若症状未出现在诊疗数据中,则将其对应位置元素设定为0;相应地,使用含77个元素的一维向量表示一条诊疗数据中的中药组;
所述深度学习中草药推荐模块具体实现功能如下:
(1)前向传播
卷积神经网络的输入定义为X=(X1,X2,…,Xn),n为158,表示输入的158种症状;将输入症状的158位编码值当作卷积层的输入,通过24个1×6卷积核进行卷积运算将其转化为24L×77×1848的矩阵,每个卷积核权重共享;将Q 定义为卷积层输出的神经元值,W为权重,b为偏置单元,m为卷积核的维度,卷积层的操作定义为:Relu(Y)=max(0,Y)
其中,σ为非线性激活函数,卷积层的输出对应48个状态要素,经过卷积层对于状态要素的归纳之后,再由第一个全连接层对归纳的状态要素进行整合,第二个全连接层之间的L+1操作对应证型的归纳分类,第三个全连接层的操作对应草药的归纳分类;设Y 为输出神经L+1元值,k为输入神经元维度,则第L+1个全连接层输出神经元值Z 定义为:正确输出草药的概率定义为:
其中,f采用Sigmoid函数,用于对输出的预测概率进行出归一化,其具体定义为:(2)损失计算
由于最终需要得到一组中药,即卷积神经网络模型需要输出多个标签,这属于多标签分类的范畴;因此,在步骤(1)的前向传播后,使用多标签交叉熵损失函数计算损失值L0:其中,H代表输出层的神经元数,即中药的种类数,th=(th∈{0,1})和yh(0≤yh≤1)分别代表着实际输出值和卷积神经网络模型预测输出值;
(3)反向传播
L
用δ(x,y)表示第L层坐标为(x,y)处的δ误差,即表示误差函数对于神经网络第l层激活L前输出值的偏导数,假设已经知道L+1层的δ误差,根据链式求导法则可得出δ (x,y)计算公式:其中,
根据第L层的δ误差,可得到该层对权重和偏置的导数:对于网络中每一个参数,采用以下公式进行更新:
其中,η为神经网络的学习率;对于全连接层的反向传播可得到如下公式:L L+1 T L+1 L
δ=(W ) δ ⊙σ'(Z)
L L
全连接层权重更新公式与卷积层相同;前向传播用网络当前的参数W 和b 对输入数据进行预测,损失计算L0对当前的预测结果进行一个评估,计算实际输出值th与卷积神经网络模型预测输出值yh之间的损失,最后将损失值反向传播从而更新网络参数,不断提升网络预测出正确草药的性能。
2.根据权利要求1所述的基于深度学习的中草药推荐系统,其特征在于,所述卷积神经网络为由一个卷积层和三个全连接层组成的卷积神经网络,样本的症状和中草药处方分别作为网络的输入和输出,状态要素和证型作为全连接层;第二个全连接层对应证型的归纳,将神经元个数设置为证型个数416,第三个全连接层对应的77种的中草药预测,将神经元个数设置为77。