掌桥专利:专业的专利平台
掌桥专利
首页

一种基于神经网络实现中医诊疗的方法、系统及设备

文献发布时间:2023-06-19 09:40:06


一种基于神经网络实现中医诊疗的方法、系统及设备

技术领域

本发明涉及中医学及信息处理领域技术领域,具体涉及一种基于神经网络实现中医诊疗的方法、系统及设备。

背景技术

中医诊疗是中国的传统医学,主要通过研究人体生理、病理来进行诊断和治疗。中医理论有着悠久的历史底蕴,并且来源于大量的医学实践,在现代医学领域有着举足轻重的地位。中医治疗的主要手段是辨证论治,其主要包含五大基本要素:症状,证候要素,证候,治法以及药材。其流程图如图1所示:医生通常通过望闻问切来确定病人的症状,不同的症状组合可以推出不同证候要素,根据不同证候要素的组合可以得出证候,医生通过证候可以有的放矢,选择合适的治法。通常每个治法有其对应的方剂,然后有一些特别的症状可以直接对应中药或中药组合。辨证论治的流程可以有效并且规范的帮助医生对症下药的进行诊疗,但是准确并且高效的完成辨证论治却是具有挑战性的,这主要由一下几点原因决定:

1)、辨证论治的准确性主要来源于医生自身的经验,而经验往往需要长时间的积累,这就需要耗费大量的时间以及资源来培养医生,而现代社会对高质量医生的需要远远高于了产出。

2)、相比较于西医,中医缺少标准化的衡量标准,即对于基本要素之间的关联性缺乏实际量化数据的支持,因此即使是高水平的医生也很有可能对一个医案有着完全不同的见解。

因此,我们希望可以设计一个可以辅助缺乏经验的医生进行诊疗的工具,并且该工具可以对诊疗的每个一个环节进行量化,使得整个流程更加的清晰明了。

传统的统计学方法比如贝叶斯推论等在中医诊疗中的应用及其有限,首先是因为中医诊疗涉及的主要是文字的处理,这对于应用传统的统计学来说是巨大的挑战,其次辨证论治涉及了五个基本要素,其中的逻辑层层相连,导致简单的线性或者非线性方法很难拟合其中所包括的逻辑。

神经网络是人工智能领域最为热门的研究方向,它作为一种由数据驱动的学习模式可以通过拟合数据来进行训练。中医诊疗本身就是一种由医案实例所发展出来的医学理论,因此我们认为神经网络在中医诊疗上可以有很好的应用。然而,要构建一个可以辅助中医诊疗的神经网络还存在一下几方面的挑战和问题亟需解决:

1)、中医包含的专业术语数量多,而且杂乱,缺乏规范化和标准化,有不少的术语实际上形容的是同一个概念。如果我们将这些术语都编码成神经网络可以识别的数字,会产生很多无用或者重复的信息被输入到网络中,从而导致网络的表现变得很差。

2)、中医的医案数据往往不是规范的,虽然辨证论治一般涉及所有的五种基本要素,但是很多时候真实的医案数据只包含其中的一种或者几种要素的对应关系,换句话说,我们希望神经网络能够实现症状,证候要素,证候,治法的任一种或者几种基本要素的组合作为输入,然后输出对应想得到的证候要素,证候,治法,药材的任一种或者几种结果的组合。

有鉴于此,亟需提供一种可实现不规范的数据结构作为输入,可以得到对应结果的多输入多输出的神经网络实现中医诊疗的方法。

发明内容

为了解决上述技术问题,本发明所采用的技术方案是提供了一种基于神经网络实现中医诊疗的方法,包括以下步骤:

输入关于症状、证候要素,证候或治法的基本要素中一个或几个词;

将词输入预先训练完成的诊疗神经网络模型,从而获得并输出患者的证候要素、证候、治法和/或药材基本要素信息;

所述诊疗神经网络模型包括依次连接的症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型,所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型、治法神经网络模型通过级联的方式并入主干网络构成诊疗神经网络模型;

且所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型分别包括使用词嵌入层和全连接层作为网络的主要骨架搭建的网络结构。

在上述方法中,所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型分别包括通过第一全连接层连接的输入块与输出块,与输出块连接的判断单元;

