基于Jess模糊推理的智能医疗诊断系统研究

2019-11-18 05:29:26甘子琦王文丽
计算机技术与发展 2019年11期
关键词:模糊化知识库生理

甘子琦,庞 辰,王文丽,闫 伟

(山东师范大学 信息科学与工程学院,山东 济南 250000)

1 选题背景及意义

现如今,医生在对病人病情进行诊断过程中,通常都会依据自己的主观经验,并根据自己掌握的医学知识结合医疗设备检查得到的生理数据得出诊断结果。但由于医生的水平经验参差不齐,医疗水平相对落后的地区经常出现误诊,对病人及其家属造成伤害。为了使得丰富医疗知识与宝贵的医生诊断经验得到最大限度的共享与重用,人们希望通过计算机来辅助医生进行诊断。

使用计算机处理信息,输入和输出一般都是精确的数字信息,而现实生活中人们更喜欢用一些表示程度的模糊语言来描述事物。因此,为了能让计算机处理模糊的数据进而提出了模糊推理。

随着人工智能和医疗辅助诊断的飞速发展,研究能够辅助医生进行医疗诊断的智能医疗决策诊断机制更成为医疗信息科学的一个重要研究课题。因此,文中提出一种基于Jess模糊推理的医疗诊断机制,结合本体知识库,最终实现计算机辅助医生进行治疗。该诊断机制的提出,使计算机模仿医学专家的诊断思想对病人进行就诊。这样就能把模糊推理技术应用到医学领域。

2 研究现状

1959年美国的莱德利等首次在临床医学中使用计算机诊断,并在1966年提出“计算机辅助诊断”,产生了计量医学[1];1974年匹兹堡大学的鲍伯尔和内科医生合作,成功研发了内科诊断咨询系统;在1976年用于为细菌感染提供抗菌剂治疗建议的MYCIN系统[2]由美国斯坦福大学的肖特利菲研发成功;1982年,匹兹堡大学的Miller等开发了Internist-I内科计算机辅助诊断系统[3];1991年,哈佛医学院的Barenett等开发的“DXPLAIN”软件包含有2 200种疾病和5 000种症状。

1981年,中国科学院、北京第二医学院和北京中医院研发了“关幼波肝病诊断专家系统”[4];2003年,哈尔滨医科大学将专家系统与人工神经网络相结合提出了“医疗智能诊断系统”[5]。

知识库已经应用到了医疗领域。德纳姆富什曼提出了本体知识库应该具有PICO(population,intervention,comparison and outcome)四个基本元素[6];布马和德里杰克又进一步描述了本体知识库的几个基本特征:疾病、症状和治疗[7];Niu和Hirst描述了一种可以在医疗文本中确定语义的类和类与类之间的关系的方法[8]。

随着科技的进步,利用计算机进行诊断决策的过程将变得十分困难,于是人们想到依靠医学专家的经验来进行诊断。因此,判定方法的约束条件中的模糊因素、思想语言等模糊定量问题使“模糊推理”应运而生。

3 主要工作

文中以基于Jess的模糊推理为基础,结合医疗诊断的具体流程对如何模拟医生完成诊断过程做了如下工作:

(1)生理参数预处理。

医生通过大量信息对病人进行诊断。这些信息分为两种,一种是如体温、血红蛋白含量、血压、心率等可以通过机器进行检测的精确型数值;另一种是如咳嗽是否严重、咽部是否红肿、头是否疼痛等无法用数值表示,只能根据医生对病人进行询问得出的模糊型信息。文中提出的诊断机制首先要对得到的生理参数进行生理参数预处理,得到模糊型数据,为模糊推理提供前提。

该诊断机制需要的数据也分为精确型和模糊型,具体类型由医院检测数据、病人的描述和医生对模糊型数据程度的判断来决定。

(2)规则库的构建。

根据生理参数不同的排列组合得到不同的病症规则,把这些规则录入到规则库中,并且医生根据症状进行程度分类,根据自己的医疗知识与诊断经验建立规则库。建立规则库这一环节十分重要,是医疗系统的核心。因此医生的医疗知识与诊断经验越丰富,该规则库的含金量就越高。

(3)基于Jess的模糊推理。

将模糊推理引入到医疗诊断中,虽然现在流行很多推理方法,如神经网络推理、遗传算法等等,但这些方法判断出的结果是二元的。而人的疾病是模糊复杂的,模糊集合的引入使事物和疾病的描述更宽泛。利用模糊推理,可以推理出更复合客观事实的结果。而在CLIPS基础上开发的Jess规则引擎[9],使用前向规则快速匹配Rete算法[10]进行模式匹配,推理效率高。

