您好,欢迎访问三七文档
蠓虫的分类问题(方红城曹鹏杨科)摘要在现实生活中,要对许多事物进行分类,有了新的事物,要将其划入已知的类别,就需要建立相关的模型和规则。人工神经网络(ArtificalNeuralNetwork,ANN)是一种模拟人脑信息处理方法的非线性系统,它的独特性在于它是一种黑箱理论,具有较强的处理非线性问题的能力,比较适合于一些信息复杂、知识背景不清楚和推理规则不明确问题的建模,如本文中关于蠓虫类别判断的建模。通过给定的训练样本进行机器训练,建立输出与输入变量之间的函数关系,建立非线性过程的模拟模型。本文利用神经网络来进行蠓虫类别的判断。根据蠓虫的触角长度和翼长加以区分,对已知的15组数据(两种蠓虫的触角长度和翼长)以及3只待分类的蠓虫运用BP(Back-Propogation)神经网络模型对蠓虫的分类问题进行了讨论,得到三只蠓是均属于Af类的结果。人工神经网络例如本论文中关于蠓虫类别判断的建模。关键词:神经网络BP算法1问题的重述两种蠓虫Af和Apf已有生物学家..WLGrogan和..根据它们的触角长度和翼长加以区分(见附图),9只Af蠓虫用星形标记,6只Apf蠓虫用圆圈标记。根据给出的触角长度和翼长识别一只标本是Af还是Apf是重要的问题:若给定一只Af或者Apf族的蠓虫,如何正确地区分它属于哪一族?将建立的模型用于触角长和翼长分别为(1.24,1.80),(1.28,1.84),(1.40,2.04)的三个标本,分别给出它们所属类别。若设Af是宝贵的传粉益虫,Apf是某种疾病的载体,是否可以修改你的分类方法,若需修改,怎么改?Af123456789触角长度1.241.361.381.381.381.41.481.541.56翼长1.721.741.641.821.91.71.821.822.08Apf123456触角长度1.141.181.201.261.281.30翼长1.781.961.862.002.001.962问题的分析如上的问题是有代表性的,它的特点是要求依据已知资料(9只Af的数据和6只Apf的数据)制定一种分类方法,类别是已经给定的(Af或Apf)。本文将9只Af及6只Apf的数据集合称之为学习样本。通过应用人工神经网络来解决该类问题可以作为一种新的研究方法。人工神经网络是在现代神经科学的基础上提出和发展起来的,旨在反映人脑结构及功能的一种抽象数学模型,经过了50多年曲折的发展。特别是20世纪80年代,人工神经网络的研究取得了重大进展,有关的理论和方法已经发展成一门界于物理学、数学、计算机科学和神经生物学之间的交叉学科。它在模式识别,图像处理,智能控制,组合优化,金融预测与管理,通信,机器人以及专家系统等领域得到广泛的应用,提出了40多种神经网络模型,其中比较著名的有感知机,Hopfield网络,Boltzman机,自适应共振理论及反向传播网络(BP)等。3基本假设1、假设两个蠓虫总体都服从二维正太分布;2、假设两总体协方差矩阵相等;3、两总体的先验概率“按比例分配”,即各自的容量与总容量的比值;4、误判后造成的损失相等。4定义符号说明iO输出单元状态jH隐单元状态kI输入单元状态ijw中间层到输出层的权jkw输入层到中间层的权siT理想输出结果()EW实际输出与理想输出的差异5模型的建立5.1建立神经网络模型为解决上述问题,本文考虑到人工神经网络(ArtificalNeuralNetwork,ANN),亦称为神经网络(NeuralNetworks,NN),是由大量处理神经单元(神经元Neuros)广泛互联而成的网络,是对人脑的抽象、简化和模拟,反应人脑的基本特征的模型。神经网络的基本功能有联想记忆、非线性映射、分类与识别、优化计算、知识处理等。本文利用神经网络具有归类的性质,做了一个其结构如下图所示的人工神经网络,激活函数由logsig(n)=1/(1+exp(-n))(1.1)来决定。图中最下面单元,即由实心点所示的一层称为输入层,用以输入已知测量值。在本文的例子中,它只需包括两个单元,一个用以输入触角长度,一个用以输入翅膀长度。中间一层称为处理层或隐单元层,单元个数适当选取,对于它的选取方法,有一些文献进行了讨论,但通过试验来决定,或许是最好的途径。在本文中,取三个就足够了。最上面一层称为输出层,在本文的例子中只包含二个单元,用以输出与每一组输入数据相对应的分类信息.任何一个中间层单元接受所有输入单元传来的信号,并把处理后的结果传向每一个输出单元,供输出层再次加工,同层的神经元彼此不相联接,输入与输出单元之间也没有直接联接。这样,除了神经元的形式定义外,又给出了网络结构。有些文献将这样的网络称为两层前传网络,称为两层的理由是,只有中间层及输出层的单元才对信号进行处理;输入层的单元对输入数据没有任何加工,故不计算在层数之内。5.2函数的初始化为了叙述上的方便,此处引人如下记号上的约定:令s表示一个确定的已知样品标号,在蠓虫问题中,1,2,,15s,分别表示学习样本中的15个样品,这里将样本s数据都归一化到[0,1]之间,由于输出向量就是在[0,1]之间,我们只需要将输入向量归一化;利用MATLAB实现样本数据的归一化过程,得到的结果如下:Af的标准化12345678900.43750.43750.7510.22730.40910.13640.40910.3750.43750.50.93750.181800.59090.40911Apf的标准化12345600.3750.87500.363610.250.7510.818210.8182输入初始化的数据后,相应的输出单元状态记为(1,2)siOi,隐单元状态记为(1,2,3)sjHj,输入单元取值记为(1,2)skIk。请注意,此处下标i,j,k依次对应于输出层、中间层及输入层。在这一约定下,从中间层到输出层的权记为ijw,从输入层到中间层的权记为jkw。如果ijw,jkw均已给定,那么,对应于任何一组确定的输入12(,)ssII,网络中所有单元的取值不难确定。事实上,对样品s而言,隐单元j的输入是21ssjkjkkhwI(1.2)相应的输出状态是21()()sssjjkjkkHhwI(1.3)由此,输出单元i所接收到的迭加信号是332111()sssjkiijjijkjjkhwHwwI(1.4)网络的最终输出是332111()()(())ssssjkiiijjijkjjkOhwHwwI(1.5)这里,没有考虑阈值,正如前面已经说明的那样,这一点是无关紧要的。还应指出的是,对于任何一组确定的输入,输出是所有权{,}jkijww的函数。如果能够选定一组适当的权值{,}jkijww,使得对应于学习样本中任何一组Af样品的输入12(,)ssII,输出12(,)(1,0)ssOO,对应于Apf的输入数据,输出为(0,1),那么蠓虫分类问题实际上就解决了。因为,对于任何一个未知类别的样品,只要将其触角及翅膀长度输入网络,视其输出模式靠近(1,0)亦或(0,1),就可能判断其归属。当然,有可能出现介于中间无法判断的情况。现在的问题是,如何找到一组适当的权值,实现上面所设想的网络功能。要找到适当的权值,可以用神经网络中的向后传播算法,对于一个多层网络,如何求得一组恰当的权值,使网络具有特定的功能,下面就来介绍这一算法。如前所述,本文希望对应于学习样本中Af样品的输出是(1,0),对应于Apf的输出是(0,1),这样的输出称之为理想输出。实际上要精确地作到这一点是不可能的,只能希望实际输出尽可能地接近理想输出,那么2,1()()2ssiiisEWTO(1.6)度量了在一组给定的权下,实际输出与理想输出的差异,由此,寻找一组恰当的权的问题,自然地归结为求适当W的值,使()EW达到极小的问题。将式(1.5)代入(1.6),有232,111()[(())]2ssjkiijkisjkEWTwwI(1.7)易知,对每一个变量ijw或ijw而言,这是一个连续可微的非线性函数,为了求得其极小点与极小值,最为方便的就是使用最速下降法。最速下降法是一种迭代算法,为求出()EW的(局部)极小,它从一个任取的初始点0W出发,计算在0W点的负梯度方向0()EW,这是函数在该点下降最快的方向;只要0()0EW,就可沿该方向移动一小段距离,达到一个新的点100()WWEW,是一个参数,只要足够小,一定能保证10()()EWEW。不断重复这一过程,一定能达到E的一个(局部)极小点。这就是BP算法的全部内容,对人工神经网络问题而言,这一算法的具体形式是非常重要的,下面就来给出这一形式表达。对于隐单元到输出单元的权ijw而言,最速下降法给出的每一步的修正量是[]'()ssssssijiiijijssijEwTOhHHw(1.8)此处令'()[]ssssiiiihTO(1.9)对输入单元到隐单元的权,,[]'()'()'()sssssjkiiiijjjsijksssssjiijjkksisEwTOhwhIwwhII(1.10)此处'()sssjjijiihw(1.11)从(1.8)和(1.10)式可以看出,所有权的修正量都有如下形式,即sspqpqswv(1.12)指标p对应于两个单元中输出信号的一端,q对应于输入信号的一端,v或者代表H或者代表I。形式上看来,这一修正是“局部”的,可以看作是Hebb律的一种表现形式。还应注意,si由实际输出与理想输出的差及sih决定,而sj则需依赖si算出,因此,这一算法才称为向后传播算法。通过分析还可知道,利用由(1.8)~(1.10)式所给出的计算安排,较之不考虑sp的向后传播,直接计算所有含'的原表达式,极大地降低了计算工作量。这组关系式称作广义法则,它们不难推广到一般的多层网络上去。利用这一迭代算法,最终生成在一定精度内满足要求的{,}jkijww的过程,称为人工神经网络的学习过程。可以看出,这里所提供的学习机制是元与元之间权的不断调整,学习样本中任何一个样品所提供的信息,最终将包含在网络的每一个权之中。参数的大小则反映了学习效率。6模型的求解下面利用上文所叙述的网络结构及方法,对蠓虫分类问题求解。编写Matlab程序如下:clearp1=[00.37500.43750.43750.43750.50000.75000.937510.18180.227300.40910.59090.13640.40910.40911];%9行2列的数据,代表9只Af的触角和翼长p2=[00.25000.37500.75000.8750100.81820.36361.00001.00000.8182];%6行2列的数据,代表6只APf的触角和翼长p=[p1;p2]';%p1和p2分别作为数据p的两个行pr=minmax(p);%取出每行的最小值和最大值goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)];%产生一个两行15列的数据,每竖列[10]代表Af,[01]代表APfplot(p1(:,1),p1(:,2),'h',p2(:,1),p2(:,2),'o')gridon;net=newff(pr,[3,2],{'logsig','logsig'});%隐层3个神经元,输出层2个神经元net.trainParam.show=10;%网络训练10次显示一次结果net.trainParam.lr=0.05;%设置学习率net.trainParam.goal=1e-10;%误差设置net.trainParam.epochs=15000;%规定训练次数net=train(net,p,goal);%根据网络的输入和期望输出训练网络x=[1.241.80;1.281.84;1.402.04
本文标题:55蠓虫分类
链接地址:https://www.777doc.com/doc-4822498 .html