输入块包括依次连接的输入层、词嵌入层、铺平层和第二全连接层;输出块包括softmax层和输出层;

第二全连接层通过第一全连接层与softmax层连接,输出层与判断单元连接;判断单元与下一神基本要素神经网络模型的输入层连接;

词嵌入层将从输入层输入的词编码为词向量表示不同基本要素,并对该词向量利用PCA和K-means聚类进行分析获得特征向量,该特征向量通过铺平层输入至第二全连接层获得相应的输入块的输出结果;

输入块的输出结果经过第一全连接层输至softmax层得到相应的结果,并通过输出层将结果输出,并将输出结果输送至判断单元进行判断该结果是否出输给下一个神经网络模型的输入块,若是则将结果输给下一个神经网络模型的输入块,否则直接输出结果。

在上述方法中,所述判断单元判断依据具体为:

通过用户的输入词及设置要获得的输出结果,若判断单元接收到的输出块输出结果不是用户设置的输出,且判断到输入词中并未有关于下一个基本要素神经网络模型相关的基本要素的词,则将输出块输出结果输入至下一个基本要素神经网络模型的输入块;若判断单元接收到的输出块输出结果不是用户设置的输出,且判断到输入词中包含了关于下一个基本要素神经网络模型相关的基本要素的词,则结果不再输入至下一个基本要素神经网络模型。

在上述方法中,所述诊疗神经网络模型通过以下方法进行训练:

根据辨证论治的流程,确定每个流程最常出现的标准化要素;获取将历史的医案数据,使用BLEU方法对医案数据进行中医同义词库的建立,包括症状同义词库、证候要素同义词库,证候同义词库,治法同义词库和药材同义词库;

将症状同义词库、证候要素同义词库,证候同义词库,治法同义词库中数据随机分成训练集、验证集与测试集;再分别将相应的训练集、验证集中的医案数据输入至初始诊疗神经网络模型进行模型训练,当训练10轮后验证集训练损失不再下降,则将学习率减少到原来的1/10,然后继续训练,直到学习率低于10

在上述方法中,所述第一全连接层与第二全连接层的激活函数为tanh函数。

在上述方法中,所述诊疗神经网络模型的损失函数为交叉熵函数,具体如下式所示:

Loss

诊疗神经网络为多输出的结构,每次训练会产生4个损失值,分别对应证候要素预测损失,证候预测损失,治法预测损失,药材预测损失;根据不同要素在辨证论治中的重要程度对它们分别赋予不同的权重:

W

W

W

W

使用pytorch作为自动梯度计算工具更新诊疗神经网络模型模型,并利用数据分布式算法在多个GPU上进行训练。

在上述方法中,所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型的优化器为Adam优化器,学习率设置为0.01。

本发明还提供了一种基于神经网络实现中医诊疗的系统,包括

输入单元:输入关于症状、证候要素,证候或治法的基本要素中一个或几个词;

诊疗单元:将词输入预先训练完成的诊疗神经网络模型,从而获得患者的证候要素、证候、治法和/或药材基本要素信息;

输出单元:输出患者的证候要素、证候、治法或药材基本要素信息;

其中,

所述诊疗神经网络模型包括依次连接的症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型,所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型、治法神经网络模型通过级联的方式并入主干网络构成诊疗神经网络模型;

且所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型分别包括使用词嵌入层和全连接层作为网络的主要骨架搭建的网络结构。

在上述方案中,所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型分别包括通过第一全连接层连接的输入块与输出块,与输出块连接的判断单元;

输入块包括依次连接的输入层、词嵌入层、铺平层和第二全连接层;输出块包括sigmoid层和输出层;

第二全连接层通过第一全连接层与sigmoid层连接,输出层与判断单元连接;判断单元与下一神基本要素神经网络模型的输入层连接;

词嵌入层将从输入层输入的词编码为词向量表示不同基本要素,并对该词向量利用PCA和K-means聚类进行分析获得特征向量,该特征向量通过铺平层输入至第二全连接层获得相应的输入块的输出结果;

输入块的输出结果经过第一全连接层输至sigmoid层得到相应的结果,并通过输出层将结果输出,并将输出结果输送至判断单元进行判断该结果是否出输给下一个神经网络模型的输入块,若是,则将结果输给下一个神经网络模型的输入块并输出结果;否则直接输出结果;