(4)智能医疗诊断机制构建。

智能医疗诊断机制的基本步骤是:首先通过体检得到病人的生理参数,医生通过询问病人病情,将所得信息与生理参数共同输入到计算机中;计算机模仿医生诊断病人的思维方式来确定病情;最终计算机给医生列举出病人可能患病的情况。

医生根据计算机提供的病情,再加上自己的经验,得出最后的诊断结果。

3.1 生理参数预处理

3.1.1 精确生理参数处理

文中提出的诊断机制仅仅以三种生理参数为例,分别是体温、心率和血压。

通过查阅医学资料,查找出各项生理参数的正常范围如下:

正常收缩压范围:90 mm Hg至140 mm Hg;正常舒张压范围:60 mm Hg至90 mm Hg。

正常腋下温度:36.3~37.2 ℃;低热:37.3~38 ℃;中度热:38.1~39 ℃;高热:39.1℃以上。

正常心率:60~100次/分。

这些参数都是精确的数值,可以通过这些数值来确定程度的高低

3.1.2 模糊生理参数处理

对生理参数预处理,使生理参数模糊化是文中提出的诊断机制的第一步。一般来说,医生在诊断病人病情的过程中,会使用机器对病人进行检测,得到血液化验单,如表1所示。

血液化验单上得到的结果都是精确的,医生根据检验结果和正常范围对比来判断病人病情。但是血液化验单中仅仅给出了正常范围,并没有规定是否偏低或偏高。比如血液化验单的检查结果中红细胞正好处在正常范围的最低临界值400万/μL,医生就认定他是正常值,而399万/μL医生就认定为不正常的值。显然这样判断有不足之处,因为二者之差几乎可以忽略。当红细胞的检查结果为550万/μL时,就不能认定红细胞检查结果正常,而是偏高。与红细胞类似,其他的生理参数也应分为偏低、正常、偏高等范围或者更多其他的范围,并且这些范围可以出现重叠。下面以血红蛋白为例:

表1 血液化验单

通过查阅医学资料,划分出血红蛋白偏低、正常和偏高的范围。

偏低范围:≤130 g/L;正常范围:120 g/L~160 g/L;偏高范围:≥150 g/L。范围之间存在的重叠区域,可以更好地反映不同范围之间的关系。构建出如图1所示的隶属度函数,图1中的纵坐标为隶属度的值,代表着对应所在范围的程度,有的数值对应着两个隶属度函数。如图1中当血红蛋白数量为128 g/L时,分别对应着0.04和0.4,进而可以写成(偏低,0.04)和(正常,0.4)。按照这种法则,可以对生理参数进行模糊处理。通过上述例子,可以把化验单上的精确数值变成(范围,隶属度)的模式。

医生在诊断病情的时候,不仅仅只看化验单,还会通过观察和询问,来判断病人的生理症状。比如精神状态的好坏,食欲是否正常,头痛的严重程度,是否伴有咳嗽等。这些生理症状可以看作是生理参数模糊处理后的结果。

图1 血红蛋白隶属度

3.2 规则库的构建

3.2.1 规则推理算法

模糊推理规则库的构建是文中提出的智能医疗机制的核心,规则库的形式如“if-then”语句。考虑的生理参数越多,所产生的规则数目越多,这样会使推理的效率大幅降低。由此可见,需要的推理规则数量不应太多也不应太少,以构成正规的规则形式。推理规则的运算选择与模糊算子的确定有一定联系,目前世界各国关于模糊推理的研究已经取得了一定的成果,多数使用最大最小法和最大乘积法等算法,模糊推理规则[11]的表达形式如下:

(1)

其中,wij(j=1,2,…,n)表示各个疾病的程度即模糊权重,0≤wij≤1;0≤λ≤1表示规则激活的阈值;m表示知识库中的规则数目。当规则满足所有条件的综合相似度大于等于阈值时,可以推断出结论Z。

3.2.2 模糊规则库的建立

作为智能医疗诊断机制的核心部分,其他部分均是为执行模糊规则而服务。此诊断机制采用的是多维模糊规则的形式,即若干条模糊命题组成的规则的前件,建立的规则库的本体模型如图2所示。

图2 规则库本体简略图

精确输入型参数和模糊型参数进行排列组合之后得出的结果即构成了模糊推理规则库。例如,A1:传感器检测到的人体温度,A2:血检出的血红蛋白含量,A3:白细胞的含量,B:诊断结果。

