首页> 中国专利> 基于冠心病诊断神经网络模型冠心病诊断方法及系统

基于冠心病诊断神经网络模型冠心病诊断方法及系统

摘要

本发明公开了一种基于冠心病诊断神经网络模型冠心病诊断方法及系统,该方法包括步骤:输入关于症状基本要素和其他特征的一个或几个词;将词输入预先训练完成的冠心病诊断神经网络模型,获得并输出患者的证候要素、证候、治法和/或药材基本要素信息。本实施例基于改进的Transformer模型是一种可以应用在中医复杂辩证思维的模型,模型为端对端模型,改进的Transformer模型中的Transformer模块映射关系不仅能解决线性映射关系,同时会有自适应模块,这种映射关系恰好满足了我们的需求去解决上述症状输入包括多种特征的情况下正确的药材对应关系,也使整个诊断结果更加准确。

著录项

说明书

技术领域

本发明涉及疾病诊断方法,具体涉及基于冠心病诊断神经网络模型冠心病诊断方法及系统。

背景技术

随着互联网上社交方面以及专业领域自然语言数据的大规模增长,各种自然语言处理技术受到广泛的关注和应用。中医由于其特有的诊疗方式,结合基于患者、照顾者的疗效报告、实验室检验报告,取得较为明显的临床疗效,获得很多病患的推崇。但是因为很多中医治疗的效果大多缺失客观化、定量化的评价模式,所以用深度学习或者其他算法来模拟中医诊疗、总结中医经验变得难度较大。

中医根据其各个流派,诊断过程也会略有所不同。为了能够模拟出中医诊断思路从而开具处方的过程,利用和修改现有的自然语音识别语义理解模型来开具处方,中医的诊断流程具体如图1所示,中医通过望闻问切四诊收集到的信息综合分析,辨别清楚病人的病因、病性、病位和邪正之间的关系,并概括为证候;所以确定合理的症候,再围绕症候开具处方成为了很关键的一步。经过与中医反复地讨论和摸索,构想出如图1的诊断过程:其中“1”代表通过病人的系列症状来判断证候要素的过程,“2”通过证候要素来确定治疗方法,“3”根据治疗方法给病人开具药方,“4”在主要推演过程中(“123”),病人可能会有一些症状,证候要素无法覆盖,需要额外去处理,这样来确定治疗方法。“5”最终,有需要对病人的一些症状或体征进行特殊处理,比如病人有哮喘的症状,则对一些药物需要特殊禁忌,或者少开或者就需要从处方中去掉。

现在的几种类型的中医诊疗方法的研究,没有一个合理的决策系统来实现病人的自然语言处理到开具药方的过程;传统的方法,比较合理的是基于决策树的决策系统,该模型如下公式1的层级式决策类模型结构:

f(X)=P