在上述方案中,所述诊疗神经网络模型由设于诊疗单元中的模型训练子单元训练获得,其中,模型训练子单元包括:

标准化要素确定模块:根据辨证论治的流程,确定每个流程最常出现的标准化要素;

数据输入模块:用于获取历史的医案数据;

同义词库建立模块:用于根据获取历史的医案数据及每个流程最常出现的标准化要素,使用BLEU方法对医案数据进行中医同义词库的建立,包括症状同义词库、证候要素同义词库,证候同义词库,治法同义词库和药材同义词库;

初始诊疗模块:将症状同义词库、证候要素同义词库,证候同义词库,治法同义词库中数据随机分成训练集、验证集与测试集;再分别将相应的训练集、验证集中的医案数据输入至初始诊疗神经网络模型进行模型训练,当训练10轮后验证集训练损失不再下降,则将学习率减少到原来的1/10,然后继续训练,直到学习率低于10

在上述方案中,所述第一全连接层与第二全连接层的激活函数为tanh函数。

在上述方案中,所述诊疗神经网络模型的损失函数为交叉熵函数,具体如下式所示:

Loss

诊疗神经网络为多输出的结构,每次训练会产生4个损失值,分别对应证候要素预测损失,证候预测损失,治法预测损失,药材预测损失;根据不同要素在辨证论治中的重要程度对它们分别赋予不同的权重:

W

W

W

W

使用pytorch作为自动梯度计算工具更新诊疗神经网络模型,并利用数据分布式算法在多个GPU上进行训练。

在上述方案中,所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型的优化器为Adam优化器,学习率设置为0.01。

本发明还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述所述的一种基于神经网络实现中医诊疗的方法。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的一种基于神经网络实现中医诊疗的方法。

本发明通过词嵌入层和全连接层作为神经网络的搭建骨架,实现多输入多输出的神经网络模型,该模型可以接受辨证论治中任意的数据输入形式并且产生可以量化基本要素之间关系的词向量,实现快速有效地诊断病症并得到治疗方法,辅助缺乏经验的医生进行诊疗的工具。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的方法流程图;

图2为本发明提供的各神经网络模型的结构示意图;

图3为本发明提供的诊疗神经网络模型的训练流程示意图;

图4为本发明提供的系统结构示意框图;

图5为本发明提供的包含模型训练子单元的系统结构示意框图;

图6为本发明提供的计算机设备结构示意图。

具体实施方式

下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要理解的是,术语"中心"、"纵向"、"横向"、"长度"、"宽度"、"厚度"、"上"、"下"、"前"、"后"、"左"、"右"、"竖直"、"水平"、"顶"、"底"、"内"、"外"、"顺时针"、"逆时针"等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语"第一"、"第二"仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有"第一"、"第二"的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,"多个"的含义是两个或两个以上,除非另有明确具体的限定。此外,术语"安装"、"相连"、"连接"应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

下面结合具体实施方式和说明书附图对本发明做出详细的说明。

如图1所示,本发明提供了一种基于神经网络实现中医诊疗的方法,包括以下步骤:

S1、输入关于症状、证候要素,证候或治法的基本要素中一个或几个词;将输入的一个或几个词与建立的中医同义词库进行匹配,将各词编码为词向量表示不同基本要素;

S2、将词输入预先训练完成的诊疗神经网络模型,从而获得并输出患者的证候要素、证候、治法和/或药材基本要素信息;

所述诊疗神经网络模型包括依次连接的症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型;症状神经网络模型、证候要素神经网络模型、证候神经网络模型、治法神经网络模型通过级联(concatenation)的方式并入主干网络构成诊疗神经网络模型;本实施例四个模型都是枝干网络,通过级联(concatenation)的方式并入主干网络;具体如图2所示的框架图,其中框内部分表示分支网络,第一全连接层为主干网络中的训练层。

且所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型分别包括使用词嵌入层和全连接层作为网络的主要骨架搭建的网络结构。

本实施例,通过词嵌入层和全连接层作为神经网络的搭建骨架,实现多输入多输出的神经网络模型,该模型可以接受辨证论治中任意的数据输入形式并且产生可以量化基本要素之间关系的词向量,实现快速有效地诊断病症并得到治疗方法,辅助缺乏经验的医生进行诊疗的工具。