如果需要对人患病进行诊断,在考虑多个精确的生理参数及数值的情况下,还应编写复杂的模糊推理规则。假设Li表示低值范围(体温<36度,血红蛋白和白细胞低于正常含量),Ni表示正常范围(体温=36度,血红蛋白和白细胞为正常含量),Hi表示高值范围(体温>36度,血红蛋白和白细胞高于正常含量),其中i=1、2或3,则共有27种组合。而这27种则是三种精确型参数的内部排列组合,对这27种情况从R1到R27进行编号,如图3所示。

图3 if-then规则

下面用if-then语句来编写规则库:

从以上规则可看出,C1表示人体生理参数正常,C2表示人发高烧,C3表示人血红蛋白含量过高,C4表示人白细胞含量过高,C5表示人低体温,C6表示人血红蛋白少,C7表示人白细胞少等。

隶属度函数选取每种单个情况隶属度最小值,R1到R27的隶属度函数为:

Ri(a1,a2,a3)=min{N1(a1),N2(a2),N3(a3)}

(2)

下面考虑模糊型数据。

表2 咳嗽与咽部红肿程度

假设A4代表咳嗽程度,A5代表咽部红肿程度,列举出如表2所示的情况。A4、A5模糊性输入参数共9种组合,结合以上27种精确性输入参数组合,共组成243种组合,医生可由这两类参数进行诊断。智能医疗诊断机制将多数医生在诊断过程中的思维共性进行模糊化处理。医生在诊断时分析到相似或者相同的病症,得出相同的诊断结果。把这些具有共性的诊断经验通过规则录入机制,智能医疗机制可做出诊断,再将这些诊断经验存储到数据库中,就构建了一个诊断库,则这个诊断库就是模糊化推理过程中的规则库,如表3所示。其中*代表正常,+代表偏高,-代表偏低。

表3 规则库

3.3 基于Jess的模糊推理

3.3.1 模糊逻辑

模糊逻辑是基于多值逻辑之上,通过使用模糊集的方法研究模糊思维[12]。目前模糊集理论在不确定和不精确的复杂系统模型中得到了发展,它的元素可能部分属于模糊集合。假设X为一个通用集合,它的元素用x表示,将X中的模糊集合A定义为一个有序对的集合:

A={x,μA(x)|x},μA(x)是x在A中的隶属度函数:

(3)

隶属度函数定义了将给定元素x映射到0和1之间的隶属值过程。为了实现模糊对象的定量问题,隶属函数通常用直线、三角形或梯形来表示。模糊推理系统通过if-then规则推理出结果,从而提供了实现推理的系统框架。

在该诊断机制中所设计的模糊推理系统由五个功能块组成:

(1)医疗诊断规则库;

(2)隶属度函数数据库;

(3)在if-then模糊规则上执行推理操作的决策单元;

(4)能将精确的输入转换成模糊数据的模糊化接口;

(5)能将模糊数据转换成精确输出的反模糊化接口。

3.3.2 模糊化

基于知识模糊化的核心就是将输入对应到模糊集上[13]。通过与隶属函数的对应,为输入输出设置不同隶属度。由于在一般情况下,语言变量的模糊化都是根据经验得出,因此隶属函数的设计是关键。文中使用比较法、统计法、权值法确定隶属度函数,然后将对事物的理解反映到数学图像中,在所有模糊集的隶属函数确定后,就将输入量进行模糊化。

3.3.3 基于Jess的模糊推理的步骤

(1)将诊断规则和事实输入到工作内存;

(2)利用模式匹配比较事实与模糊专家系统知识库中的规则;

(3)若执行规则存在冲突,则将冲突的规则存放在冲突集合中;

(4)解决冲突,将冲突的规则顺序放入议程;

(5)执行规则,修改事实库;重复步骤2~步骤5至事实库不再发生任何变化,则推理结束[14]。

3.4 医疗领域本体库设计

目前国内医疗卫生水平发展很不平衡,东西部地区差异较大。为使经济较落后地区的人们能够得到更好的医疗服务,使一些水平较高、经验较丰富的医生的经验和医疗知识得到共享,遂想到通过建立医疗本体库,将无形的资源汇集在一起。

设计该本体库的大致思想是模仿日常生活中人们在医院看病的流程。首先是病人填写自己的基本信息;其次将信息录入后,病人本人可叙述自身病症;通过病人自己的描述,得出病人应进行的相应检查,将检查结果导入;结合病人自身的情况,医疗机械检查和医学化验检查,再加上医生判断和经验,最终得到一个病例事实。

简单建立如图4所示的本体模型。

图4 医疗领域本体库简略图

3.5 智能医疗诊断机制的构建

智能医疗诊断机制即模糊推理专家系统是由医学领域的经验知识集合而成,对一些简单疾病做出了判断处理。特征如下:

(1)透明性。可以对病人所提供的生理参数做出判断,可以诊断病人一些简单的疾病,并且将推理过程向病人展现。

