提 要 目的:利用人工神经网络模型BP算法的多层前馈网络模型原理,建立用于肺癌诊断的神经网络模型。方法:利用人工神经网络的函数逼近功能模型,建立输入到输出的函数映射关系。结果:该模型可较好地反映系统的动态性和数据的时序关联性。对肺癌诊断数据的应用结果显示肺癌病人的正确检出率为96.2%,误诊率为3.8%;非肺癌病人的正确检出率为88%,误诊率为12%。结论:基于人工神经网络的肺癌诊断方法具有较高的准确性。
肺癌的诊断问题各国医学界已作了一些研究,并取得了某些实际的成果。但是,由于肺癌的多种类型以及多种相关因素,使得现有的诊断在准确性和实用性方面都存在着相当的局限性,如建模复杂困难。由于对影响罹病与否的各种因子的作用机制了解得不是很清楚,如何建立诊断模型,以及如何确定新建立的模型在何种程度上与实际情况相吻合还是一个问题;容错能力不强,适用范围不广;依赖于某个病例库新建立起来的医学模型往往具有很强的局限性,用于新的病例库时误差有时较大。另外,由于医学方面的原因,我们收集到的数据有时不完整,而现有的研究方法所建立起的医学模型由于容错性差,对这些不完整的数据通常都难以处理。以非线性大规模并行分布处理为特点的人工神经网络理论突破了传统的线性处理模式,以其高度的并行性,良好的容错性和自适应能力成为人们研究其赖以生存的非线性世界,探索和研究某些复杂大系统的有力工具。
原理与方法
神经网络是一个具有高度非线性的超大规模连续时间动力系统。是由大量的处理单元(神经元)广泛互连而形成的网络。它是在现代神经科学研究成果的基础上提出的,反映了脑功能的基本特征。但它并不是人脑的真实描写,而只是它的某种抽象、简化与模拟。网络的信息处理由神经元之间的相互作用来实现;知识与信息的存储表现为网络元件互连间分布式的物理联系;网络的学习和计算决定于各神经元连接权系的动态演化过程。因此神经元构成了网络的基本运算单元。每个神经元具有自己的阈值。每个神经元的输入信号是所有与其相连的神经元的输出信号和加权后的和。而输出信号是其净输入信号的非线性函数。如果输入信号的加权集合高于其阈值,该神经元便被激活而输出相应的值。在人工神经网络中所存储的是单元之间连接的加权值阵列。
神经网络的工作过程主要由两个阶段组成,一个阶段是工作期,此时各连接权值固定,计算单元的状态变化,以求达到稳定状态。另一阶段是学习期(自适应期,或设计期),此时各计算单元状态不变,各连接权值可修改(通过学习样本或其他方法),前一阶段较快,各单元的状态亦称短期记忆(STM),后一阶段慢的多,权及连接方式亦称长期记忆(LTM)〔1〕。
根据网络的拓扑结构和学习规则可将人工神经网络分为多种类型,如不含反馈的前向神经网络、层内有相互结合的前向网络、反馈网络、相互结合型网络等〔2〕。本文的人工神经网络模型是采用BP算法的多层前馈网络。
该模型的特点是信号由输入层单向传递到输出层,同一层神经元之间互不传递信息,每个神经元与邻近层所有神经元相连,连接权用Wij表示。各神经元的作用函数为Sigmoid函数,设神经网络输入层的p个节点,输出层有q个节点,k-1层的任意节点用l表示,k层的任意节点用j表示,k+1层的任意节点用l表示。Wij为k-1层的第i个神经元与k层的第j个神经元相连接的权值。k-1层的节点i输出为O(k-1)i,k层节点j的输出为:
k层节点j的输出为:
Okj=f(netkj)
设训练样本为(X,Ye),X为p维向量,加到输入层;Ye为q维向量,对应于期望输出;网络的实际输出Y也是q维向量。网络在接受样本对的训练过程中,采用BP算法,其权值调整量为:
ΔWij=-ηδkjO(k-1)i
其中,对于输出层为:
δkj=yj(1-yj)(yej-yj)
对于非输出层为:
η为训练步长,取0<η<1。
用样本集合反复训练网络,并不断修改权值,直到使实际输出向量达到要求,训练过程结束〔3〕。
上述人工神经网络可以完成多种信息处理任务,如从二进制数据中提取相关知识,完成最近邻模式分类,实现数据聚集等。而本文要用的是其极强的数学逼近映射能力,即开发合适的函数f:ARn→BRn,以自组织的方式响应以下的样本集合:(x1,y1),(x2,y2)…,(xm,ym),其中yi=f(xi)。这里描述的是一般的数学抽象,像识别与分类这些计算都可以抽象为这样的一种近似数学映射。
所谓诊断,实质上是一个分类问题。即根据候诊者的症状,医学检查结果(如体温、心跳等)等一些情况,它们可以用一向量(e1,e2,…,em)来表示,将其归类为病人或非病人。这也可以转化为寻找一差别函数f使得:
(1)f(e1,e2,…,em)>ε, (e1,e2,…,em)∈T
(2)f(e1,e2,…,em)>ε, (e1,e2,…,em)T
其中集合T表示患病。
因此,病情诊断最终也可作为一类函数的逼近问题。
而许多研究已表明,前向神经网络可作为非线性逼近的标准型。对于实数空间的任一函数,只要它满足一定的条件,一定存在唯一的具有单一隐层的前向网络作为它的最优最佳逼近。而含有两个隐含层的前向网络可在任意的平方误差内逼近某一实函数〔3〕。
诊断步骤
肺癌病例数据选自1981~1994年在某医院住院的病人,共计551例。其中486例(88%)经病理学、细胞学诊断证实为肺癌。每一病例都包括多项数据,其中用于诊断的数据项有:病人的一般情况(如年龄、性别等),家族史、既往史、吸烟史、术后病理、X射线检查、CT检查、纤维支气管镜检查、PAT痰检等多达58项。因此,原则上 58项数据应作为神经网络的输入项,而神经网络的输出值就是病人是否患肺癌的结果。
1.网络训练集的确定:在最原始的551例病人数据中存在着各种各样的差别,如性别差异(419例男性,132例女性),诊断结果的差异(486例经证实为肺癌),所患肺癌种类的差异(鳞癌、小细胞癌、大细胞癌等),患病程度上的差异(早、中晚期的不同)等等。显然,训练数据集应最大限度地保证兼顾各种病例情况。经过仔细筛选,选择了含有460个病例的集合作为肺癌诊断用的网络的训练集。
2.神经网络输入和输出数据的预处理
按照人工神经网络的理论,神经网络的输入输出数据都应该属于(0,1)区间的实数,为此我们需对原始数据进行如下的规一化处理:
其中xi为原始数据项,而Max=max{xi∶xi∈X},Min=min{xi∶xi∈X}。这里X为原始数据集。经过(7)式变换后,yi将在(0,1)区间。因此,可作为神经网络的输入输出。
3.应用神经网络进行肺癌诊断
将描述病人各种情况的数据作为前向网络的输入数据加到其输入端,并按(1)~(6)式计算各神经元的输入和输出,同时调整神经元之间的连接权值以使网络的输出和实际的病例情况相符。即当病人确实患肺癌时网络的输出结果也恰好指示为肺癌,反之亦然。如果对所有的训练样本集网络的输出基本上(95%或更高)能保证与实际结果一致,则训练过程结束。我们认为神经网络已建立起病人的各种因素与他是否是肺癌患者之间的函数映射关系。对于一个新的候诊病人来说,只要将他的情况输入到训练好的神经网络中去,根据网络的输出结果就可以知道他是否已患肺癌。
表1 基于不同发病因素的诊断网络模型
类 型 训练集精度 测试集精度
基于遗传因素的诊断网 53.8% 46.3%
基于个人生活习惯的诊断网 57.1% 44.9%
基于病症的诊断网 89.4% 83.3%
基于医学检查结果的诊断网 98.5% 92.6%
上述结果表明不同类型的因素应分开来考虑。于是我们将58项输入数据分成四类,这四类有各自的BP诊断网,依次称为诊断一、诊断二、诊断三、诊断四。它们先单独测定,然后再将它们各自的结果综合起来得出最后的判断。
上述四种诊断网络所得结果的可靠性各不相同。其中,根据医学检查结果所作的诊断准确性最高,因此在最后的综合分析中要重点考虑它的诊断结果,我们给它设一个相对最高的权值。其次,根据病人的症状所作的诊断往往也具有较高的准确性,因此给它的权值也较高,但比医学检查结果的稍低。其他两类因素在有关肺癌的诊断中仅具参考作用,因而所设的权值相对较小。
最后的结果O为:
O=a1.O1+a2.O2+a3.O3+a4.O4
a1+a2+a3+a4=1
其中Oi,ai,i=1,2,3,4分别为各诊断网的输出及其对应的权值。
当O>0.5时最后的诊断结果为患肺癌,反之则正常。对所有的病例数据经上述方法的诊断结果见表2。
表2 神经网络对肺癌诊断结果分析
神经网络
诊断结果 训练数据 测试数据
肺癌患者 非肺癌患者 肺癌患者 非肺癌患者
+ 460 2 25 3
- 0 38 1 22
其中对于训练集,肺癌病人的正确检出率为100%,非肺癌病人误诊率为5%。对于测试集,肺癌病人的正确检出率为96.2%;非肺癌患者正确检出率为88%,误诊率为12%。
讨 论
1.本研究所采用的人工神经网络的肺癌诊断方法的结果较好地符合了已知数据,具有较高的准确性,特别是对于肺癌患者一般都能准确地做出诊断,有利于肺癌的早期发现和治疗。
2.要想进一步提高该方法的准确性,应该注意收集更多更全面的病例数据。人工神经网络主要是利用它能自动从数据集中抽取函数的关系的功能。如果我们所使用的数据越多越全面,则其中所蕴含的事物本身的规律性就越强,利用人工神经网络从中所抽取的函数关系就越具有普遍性,因而就更准确。
3.实现对肺癌的诊断的关键在于准确找到罹患肺癌的判定函数,可利用前向网络的函数逼近功能来实现。但是这里涉及到两个问题。首先,由于差别函数和预测率函数都是利用人工神经网络从已知的病例数据集中抽取出来的,它实际反映的是这些数据集中输入输出对的映射关系。因此要想保证诊断具有较高的准确性,就应该使用来建立函数关系的这些数据集(称训练集)具有充分的代表性,即这些数据应基本蕴含肺癌诊断的医学原理。这就涉及到如何选择网络合理的训练集及关键的输入项。另一个问题涉及到神经网络本身的要求,即网络的输入输出数据值都应在区间(0,1)中。这可以通过数据的编码和归一化来实现。
4.由于某些原因有些病人的病例数据不完整,约占总病例数据的10%左右。显然,如果按照传统的方法来建立肺癌病人的诊断模型〔4〕,这些有缺项的数据是不太好处理的,但是由于人工神经网络有较强的容错性,输入数据在某些项上的错误对网络最终结果的正确性影响不大。
参考文献
1.焦李成.神经网络系统理论.第1版.西安:西安电子科技大学出版社,1995,3
2.Wang Zhenni,Tham Ming T,Morris A.Multilayer Feedforward Neural Networks:A Canonical form Approximation of Nonlinearity,Int J.Control,1992,56(3):655~672.
3.庄镇泉,等.神经网络与神经计算机.北京:科学出版社,1992.
4.郭海强,等.肺癌诊断模型的研究.中国卫生统计,1997,14(5):11