本实施例中,如图2所示,症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型分别包括通过第一全连接层连接的输入块与输出块,与输出块连接的判断单元;

输入块包括依次连接的输入层、词嵌入层、铺平层和第二全连接层;输出块包括sigmoid层和输出层;

第二全连接层通过第一全连接层与sigmoid层连接,输出层与判断单元连接;判断单元与下一基本要素神经网络模型的输入层连接;

词嵌入层将从输入层输入的词编码为词向量表示不同基本要素,并对该词向量利用PCA和K-means聚类进行分析获得特征向量,该特征向量通过铺平层输入至第二全连接层获得相应的输入块的输出结果;铺平层的作用是减少一个维度(对指定维度铺平,比如把2d铺平为1d),比如将8x10x20的矩阵(batch size为8,10个词,每个词分解成了20维度的向量表示)变为8x200的矩阵,即将10x20平铺了,这样可以后面继续接全连接操作。

输入块的输出结果经过第一全连接层输至sigmoid层得到相应的结果,此处由于第一全连接层(不加激活函数)等于一个线性变化,y=wx+b,这里w为全连接的权重矩阵,x和y都为向量(如果batch包含的sample数为1,否则为矩阵,每一行对应一个sample),b为bias(偏置)为向量,通过用sigmoid层作为左后输出的激活,sigmoid层将输出的结果(可能范围负无穷到正无穷)转化为(0,1)之间,即为结果的概率,并输至输出层。

并通过输出层将结果输出,并将输出结果输送至判断单元进行判断该结果是否出输给下一个神经网络模型的输入块,若是,则将结果输给下一个神经网络模型的输入块并输出结果;否则直接输出结果;

本实施例,判断单元具体的判断依据为:通过用户的输入词及设置要获得的输出结果(例如输入为证候要素,输出设置为治法),若判断单元接收到的输出块输出结果不是用户设置的输出,且判断到输入词中并未有关于下一个基本要素神经网络模型相关的基本要素的词,则将输出块输出结果输入至下一个基本要素神经网络模型的输入块;例如如果用户输入了证候要素,输出设置为治法,那么证候要素输入至证候要素模型得到的结果将会是证候,但是设置的输出是治法,因此,证候这个结果将会输入到下一基本要素神经网络模型中用于预测治法;若用户输入了证候要素及证候,输出设置为治法,那么证候要素输入至证候要素模型得到的结果将会是证候,由于输入词中包含了证候,因此,证候这个结果将不会输入到下一基本要素神经网络模型中用于预测治法,而是通过输入的证候输入到下一基本要素神经网络模型中用于预测治法;

若判断单元接收到的输出块输出结果不是用户设置的输出,且判断到输入词中包含了关于下一个基本要素神经网络模型相关的基本要素的词,则结果不再输入至下一个基本要素神经网络模型;

另外,判断单元的判断结果是将输出结果输入到下一基本要素神经网络模型,则sigmoid层需要将输出的结果转化为(0,1)之间,即将概率大于0.5的结果标为1,小于0.5的结果标为0,然后形成multihot向量输入到下一基本要素神经网络模型,例如判断结果是3个证候要素:阴虚0.3,阳虚0.6,血瘀0.7,则结果转化为阴虚0,阳虚1,血瘀1,即[0,1,1]输入到证候的分支网络)。

本实施例,通过利用全连接层和词嵌入层作为网络的主要骨架,由于输入和输出的不定性,证候要素,证候,以及治法既可能是输入,也可能是输出,而症状只能作为输入,药材只能作为输出,为了更好的阐释网络的结构,定义症状有一个输入块(即输入的症状)和一个输出块(即输出的证候要素),同理,定义证候要素有一个输入块(即输入的证候要素)和一个输出块(即输出的证候),以此类推,证候与治疗这两个基本要素的神经网络模型和上述建立过程一样;需要注意的是药材既没有输入块也没有输出块,因为药材的输出是治法的输出块。