(2)可延伸性。医疗本体知识库可扩充新的医学经验与知识,使知识库涵盖更多知识。

(3)便捷性。在任何时间、地点,病人均可使用网络将生理数据传到服务器,诊断结果可第一时间发给病人,在没有医疗条件状况下病人也可检查自身身体状况。

医学的复杂性决定该机制只能简单实现一些疾病推理,在疾病判断中应用模糊推理仍是核心。

3.6 智能医疗诊断机制的实现

前期收集相关的医疗卫生方面数据,充分了解医疗信息的数据标准、参考范围、现状及发展趋势。总结并选取部分数据作为医疗信息本体知识库数据源。将数据源进行分类,文中主要分为病人和诊断过程两个大类。又将病人细分为病人基本信息和病人对病症的描述;而在诊断过程中呈现出结合医生主观意见的诊断步骤。将这些基本的属性建立起逻辑关系,再创建数据源之间的关系,构建基本医疗信息本体库框架,然后对本体库进行实例化[15]。

实例化的本体库导入医疗诊断规则库,与规则库进行比较。导入规则库后进行模糊推理,直至事实库中不存在矛盾,得出某一方面的一个或多个结果。若有多个结果,可根据医生自身经验判断,得出最终结果。智能医疗诊断机制框架如图5所示。

图5 智能医疗诊断机制框架

接下来用具体的病例来模拟一下诊断过程,假如一个病人有以下症状,见表4。

表4 病人症状

前三项都属于精确数值,首先要将其进行模糊化,模糊化后的结果见表5。

表5 病人症状模糊化

如表5所示,分别对体温、血红蛋白数量、白细胞数量进行模糊化处理,得到(程度,隶属度)。而对咳嗽和咽部红肿的描述不必处理就已经是模糊型数据。通过对表中的数据进行分析,与规则库里的规则进行比较,得出病人可能患支气管炎的结论。

4 结束语

对基于Jess模糊推理的智能医疗诊断机制进行了研究与分析。文中工作如下:构建了隶属度函数的模型,进而实现数据模糊化;详细分析了基于Jess实现模糊推理;基于医生的经验构建本体知识库;通过Jess模糊推理机,对智能医疗诊断机制构建进行实现。

由于受到各种条件的限制,仍有一些不足与问题:虽然把模糊推理应用在医疗诊断中,编写了规则并构建了本体知识库,但是由于对医学领域了解不透彻,导致知识库与规则库构建不够完善。同时,文中仅以血压、心率、血糖三个生理参数为例,但疾病的发生与多种生理参数有关,因此构建的知识库与决策机制只处于初级阶段。且仅根据生理参数异常就判断疾病不够准确。生理体征值和疾病症状之间的映射关系很复杂,一种参数异常可能对应多种疾病。因此需引入其他体征值检测,根据医疗领域专家的知识经验进行综合分析才能得出比较符合实际的结果。

针对这些不足,进一步的想法是扩展诊断的种类和范围,通过完善知识库和规则库,使系统能够处理复杂症状的判断,实现诊断机制。未来想法是结合事例推理和神经网络推理技术,使得该诊断机制具有自学习功能,让知识库变得更加庞大,能自动更新知识库和规则库。此外如何优化规则库中的规则数目,若两条规则起冲突该如何处理也是未解决的问题。规则数目多时进行模糊推理的计算量很大,规则少则应用不了,规则的最佳数目亦需进一步确定。总而言之,该规则库还处于低级阶段,有些方面很不完善。随着计算智能研究的深入,基于模糊推理的医疗诊断机制还会愈加成熟。规则库和知识库的不断扩充,使得模糊推理在医疗诊断中的应用将会有更大的发展空间。人工智能在医疗领域的应用将会为人类的健康带来福音。智能医疗决策系统的便利能够惠及到千万人民的生活中。

猜你喜欢
模糊化知识库生理
([0,1],[0,1])-模糊拟阵的基和秩函数
餐饮娱乐空间的“边界模糊化”态势探讨——餐饮娱乐空间设计专辑
现代装饰(2020年7期)2020-07-27 01:27:50
打破生理“平衡”
世界科学(2020年1期)2020-02-11 07:39:34
三角模糊数去模糊化对VIKOR妥协解的影响研究
基于BP神经网络的旋转血泵生理控制
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
妈妈们产后的生理烦恼
Coco薇(2017年5期)2017-06-05 13:03:24
高速公路信息系统维护知识库的建立和应用
基于Drupal发布学者知识库关联数据的研究
图书馆研究(2015年5期)2015-12-07 04:05:48
“DIY式”小创新在神经电生理监测中的应用