X={x

上述这种带有层级式的模型,存在以下问题:

(1)实用性问题:病人需要一层一层的根据系统的提示回答症状,这种方法虽然在某种程度上增加了准确率,但是随着系统的逻辑变得复杂,需要回答的问题也越来越多,可能需要回答大概20~30个问题,才能够得到答案,运用起来繁琐且麻烦。

(2)症状的输入顺序问题:某一症状的先输入和后输入可能会有完全不一样的输出结果,这其中最大的问题就是该系统会随着症状的增多,而变得越来越复杂。

有鉴于此,亟需提供一种将中医的诊断思维进行模拟,并生成有效处方的冠心病诊断方法。

发明内容

为了解决上述技术问题,本发明所采用的技术方案是提供了一种基于冠心病诊断神经网络模型冠心病诊断方法,包括以下步骤:

S1、输入关于症状基本要素和其他特征的一个或几个词;其他特征可为根据用户需求输入的性别、年龄、病史等等附属特征;

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

所述冠心病诊断神经网络模型为改进的Transformer模型,包括Embedding模块和三个Transformer模块,分别为Transformer1、Transformer2和Transformer3;

两个Transformer模块之间设置连接一concat+Linear模块,分别为concat+Linear1与concat+Linear2;

Embedding模块分别输出连接第一Transformer1、concat+Linear1和concat+Linear2;

Transformer1与Transformer2分别连接一Linear模块。

在上述方法中,所述Transformer模块包括Multihead Attention层与Feedforward层,其中

MultiheadAttention层完成以下计算:

Q=QW

head=Attention(Q,K,V)

Attention(Q,K,V)=V×Softmax(KW

其中,所有的W都是可学习变量,初始时刻初始化为服从正态分布的随机数,再由数据进行驱动,进行梯度反向传播,Q,K,V分别表示Queue,Key和Value向量。

在上述方法中,所述Embedding模块包括

Embedding模块与segment Embedding模块构成,Embedding模块用于处理输入的症状要素,segment Embedding模块用于处理输入的症状以外的要素;即

Embeddingall=Embeddingseg+Embedding{features}。

在上述方法中,所述Embedding模块是将各个症状分别投射到64维向量。

本发明还提供了一种基于冠心病诊断神经网络模型冠心病诊断系统,包括

输入单元:输入关于症状基本要素和其他特征的一个或几个词;

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

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

其中,

所述诊疗神经网络模型包括所述冠心病诊断神经网络模型为改进的Transformer模型,包括Embedding模块和三个Transformer模块,分别为Transformer1、Transformer2和Transformer3;

两个Transformer模块之间设置连接一concat+Linear模块,分别为concat+Linear1与concat+Linear2;

Embedding模块分别输出连接第一Transformer1、concat+Linear1和concat+Linear2;

Transformer1与Transformer2分别连接一Linear模块。

在上述方案中,所述诊断单元包括训练子单元,包括

数据输入模块:用于获取历史的症状数据集合;

初始诊断模块:将症状数据集合随机分成训练集、验证集与测试集;再分别将相应的训练集、验证集中的医案数据输入至初始冠心病诊断神经网络模型进行模型训练,当达到训练条件时停止训练,得到训练好的冠心病诊断神经网络模型。

在上述方案中,所述Transformer模块包括Multihead Attention层与Feedforward层,其中

Multihead Attention层完成以下计算:

Q=QW

head=Attention(Q,K,V)

Attention(Q,K,V)=V×Softmax(KW

其中,所有的W都是可学习变量,初始时刻初始化为服从正态分布的随机数,再由数据进行驱动,进行梯度反向传播。

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

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述基于冠心病诊断神经网络模型冠心病诊断方法。

本发明本实施例基于改进的Transformer模型是一种可以应用在中医复杂辩证思维的模型,模型为端对端模型,在一端可输入症状,性别,病史等特征,中间过程输出证候要素,治疗方法,药材;遵从整个医生推演过程,且本实施例使用神经网络来进行中医推演的好处就是能够重复学习,提高整个网络模型诊断结果准确率;另外本实施例改进的Transformer模型中的Transformer模块映射关系不仅能解决线性映射关系,同时会有自适应模块,这种映射关系恰好满足了我们的需求去解决上述症状输入包括多种特征的情况下正确的药材对应关系,也使整个诊断结果更加准确。

附图说明

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

图1为本发明提供的现有中医诊疗推演方法示意图;

图2为本发明提供的方法流程示意图;

图3为本发明冠心病诊断神经网络模型结构示意框图;

图4为本发明提供的Transformer模块结构示意框图;

图5为本发明提供的系统示意框图;

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

具体实施方式

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

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

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

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

如图2所示,本发明提供了一种基于冠心病诊断神经网络模型冠心病诊断方法,包括以下步骤:

S1、输入关于症状基本要素和其他特征的一个或几个词;其他特征可为根据用户需求输入的性别、年龄、病史等等附属特征。本实施例中,所有的参数(基本要素和其他特征)和映射关系都一同读取到内存或者读取到显存之中,并且在训练过程中不断更新,最后训练完成的模型可以集中打包保存。

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

如图3所示,所述冠心病诊断神经网络模型为改进的Transformer模型,包括Embedding模块和三个Transformer模块,分别为Transformer1、Transformer2和Transformer3;

两个Transformer模块之间设置连接一concat+Linear模块,分别为concat+Linear1与concat+Linear2;

Embedding模块分别输出连接第一Transformer1、concat+Linear1和concat+Linear2;

Transformer1与Transformer2分别连接一Linear模块;

本实施例,Transformer模块的主要功能是对输入进行分组,然后根据分组后的内容进行判定后给出结果。Linear模块实现的是线性和非线性映射,Transformer模块相当于对输入信息进行逻辑判断,例如输入为:冠心病,心悸,胸痛,固定位置疼痛,胸闷,眠差,舌淡红,脉弦数,进行逻辑分组判断的是Transformer模块,判断结束后,还需要将空间向量向onehot向量进行映射,这部分的映射过程使用Linear模块来实现。

本实施例中,Linear模块是一个能够进行线性或者非线性的神经元结构,每一层神经元都是通过一个激活函数加上一个线性映射构成,具体如下:

y=sigmoid(wx+b)

多个这样的神经元进行叠加,就组成了一个MLP(multilayer perceptron)模块,这个是一个深度学习比较常用的分类器。本实施例用Transformer模块来替代MLP(也就是Linear模块);且Transformer模块结构如图4所示,包括Multihead Attention层与Feedforward层;

本实施例,MultiheadAttention层具体完成以下计算:

Q=QW

head=Attention(Q,K,V)

Attention(Q,K,V)=V×Softmax(KW

其中,所有的W都是可学习变量,初始时刻初始化为服从正态分布的随机数,再由数据进行驱动,进行梯度反向传播。

如图4模型结构所示,本实施例中,Embedding模块是将各个症状分别投射到64维向量,即,每个症状都可以用64维向量来表示,或者说,每个症状都可以用64个特征来描述,该设置的有点在于,如果特征个数设置过大或者过小都会影响实验结果准确性,这也说明了,目前的有效症状维度仅仅需要64就足够。

本实施例模型采用单输入多输出(症状输入,证候要素、治疗方法、药材输出)的策略对网络进行训练,但是真实数据当中可能会有不全面的输入,针对训练过程中真实出现的情况,真实的医案很难有理想情况下的,症状-证候要素-治疗方法-药材,都齐全的数据,更多情况是症状-药材对应或者是症状-证候要素这样的对应关系。训练过程中如果只以症状作为输入,证候要素作为输出,那么训练过程就只更新症状到证候要素这段网络的参数,如果输入为症状,输出为药材,那么就需要更新整个网络,从症状到证候要素到治疗方法到药材。例如,有些只有症状-证候要素,有些只有症状-药材。在训练过程中,如果只有证候要素输出,那么会对证候要素之后的网络冻结(由于网络中所有参数都是可以通过梯度进行更新的,而把这部分网络冻结指的就是不更新这里边的参数,这样的处理方式可以让网络不更新部分按照之前的参数进行推演,而更新的部分则根据每一对数据进行梯度反传,从而达到学习的目的,参数不更新),如果只有治法,就将治法之后的网络冻结,药材则没有网络冻结。

本实施例考虑真实场景下,病人对于症状的描述很有可能是没有任何顺序在里边的。然而神经网络的输入实际上是有顺序的,为了解决这个问题,本实施例将参数进行一步固定,也就是将600症状,放到600维的向量上,每个维度代表一个固定的症状。

如图2中,模型输入为1000维向量,用来表示600不同症状,其余400留做后备添加额外症状,Embedding模块和各层Transformer模块的输出都是64维的向量,concat+linear中的concat是将linear输出的64维向量进行证候要素输出80维,治法80维,药材输出1000维。这里的80维,相当于80位占位符,每一个位置代表一个输出的可能性,需要与实际输出对应。在各个linear模块之间,需要64维度特征进行信息传递,这64个维度每一个维度都是自由参数,通过实际任务的梯度反向传播过程决定每个维度的含义。

本实施例优选,中医输入的空间拓展可以参照BERT模型处理输入的方法,即模型中Embedding模块包括Embedding模块与segment Embedding模块构成,Embedding模块用于处理输入的症状要素,segment Embedding模块用于处理输入的症状以外的要素;即

Embeddingall=Embeddingseg+Embedding{features}

举例来说,比如用户输入的不仅仅是症状,决定最后的药材,还有输入性别,病史等特征,但是对于性别、病史,不能够完全当成症状去处理,应该区别对待。所以需要将不同的特征类型投射到不同的空间,再进行Embedding操作。

下面具体说明本实施例使用Transformer模型对冠心病进行诊断的思路及好处。

本实施例将改进的Transformer模型理解成一种能够提取症状之间关系的特殊Linear,而Linear结构就是简单的线性映射。接下来就是关于真实案例的分析:

病例1。

症状输入:冠心病,心悸,胸痛,固定位置疼痛,胸闷,眠差,舌淡红,脉弦数;

证候要素:血瘀,气滞,气虚;

治疗方法:活血化瘀,通络止痛;

药材:丹参,赤芍,红花,川芎,降香,桂枝,牡蛎,龙骨,白芍,大枣,生姜,丹皮,茯苓,泽泻,白芷,防风,黄芪,天麻,藿香,炙甘草;

病人具有明显的血瘀的症状,如固定位置疼痛,胸痛,所以这两个症状很有可能说明病人辨证有血瘀的症状,对应的治疗方法基本上是以活血化瘀为主,活血化瘀常用药物是冠心2号方,具体包括:丹参,赤芍,红花,降香,桂枝。另外的其他药材,都是用来解决病人其他的证候要素和症状情况。这种症状到药材的对应关系,在确定了主要药物之后也要有所体现。关于这种关系已经在图1中进行了展示。我们可以通过下边的模型来还原医生诊断过程中的思维场景。

F

本实施例完全可以用线性映射(Linear)来表示所有的映射关系P

本实施例,冠心病诊断神经网络模型通过以下方法进行训练:

将症状数据集合随机分成训练集、验证集与测试集;再分别将相应的训练集、验证集中的医案数据输入至初始冠心病诊断神经网络模型进行模型训练,当达到训练条件时停止训练,得到训练好的冠心病诊断神经网络模型。

在训练过程中,数据的输入可以是症状对应证候要素对应药材;症状、证候要素对应药材。然而在预测过程中模型只需要对症状进行判断,给出预测的证候要素合药材即可。不同输入条件的设计是为了应对不同数据形态训练网络的要求。

本实施例基于改进的Transformer模型是一种可以应用在中医复杂辩证思维的模型,模型为端对端模型,在一端可输入症状,性别,病史等特征,中间过程输出证候要素,治疗方法,中药材;遵从整个医生推演过程,且本实施例使用神经网络来进行中医推演的好处就是能够重复学习,所谓重复学习意思就是,数据里边神经网络能够达到90%的效果,如果有新的数据,可以继续输入到神经网络里边,把之前的神经网络当成与训练的网络进行继续训练。这样神经网络就可以在之前的网络基础上进一步学习,就像是人的学习过程一样,如果新的知识与旧的知识又冲突,将按照新的知识为准,同时很多之前的知识也没有被忘掉,提高整个网络模型诊断结果准确率,当然这也是神经网络优于其他算法结构的地方。

如图5所示,本发明还提供了基于冠心病诊断神经网络模型冠心病诊断系统,包括

输入单元:输入关于症状基本要素和其他特征的一个或几个词;

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

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

其中,

所述诊疗神经网络模型包括所述冠心病诊断神经网络模型为改进的Transformer模型,包括Embedding模块和三个Transformer模块,分别为Transformer1、Transformer2和Transformer3;

两个Transformer模块之间设置连接一concat+Linear模块,分别为concat+Linear1与concat+Linear2;

Embedding模块分别输出连接第一Transformer1、concat+Linear1和concat+Linear2;

Transformer1与Transformer2分别连接一Linear模块。

本实施例中,Linear模块是一个能够进行线性或者非线性的神经元结构,每一层神经元都是通过一个激活函数加上一个线性映射构成,具体如下:

y=sigmoid(wx+b)

多个这样的神经元进行叠加,就组成了一个MLP(multilayer perceptron)模块,是一个深度学习比较常用的分类器。本实施例用Transformer模块来替代MLP(也就是Linear模块);且Transformer模块包括Multihead Attention层与Feedforward层;

本实施例,Multihead Attention层具体完成以下计算:

Q=input×W

head=Attention(Q,K,V)

Attention(Q,K,V)=V×Softmax(KW

其中,所有的W都是可学习变量,初始时刻初始化为服从正态分布的随机数,再由数据进行驱动,进行梯度反向传播,Q,K,V分别表示论文中提到的Queue,Key和Value向量,W

本实施例中,Embedding模块是将600个症状投射到60维向量,即,每个症状都可以用64维向量来表示,或者说,每个症状都可以用64个特征来描述,该设置的有点在于,如果特征设置过大或者过小都会影响实验结果准确性,这也说明了,目前的有效症状维度仅仅需要64就足够。

本实施例优选,中医输入的空间拓展可以参照BERT模型处理输入的方法,即模型中Embedding模块包括Embedding模块与segment Embedding模块构成,Embedding模块用于处理输入的症状要素,segment Embedding模块用于处理输入的症状以外的要素;即

Embeddingall=Embeddingseg+Embedding{features}

本实施例,诊断单元还包括模型训练子单元,用于训练初始冠心病诊断神经网络模型,获得冠心病诊断神经网络模型;包括

数据输入模块:用于获取历史的症状数据集合;

初始诊断模块:将症状数据集合随机分成训练集、验证集与测试集;再分别将相应的训练集、验证集中的医案数据输入至初始冠心病诊断神经网络模型进行模型训练,当达到训练条件时停止训练,得到训练好的冠心病诊断神经网络模型。

如图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)等。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号