对于输出块来说,输入的基本要素会经过词嵌入层并被编码为词向量,词嵌入层的本质是将输入的词进行独热编码,然后经过全连接层来输出该词的特征向量。词嵌入层输出的词向量可以用于进一步分析,可以利用PCA和K-means聚类,从而达到量化基本要素之间关系的目的;该特征向量经过铺平层后被送入一个全连接层然后产生输入层的最终结果;对于输出块来说,输入的数据是经过了又一层全连接层的输入层的最终结果,经过一层sigmoid的激活层后,输出最后的结果。

值得注意的是,输出块的结果有可能作为下一个输入块的输出,前提是下一个输入块不是我们要预测的要素,并且没有人为提供输入。这个确保了整个逻辑链的完整性,即如果输入的只有症状,要预测治法的话,由症状预测出的证候要素会作为输出结果输入至证候要素模型来预测证候,由产生的证候作为输出结果输入至证候模型来预测证候治法就是最后的结果。与此同时,我们也希望症状本身也能参与到治法的预测中,所以我们将所有输出块和输出块之间的全连接层连接起来,使得信息能够无障碍的流通。

下面通过具体案例说明整个模型的工作过程:

诊疗神经网络模型包含症状神经网络模型、证候要素神经网络模型、证候神经网络模型、治法神经网络模型这四个子模型,每个子模型可以理解为一个分支网络,输入模式类似RNN或者是LSTM(即按顺序输入);

对于每个分支网络来说,对于模型来说输入输出由用户自己决定,比如用户输入了症状和治法,要的到药材,症状首先输入症状神经网络模型得出证候要素,判断单元也判断出不是设定的输出结果,且这时候模型由于没有得到证候要素的输入,预测出的证候要素作为新的输入供给给下一个证候要素神经网络模型,然后输出治法,但是由于判断单元识别到用户在输入时输入了治法,则证候要素神经网络模型预测的治法不需要输入到下一个模型,系统直接将原输入的治法输入至治法神经网络模型预测出药材;以此可以推断所有的输入输出模式。

对于主干网络:

输入为症状和治法,输出设置为药材的前提下,输入的症状通过症状分支网络embedding层,fc层得到症状的特征表示,该特征表示预测出证候要素,由于证候要素并不是设置所需的输出,则预测的证候要素输入至证候要素分支网络,通过证候要素分支网络得到证候要素的特征表示,该特征表示与症状特征表示拼接(concatenate)预测出证候,同理通过证候分支网络得到证候特征表示,该特征表示与症状,证候要素特征表示拼接(concatenate)然后预测出治法,通过治法分支网络得到治法特征表示,该特征表示与症状,证候要素,证候特征表示拼接(concatenate)然后预测药材,这种处理的原因在于,人为给定的数据必定是最准确的,我们只有在没有准确数据的情况下利用网络生成下一个分支网络的输入,如果已经有了准确数据,就不需要利用网络生成了。

即分支网络用来输入对应的症状,证候要素等,经过embedding和fc得到对应的特征表示并入到主干网络(通过concatenate),主干网络可以预测出下一个分支网络的输入(如果用户没有给出对应的输入)然后得到新的分支网络结果继续并入主干网络,直到得到用户需要的最后的结果。

本实施例中,上述诊疗神经网络模型通过以下方法进行训练获得:

首先,对于模型的训练,需要构建模型训练所需的训练数据、验证数据及测试数据;本实施例利用BLEU(Bilingual Language Understudy)方法来进行中医同义词库的建立。使用BLEU方法来衡量非标准要素和标准要素间的匹配程度,并以此为依据建立同义词库,从而避免很多的重复或者无用信息被输入到神经网络中处理,使网络表现力更优;如图3所示,具体训练过程如下:

A1、根据辨证论治的流程(即症状→症状要素→症候→治法→药材),确定每个流程最常出现的标准化要素;标准化主要是为了减少网络的输入词集合,比如网络无法认识到脉弦,弦脉其实是一个意思的词,虽然可以通过训练学习到他们意思相近,但是为了减少网络的参数(因为每个词都需要训练成一个词向量并保存),我们进行标准化,把同义词归类所以标准化采用的是医学典籍里面使用频率比较高的名词(比如食欲不好在中医中通常说成纳呆,于是将纳呆加入训练的词集合)。

