1.1引言
近年来,随着基因技术在医学中的广泛应用,基于基因数据的计算机辅助诊断迅速发展起来。计算机辅助诊断可以提高医生诊断的准确率,协助医生对病人病因进行判断和识别并有助于预防疾病。在特征提取的基础上进行模式分类是基于基因的计算机辅助诊断的重要步骤,如人工神经网络等分类方法已广泛的应用于疾病诊断及预防系统之中。
人工神经网络的研究已有半个多世纪的历史,起源于20世纪40年代,20世纪80年代开始蓬勃发展,如今出现了研究的新热潮.人工神经网络的研究主要是直接模拟人脑的结构和功能,具有生物神经网络的某些特性,在自学习、自组织、联想、及容错方面具有较强的能力,能用于联想、识别和决策.概率神经网络是20世纪90年代初提出来的一个分类网络,它以贝叶决策和密度函数估计为理论基础,广泛应用于模式识别和模式分类领域.因此,研究概率神经网络的模式识别具有重要的理论意义和应用前景。
1.2人工神经网络的发展及研究现状
人工神经网络(Artificial Neural Network),亦称为神经网络(Neural Networks,NN),是由大量神经处理单元(神经元Neurons)广泛互连而成的网络,是对人脑的抽象、简化和模拟,反映人脑的基本特征。人工神经网络的研究是从人脑的生理结构出发来研究人的智能行为,模拟人脑信息处理的功能。
人工神经网络能模拟人类大脑的某些功能和思维方式,从而更好地解决模式识别、组合优化和智能控制等一系列本质上非计算的问题。它有如下优点:具有很强的自学习和自适应能力,可以处理不确定或不知道的系统;具有很强的信息综合能力,能同时处理定量和定性的信息,能很好地协调多种输入信息关系;具有很强的鲁棒性和容错性,因为信息是分布贮于网络内的神经元中;采用并行处理方法,使得计算快速;可以充分逼近任意复杂的非线性关系等。经过近半个世纪的发展,神经网络理论已在许多研究领域取得了广泛的成功,神经网络和其它算法的结合和交叉,构造混合神经网络模型,是当前神经网络研究的主要趋势。如神经网络和模糊逻辑结合,建立模糊神经网络;将混沌理论和神经网络结合建立混沌神经网络;将优化算法和神经网络结合,利用优化算法优化神经网络的结构或权值;将小波分析和神经网络结合建立小波神经网络;贝叶斯学习以及粗糙集理论和神经网络结合等,都是当前神经网络研究的热点。
到目前为止,神经网络的类型已多达数百种,神经网络的理论研究和实际应用有了引人注目的发展。神经网络在向纵深发展的同时,也在向模糊技术、进化计算等智能方法相结合的方向上发展,并广泛应用于模式识别等多个领域,尤其是在模式识别方面,神经网络所表现出来的能力超过了包括统计方法、静态方法和人工智能方法在内的传统方法。
1.3 研究意义
神经网络通俗来讲,就是人们平时所说的“人工智能”。这个词是神经网络在人类大脑上历史基础的结果。神经网络是基于人类大脑工作的简化模型-这就解释了与人脑相关的神经网络术语。例如,神经网络是经过训练的,而训练的过程被称为"学习"。神经网络,例如多层的感知器,甚至使用被称为"神经元"的内部结构,神经细胞由此接收输入并且以不同的强度发射信号。人工神经元网络是生物神经网络的一种模拟和近似,它从结构、实现机理和功能上模拟生物 神经网络。从系统观点看,人工神经元网络是由大量神经元通过极其丰富和完善的连接而构 成的自适应非线性动态系统。
模式识别是一种从大量信息和数据出发,在专家经验和已有认识的基础上,利用计算机和数学推理的方法对形状、模式、曲线、数字、字符格式和图形自动完成识别的过程。模式识别包括相互关联的两个阶段,即学习阶段和实现阶段,前者是对样本进行特征选择,寻找分类的规律,后者是根据分类规律对未知样本集进行分类和识别。广义的模式识别属计算机科学中智能模拟的研究范畴,内容非常广泛,包括声音和语言识别、文字识别、指纹识别、声纳信号和地震信号分析、照片图片分析、化学模式识别等等。在现实世界中,人类发出的声音、印刷或者书写出的文字、眼睛看到的风景,以及测量器输出的信号等,以各种各样的模式存在着。如果计算机能够听出并且分辨出这些模式,就能够简单地输入到计算机,并且可以送到工专业人员的作业负担。把模式输入到计算机后,通过一系列的处理,就可对其进行识别。
在模式识别中有很多方法:统计模式识别方法,句法结构模式识别,人工神经网络模式识别。前面两者在实际应用过程中都显示出各自的局限性,而人工神经网络的研究起源于对生物神经系统的研究,采用反向传播(BP)网络,具有良好的模式分类能力,引入模糊逻辑理论,能较好地处理一些数据的不确定性问题。因此它对待识别的对象不要求有太多的分析与了解,具有一定的智能化处理的特点。由于具有良好的容错能力、分类能力强、并行处理能力和自学习能力。因而,采用神经网络识别方式是一种很好的选择。
传统的分类方法对于同类相聚,异类分离比较有优势,但客观世界中许多事物在样本空间中的区域分割曲面非常复杂,相近的样本可能属于不同的类,而远离的样本可能属于同一类1。模式是对某些感兴趣的客体的定量描述或结构描述,模式类是具有某些共同特征的模式的集合。模式分类可分为两种类型,分类和聚类,分类是在类别知识等导师信息的指导下,将待识别的输入模式分配到各自的模式类中去。聚类是无导师的分类方法,它是将相似的模式样本划归为一类,而将不相似的分离开,实现了模式样本类内相似性和类间分离性。通过聚类,可以发现原始样本的分布特性。
神经网络对外界的输入样本具有很强的识别能力,可以发现输入样本自身的联系和规律以及输入样本和期望输出之间的非线性规律,因此在模式分类方面具有传统分类方法无法比拟的优点。人工神经网络在模式分类方面提出了大量了网络模型,发现了许多学习算法。
通常所说的神经网络结构,主要指它的连接方式。从拓扑结构上考虑,神经网络属于以神经元为节点,以节点间的有向连接为边的一种图。其结构大体上可分为层状和网状两大类:层状结构的神经网络是由若干层组成,每层中有一定数量的神经元,下相邻层中的神经元为单向连接,同层内的神经元不能连接:在网状结构的神经网络中,任何两个神经元之间都可能双向连接。一般常见的神经网络有如下几种网络结构。
前向网络(前馈网络)。前向网络通常包括许多层,其特点是只有前后相邻两层之间的神经元存在相互连接,各神经元之间没有反馈。每个神经元可以从前一层接收多个输入,并只有一个输入送给下一层的各神经元。三层前向网络分为输入层、隐含层和输出层。在前向网络中有计算功能的节点称为计算单元,而输入节点无计算功能。
反馈网络。反馈网络从输入层到输出层有反馈,即每个节点同时接收外来输入和来自其它节点的反馈输入,其中也包括神经元输出信号引回到本身输入成的自环反。这种反网络的节点都是一个计元。
相互结合型网络。这种网络在任意两个神经元之间都可能有连接。Hopfield网络和Boltzman机均属于这种类型。在无反馈的前向网络中,信号一旦通过某个神经元,该神经元的处理过程就结束了。而在相互结合网络中,信号要在神经元之间反复传递,网络处于一种不断改变状态的动态之中。从某初试状态开始,经过若干次的变化,才会达到某种平衡状态。
3.1.2神经网络的学习和训练
人脑中有一个典型的神经元通过许多树突的精细结构,收集来自其它神经元的信息,当它收到的兴奋输入足够大于它的抑制输入时,神经元将通过轴突发出电话性脉冲,经突触结构影响其它的神经元,这便发生了学习行为。因此,可以认为神经网络学习的本质特征在于神经细胞特殊的突触结构所具有的可塑性连接,而如何调整连接权值就构成了不同的学习规则。学习规则就是修改神经网络的权值和偏置值的方法和过程(也称这种过程是训练算法),其目的是为了训练网络来完成某些工作。现在有很多类型的神经网络学习规则,如Hebb学习规则、Delta学习规则、Wdirow-Hoff学习规则等。大致可以将其分为有监督学习和无监督学习两大类。
有监督学习。为了使神经网络在实际应用中能解决各种问题,必须对它进行训练,就是从应用环境中选出一些样本数据,通过不断地调整权矩阵,直到得到合适的输入输出关系为止,这个过程就是对神经网络的训练过程,这种训练过程需要外界监督,提供训练数据(样本数据)。权值的调整是基于奖惩式的规则:当网络的输出朝正确的方向变化时,调整权值以强化(奖励)此方向的变化;而当网络的输出朝着错误方向变化时,权值将朝着弱化(惩罚)的方向变化。这种学习方法虽然简单,并能够根据训练数据准确地调整出所需的权矩阵,但它也同时要求训练数据能够代表实际的应用环境。并且为了适应环境的变化,需要重新调整权值,这样当学到新知识时,就容易遗忘旧的知识。
无监督学习。无监督学习的训练数据集中,只有输入而没有目标输出,训练过程中神经网络将自动地提取各输入数据的特征,并将其分成若干类。经过训练好的网络能够识别训练数据集以外的新的输入类别,并相应获得不同的输出。
3.2 SOM神经网络
SOM网络是Kohonen于1981年提出的,它引入了网络的拓扑结构,并在这种拓扑结构上进一步引入变化邻域概念来模拟生物神经网络中的侧抑制现象,从而实现网络的自组织特性。SOM网络的无监督学习方式更类似于人类大脑中生物神经网络的学习,其重要特点是通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数和结构。
自组织映射算法的基本目标是寻找较小的原型集来存储一个大的输入集,而这些原型集能够提供对输入空间的良好近似。从分类角度说,自组织映射通过寻找最优参考向量集合来对输入模式进行分类。这个原型集就是自组织网络的权值向量,因此特征映射提供了对输入空间的良好近似。
SOM网络能够根据其学习规则对输入的模式自动进行分类,即在非监督的情况下,对输入模式进行自组织学习,通过反复地调整连接着输入和输出的权值向量,最终使得这些权值反映出输入样本之间的相互距离关系,并在竞争层中将分类结果表示出来。当外界输入不同的样本到SOM网络中,一开始时输入样本引起输出兴奋的位置各不相同,但通过网络自组织后会形成一些输出群,它们分别代表了输入样本的分布,反映了输入样本的图形分布特征。
SOM网络使输入样本通过竞争学习后,相似的输入靠得比较近,不同的分得比较开,以此将一些无规则的输入自动排开,在连接权的调整过程中,使得权值的分布与输入样本的概率密度分布相似。所以SOM网络可以作为一种样本特征检测器,在样本排序、样本分类以及样本检测方面有广泛地应用。
SOM 网属于自组织映射神经网络 SOM神经网络接收外界的输入模式时会分为不同的对应区域各区域对不同的输入模式会有不同的响应特征利用这个特征可以对输入模式进行分类。
5.2 BP神经网络建模
为了降低神经网络的规模和提高网络的性能,我们必须对原始采样数据进行预处理和特征提取,其中后者非常关键,我们采用在神经网络模式识别系统中应用很广泛的PCA主分量分析方法。而神经网络分类器的设计则是最重要的,我们采用BP多层前馈网络实现。
5.2.1 BP神经网络算法设计与实现
经过PCA主分量分析处理后的特征维数取为10,故神经网络的输入层节点数为10。输出层节点数为3。网络期望输出值按输入正面左向时设定为1000。
为了区分分类结果,区分边界定义为0.9即当三个节点输出有一个大于0.9时认定为该类,没有一个大于则认定是假币,拒绝接收。确定隐层节点数时,先根据经验公式(其中m为隐层节点数,n为输入层节点数,为输出节点数)大概先确定初值为5,然后等后面训练比较确定最佳值。
5.2.1.1 神经网络参数的选定
网络激励函数采用Sigmoid函数,训练学习率初始值经考虑选定为0.1,动量系数选用0.95,最大训练次数设定为1000次,系统误差小于时,认为网络收敛。
net.trainParam.show = 1;
net.trainParam.lr = 0.3;
net.trainParam.mc = 0.95;
net.trainParam.mem_reduc = 10;
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-6;
net.trainParam.min_grad = 1e-20;
net.trainParam.time = inf;
以上是BP神经网络的初始化参数的设置。
5.2.1.2 样本训练
试验中采用基因数据的采样数据作为训练样本,对网络进行训练。借助于MATLAB,用改进的BP算法对以上样本进行训练,用-l~l之间的随机数初始化权重,对隐层节点数取2~10之间的数进行试验,得到不同的训练次数如下表所示:
NodeNum = 2; % 隐层节点数
TypeNum = 3; % 输出维数
p1 = xn_train; % 训练输入
t1 = dn_train; % 训练输出
Epochs = 1000; % 训练次数
P = xn_test; % 测试输入
T = dn_test; % 测试输出(真实值)
在这里,我们修改系统的隐层节点数,从2修改到10,我们做对比。
表5-1 不同隐层节点数时网络训练次数表
隐层 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
次数 | >200 | 33 | 42 | 34 | 21 | 58 | 16 | 13 | 30 | 19 | 33 | 16 | 20 | 20 | 29 | 36 |
由该表可知,隐层节点数为12训练次数较少,而且从其训练误差曲线(用MATLAB画出如图5.1)情况来看也比较好,所以最终确定隐层节点数为12,那么最后的网络结构也确定下来即1Ox8x3,即网络容量为2400。
根据已知条件,给定的数据中,已知一组20个样本具有癌症特性,而另一组20个样本具有正常的特性,现在我们要通过神经网络模型将第三组模型进行训练,做模式分类从而来判断其具有的特性。
我们首先将前20组数据归为一个数组,中间20个归为一个数组,最后20个归为一个数组,通过BP神经网络算法对三类进行识别分类。
我们分别以癌症患者的数据和正常人的基因数据为训练目标,对第三组数据进行测试,分别得到如下的结果。
训练样本(癌症病人):
图5-1 训练400次
图5-2 训练100次
图5-3 训练50次
训练样本(正常人):
图5-4 训练400次
图5-5 训练100次
图5-6 训练50次
通过以上分析,我们可以知道第三组数据类型可能为正常人基因。
5.3小结
本章研究并设计实现了一个具体的模式识别系统,即人体基因数据的模式分类。在深入分析、设计其硬件构成的基础上,采用BP神经网络较好地实现了基因数据的识别。开发的样机运行结果良好,有较高的基因识别率,表明本文所研究与开发的成果有较好的理论意义和实用意义。