A2、获取将历史的医案数据,根据步骤A1使用BLEU方法对医案数据进行中医同义词库的建立,包括症状同义词库、证候要素同义词库,证候同义词库,治法同义词库和药材同义词库;

A3、将症状同义词库、证候要素同义词库,证候同义词库,治法同义词库中数据随机分成训练集、验证集与测试集;

A4、再分别将相应的训练集、验证集中的医案数据输入至初始诊疗神经网络模型进行模型训练,当训练10轮后验证集训练损失不再下降,则将学习率减少到原来的1/10,然后继续训练,直到学习率低于10

下面通过如何构建症状的同义词库说明各基本要素同义词库建立。

BLEU实际上是一种N-gram的匹配方法,首先令标准的症状库为S,其中S

再令W

引入一个长度惩罚因子(Brevity Penelty):

式中,ls表示所对比的标准症状的长度,lc表示所选取的非标准症状的长度,此长度惩罚因子的作用在于,对于很长的症状或者非标准症状,其出现的n-gram一定会更多,这样出现匹配的概率会更高,引入该长度惩罚因子可以抵消症状或者非标准症状的长度所带来的影响;其中,标准的症状是用来训练网络的标准症状名称,因为网络输入需要标准化,比如弦脉和脉弦其实是一个意思,然如果不标准化为一个词,网络会当成两个词来处理,所以都用脉弦(人为定义的标准症状名)来表示。

最后对任意的一对标准症状和非标准症状计算加权平均的BLEU Score:

式中,Wn为加权平均系数,N一般取4,因为大于4的gram基本无法匹配;

一般来说单个字匹配的意义不大,因此定义:

本实施例诊疗神经网络模型采用的损失函数为交叉熵函数如下所示:

Loss

由于网络为多输出的结构,每次训练会产生4个损失值,分别对应证候要素预测损失,证候预测损失,治法预测损失,药材预测损失。本实施例根据不同要素在辨证论治中的重要程度对他们分别赋予不同的权重来提升网络对数据的学习能力,具体为:

W

W

W

W

本实施例使用pytorch作为自动梯度计算工具进行训练时的模型更新,并利用数据分布式算法在多个GPU上进行训练。

本实施例优选,所述第一全连接层与第二全连接层的激活函数为tanh函数;tanh函数可以引入非线性的特行,并且当输入为0时,输出也为0,这个特征确保了当神经网络进行反传的时候,如果输入为0(即没有输入对应的基本要素),其相关联的权重更新也为0。所以即使输入的数据的格式会不断变化,我们也能保证只更新相对应的逻辑,而不会影响没有数据没有涉及的逻辑,从而确保了网络的鲁棒性。

如图4所示,本发明还提供了一种基于神经网络实现中医诊疗的系统,包括

输入单元:输入关于症状、证候要素,证候或治法的基本要素中一个或几个词;

诊疗单元:将词输入预先训练完成的诊疗神经网络模型,从而获得患者的证候要素、证候、治法和/或药材基本要素信息;

输出单元:输出患者的证候要素、证候、治法或药材基本要素信息;

其中,

所述诊疗神经网络模型包括依次连接的症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型,所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型、治法神经网络模型通过级联的方式并入主干网络构成诊疗神经网络模型;

且所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型分别包括使用词嵌入层和全连接层作为网络的主要骨架搭建的网络结构。

本实施例优选,所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型分别包括通过第一全连接层连接的输入块与输出块,与输出块连接的判断单元;

输入块包括依次连接的输入层、词嵌入层、铺平层和第二全连接层;输出块包括sigmoid层和输出层;

第二全连接层通过第一全连接层与sigmoid层连接,输出层与判断单元连接;判断单元与下一神基本要素神经网络模型的输入层连接;

词嵌入层将从输入层输入的词编码为词向量表示不同基本要素,并对该词向量利用PCA和K-means聚类进行分析获得特征向量,该特征向量通过铺平层输入至第二全连接层获得相应的输入块的输出结果;

输入块的输出结果经过第一全连接层输至sigmoid层得到相应的结果,并通过输出层将结果输出,并将输出结果输送至判断单元进行判断该结果是否出输给下一个神经网络模型的输入块,若是,则将结果输给下一个神经网络模型的输入块并输出结果;否则直接输出结果。

本实施例中,诊疗神经网络模型由设于诊疗单元中的模型训练子单元训练获得,如图5所示,其中:

模型训练子单元包括:

标准化要素确定模块:根据辨证论治的流程,确定每个流程最常出现的标准化要素;

数据输入模块:用于获取历史的医案数据;

同义词库建立模块:用于根据获取历史的医案数据及每个流程最常出现的标准化要素,使用BLEU方法对医案数据进行中医同义词库的建立,包括症状同义词库、证候要素同义词库,证候同义词库,治法同义词库和药材同义词库;

初始诊疗模块:将症状同义词库、证候要素同义词库,证候同义词库,治法同义词库中数据随机分成训练集、验证集与测试集;再分别将相应的训练集、验证集中的医案数据输入至初始诊疗神经网络模型进行模型训练,当训练10轮后验证集训练损失不再下降,则将学习率减少到原来的1/10,然后继续训练,直到学习率低于10

本实施例中,如何构建各基本要素的同义词库详见上述方法中给出的具体步骤,此处不再赘述。

本实施例优选,所述症状神经网络模型、证候要素神经网络模型、证候神经网络模型与治法神经网络模型的优化器为Adam优化器,学习率设置为0.01;在训练过程中,各模型如果10个训练轮次中,训练损失不降低的话,就将学习率缩小十倍,直到学习率低于10

本实施例诊疗神经网络模型采用的损失函数为交叉熵函数如下所示:

Loss

由于诊疗神经网络为多输出的结构,每次训练会产生4个损失值,分别对应证候要素预测损失,证候预测损失,治法预测损失,药材预测损失。本实施例根据不同要素在辨证论治中的重要程度对他们分别赋予不同的权重来提升网络对数据的学习能力,具体为:

W

W

W

W

本实施例使用pytorch作为自动梯度计算工具进行训练时的各模型更新,并利用数据分布式算法在多个GPU上进行训练。

本实施例优选,所述第一全连接层与第二全连接层的激活函数为tanh函数。

本发明有益效果:

(1)本发明提出使用BLEU Score来衡量各基本要素的非标准要素和标准要素间的匹配程度,并以此为依据建立同义词库,从而减少了神经网络需要处理的无用数据量。

(2)本发明提出利用多输入多输出的网络结构辅助中医诊疗的辨证论治,通过利用词嵌入层产生的词向量特征来表示不同基本要素,通过对每个词向量进行分析,可以找出并且量化基本要素之间的关联性。通过使用tanh函数保证了在输入数据格式不同的情况下,只对相对应的权重进行迭代更新,从而确保了网络的鲁棒性。

(3)本发明使用了加权的交叉熵来体现不同的基本要素在辨证论治中的重要性,来提升神经网络对数据的学习能力。

下面通过具体实施案例来说明本发明。

为了验证本发明网络结构的优越性,我们收集并总结了1000例医案,并且使用BLEU对医案数据进行标准化,根据收集到的医案数据对输入和输出进行了如下分类:

输入为症状,输出为证候要素;

输入为症状,输出为药材;

输入为症状,输出为治法+药材;

输入为证候要素+证候,输出为药材;

输入为症状+证候+治法,输出为药材;

输入为证候,输出为治法;

将每一个类别均等抽样至800条数据作为训练集,剩下的200条作为测试集。首先我们数据以按序号顺序依次输入到神经网络训练作为对照组,然后将所有数据打乱,并输入到神经网络作为实验组,通过观察测试集的表现从而得出本发明提出的多输入多输出的模型是否能够对不规范的数据不敏感。同时我们将其中的词向量提取出来进行聚类,并参照中医方典来判断聚类的准确性。

结果显示,实验组与对照组的准确率分别达到95.35和95.37,该误差属于随机误差,处于可接受的范围,由此我们得出该网络结构可以处理不规范的数据结构,并且进行学习。两种方法产生的词向量形成了相同的聚类结果并且与中医方典内容相符合。

如图6所示,本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中计及关键指标提升运行效果的配电网技术改造方法。

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中识别模型训练方法,或者计算机程序被处理器执行时实现上述实施例中一种基于神经网络实现中医诊疗的方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

本发明不局限于上述最佳实施方式,任何人应该得知在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。

技术分类

06120112252974