蠓虫分类 (1)_第1页
蠓虫分类 (1)_第2页
蠓虫分类 (1)_第3页
蠓虫分类 (1)_第4页
蠓虫分类 (1)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、蠓虫的分类问题(方红城 曹鹏 杨科)摘 要在现实生活中,要对许多事物进行分类,有了新的事物,要将其划入已知的类别,就需要建立相关的模型和规则。人工神经网络(Artifical Neural Network,ANN)是一种模拟人脑信息处理方法的非线性系统,它的独特性在于它是一种黑箱理论,具有较强的处理非线性问题的能力,比较适合于一些信息复杂、知识背景不清楚和推理规则不明确问题的建模,如本文中关于蠓虫类别判断的建模。通过给定的训练样本进行机器训练,建立输出与输入变量之间的函数关系,建立非线性过程的模拟模型。本文利用神经网络来进行蠓虫类别的判断。根据蠓虫的触角长度和翼长加以区分,对已知的15组数据(

2、两种蠓虫的触角长度和翼长)以及3只待分类的蠓虫运用BP(Back-Propogation)神经网络模型对蠓虫的分类问题进行了讨论,得到三只蠓是均属于Af类的结果。人工神经网络例如本论文中关于蠓虫类别判断的建模。关键词:神经网络 BP算法1问题的重述两种蠓虫Af和Apf已有生物学家和根据它们的触角长度和翼长加以区分(见附图),9只Af蠓虫用星形标记,6只Apf蠓虫用圆圈标记。根据给出的触角长度和翼长识别一只标本是Af还是Apf是重要的问题:若给定一只Af或者Apf族的蠓虫,如何正确地区分它属于哪一族?将建立的模型用于触角长和翼长分别为(1.24,1.80),(1.28,1.84),(1.40,2

3、.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.14 1.18 1.20 1.26 1.28 1.30 翼长1.78 1.96 1.86 2.00 2.00 1.96 2 问题的分析如上的问题是有代表性的,它的特点是要求依据已知资料(9 只Af 的数据和6 只Apf 的数据)制定一种分类方法,类别是已经给定的

4、(Af 或Apf)。本文将9 只Af 及6 只Apf 的数据集合称之为学习样本。通过应用人工神经网络来解决该类问题可以作为一种新的研究方法。人工神经网络是在现代神经科学的基础上提出和发展起来的,旨在反映人脑结构及功能的一种抽象数学模型,经过了50 多年曲折的发展。特别是20 世纪80 年代,人工神经网络的研究取得了重大进展,有关的理论和方法已经发展成一门界于物理学、数学、计算机科学和神经生物学之间的交叉学科。它在模式识别,图像处理,智能控制,组合优化,金融预测与管理,通信,机器人以及专家系统等领域得到广泛的应用,提出了40 多种神经网络模型,其中比较著名的有感知机,Hopfield 网络,Bo

5、ltzman 机,自适应共振理论及反向传播网络(BP)等。3 基本假设1、假设两个蠓虫总体都服从二维正太分布;2、假设两总体协方差矩阵相等;3、两总体的先验概率“按比例分配”,即各自的容量与总容量的比值;4、误判后造成的损失相等。4 定义符号说明输出单元状态隐单元状态输入单元状态中间层到输出层的权输入层到中间层的权理想输出结果实际输出与理想输出的差异5 模型的建立5.1 建立神经网络模型为解决上述问题,本文考虑到人工神经网络(Artifical Neural Network,ANN),亦称为神经网络(Neural Networks,NN),是由大量处理神经单元(神经元Neuros)广泛互联而成

6、的网络,是对人脑的抽象、简化和模拟,反应人脑的基本特征的模型。神经网络的基本功能有联想记忆、非线性映射、分类与识别、优化计算、知识处理等。本文利用神经网络具有归类的性质,做了一个其结构如下图所示的人工神经网络,激活函数由 logsig(n) = 1 / (1 + exp(-n) 来决定。图中最下面单元,即由实心点所示的一层称为输入层,用以输入已知测量值。在本文的例子中,它只需包括两个单元,一个用以输入触角长度,一个用以输入翅膀长度。中间一层称为处理层或隐单元层,单元个数适当选取,对于它的选取方法,有一些文献进行了讨论,但通过试验来决定,或许是最好的途径。在本文中,取三个就足够了。最上面一层称为

7、输出层,在本文的例子中只包含二个单元,用以输出与每一组输入数据相对应的分类信息任何一个中间层单元接受所有输入单元传来的信号,并把处理后的结果传向每一个输出单元,供输出层再次加工,同层的神经元彼此不相联接,输入与输出单元之间也没有直接联接。这样,除了神经元的形式定义外,又给出了网络结构。有些文献将这样的网络称为两层前传网络,称为两层的理由是,只有中间层及输出层的单元才对信号进行处理;输入层的单元对输入数据没有任何加工,故不计算在层数之内。5.2 函数的初始化为了叙述上的方便,此处引人如下记号上的约定:令s 表示一个确定的已知样品标号,在蠓虫问题中,分别表示学习样本中的15个样品,这里将样本s数据

8、都归一化到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输入初始化的数据后,相应的输出单元状态记为,隐单元状态记为,输入单元取值记为。请注意,此处下标i,j,k 依次对应于输出层、中间层及输入层。在这一约定下,从中间

9、层到输出层的权记为,从输入层到中间层的权记为。如果,均已给定,那么,对应于任何一组确定的输入,网络中所有单元的取值不难确定。事实上,对样品s而言,隐单元j的输入是 相应的输出状态是 由此,输出单元 i 所接收到的迭加信号是 网络的最终输出是 这里,没有考虑阈值,正如前面已经说明的那样,这一点是无关紧要的。还应指出的是,对于任何一组确定的输入,输出是所有权的函数。如果能够选定一组适当的权值,使得对应于学习样本中任何一组Af样品的输入,输出,对应于Apf 的输入数据,输出为(0,1),那么蠓虫分类问题实际上就解决了。因为,对于任何一个未知类别的样品,只要将其触角及翅膀长度输入网络,视其输出模式靠近

10、(1,0)亦或(0,1),就可能判断其归属。当然,有可能出现介于中间无法判断的情况。现在的问题是,如何找到一组适当的权值,实现上面所设想的网络功能。要找到适当的权值,可以用神经网络中的向后传播算法,对于一个多层网络,如何求得一组恰当的权值,使网络具有特定的功能,下面就来介绍这一算法。如前所述,本文希望对应于学习样本中Af 样品的输出是(1,0),对应于Apf 的输出是(0,1),这样的输出称之为理想输出。实际上要精确地作到这一点是不可能的,只能希望实际输出尽可能地接近理想输出,那么 度量了在一组给定的权下,实际输出与理想输出的差异,由此,寻找一组恰当的权的问题,自然地归结为求适当的值,使达到极

11、小的问题。将式(1.5)代入(1.6),有 易知,对每一个变量或而言,这是一个连续可微的非线性函数,为了求得其极小点与极小值,最为方便的就是使用最速下降法。最速下降法是一种迭代算法,为求出的(局部)极小,它从一个任取的初始点出发,计算在点的负梯度方向,这是函数在该点下降最快的方向;只要,就可沿该方向移动一小段距离,达到一个新的点,是一个参数,只要足够小,一定能保证。不断重复这一过程,一定能达到的一个(局部)极小点。这就是BP 算法的全部内容,对人工神经网络问题而言,这一算法的具体形式是非常重要的,下面就来给出这一形式表达。对于隐单元到输出单元的权而言,最速下降法给出的每一步的修正量是 此处令

12、对输入单元到隐单元的权 此处 从(1.8)和(1.10)式可以看出,所有权的修正量都有如下形式,即 指标对应于两个单元中输出信号的一端,对应于输入信号的一端,或者代表或者代表。形式上看来,这一修正是“局部”的,可以看作是Hebb律的一种表现形式。还应注意,由实际输出与理想输出的差及决定,而则需依赖算出,因此,这一算法才称为向后传播算法。通过分析还可知道,利用由(1.8)(1.10)式所给出的计算安排,较之不考虑的向后传播,直接计算所有含的原表达式,极大地降低了计算工作量。这组关系式称作广义法则,它们不难推广到一般的多层网络上去。利用这一迭代算法,最终生成在一定精度内满足要求的的过程,称为人工神

13、经网络的学习过程。可以看出,这里所提供的学习机制是元与元之间权的不断调整,学习样本中任何一个样品所提供的信息,最终将包含在网络的每一个权之中。参数的大小则反映了学习效率。6模型的求解下面利用上文所叙述的网络结构及方法,对蠓虫分类问题求解。编写 Matlab 程序如下:clearp1=0 0.3750 0.4375 0.4375 0.4375 0.5000 0.7500 0.9375 1 0.1818 0.2273 0 0.4091 0.5909 0.1364 0.4091 0.4091 1 ; %9行2列的数据,代表9只Af的触角和翼长p2=0 0.2500 0.3750 0.7500 0.8

14、750 1 0 0.8182 0.3636 1.0000 1.0000 0.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列的数据,每竖列1 0代表Af,0 1代表APfplot(p1(:,1),p1(:,2),h,p2(:,1),p2(:,2),o)grid on;net=newff(pr,3,2,logsig,logsig); %隐层3个神经元,输出层2个神经元ne

15、t.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.24 1.80;1.28 1.84;1.40 2.04; %测试数据xy0=sim(net,p) %训练完的网络,再次输入原始输入数据py=sim(net,x) %将测试数据输入网络,查看其测试输出7结果分析通过Matlab计

16、算的结果输出为TRAINLM-calcjx, Epoch 0/15000, MSE 0.358661/1e-010, Gradient 0.10013/1e-010TRAINLM-calcjx, Epoch 10/15000, MSE 0.15505/1e-010, Gradient 0.00768024/1e-010TRAINLM-calcjx, Epoch 20/15000, MSE 0.085899/1e-010, Gradient 0.0111673/1e-010TRAINLM-calcjx, Epoch 30/15000, MSE 0.0565816/1e-010, Gradient

17、 0.00872167/1e-010TRAINLM-calcjx, Epoch 40/15000, MSE 0.0120538/1e-010, Gradient 0.0189875/1e-010TRAINLM-calcjx, Epoch 50/15000, MSE 0.000573707/1e-010, Gradient 0.00953339/1e-010TRAINLM-calcjx, Epoch 60/15000, MSE 6.32491e-005/1e-010, Gradient 0.00185439/1e-010TRAINLM-calcjx, Epoch 70/15000, MSE 2.

18、81323e-007/1e-010, Gradient 3.2684e-006/1e-010TRAINLM-calcjx, Epoch 80/15000, MSE 1.77855e-009/1e-010, Gradient 8.29644e-008/1e-010TRAINLM-calcjx, Epoch 82/15000, MSE 2.87692e-011/1e-010, Gradient 8.24433e-010/1e-010TRAINLM, Performance goal met.y0 = Columns 1 through 12 1.0000 1.0000 1.0000 1.0000

19、1.0000 1.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 Columns 13 through 15 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000y = 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000由matlab计算出y为(1 0),(1 0),(1 0),说明所给三个蠓虫的标本(1.24,1.80)

20、,(1.28,1.84),(1.40,2.04)均属于Af类型。 从模型的建立以及BP神经网络的一系列算法,可以看出本文的模型在对蠓虫分类的问题上具有可靠性,但由于模型本身并不是准确无误,要做到对任何事物的归类判别都准确并不能达到百分百的准确,所以,本文所建立的模型结果可以作为参考。 8 总结对于蠓虫分类这样一个问题,运用线性分析方法来简单的进行分类自然是不妥当的,也达不到良好的效果。人工神经网络是当前类别判断领域中常用的非线性方法之一,神经网络以其自学习、自适应、并行、非线性的特点,广泛应用于许多领域。本论文主要做了以下工作:(l)介绍了人工神经网络理论,论述了BP神经网络的基本知识和特点,

21、为本论文的建模提供了基础。(2)讨论了应用BP神经网络将事物进行分类判断的理论基础,分析了BP神经网络的模型结构与原理,并利用它建立了蠓虫分类的模型,用matlab的M文件语言编写了相应的程序。(3)利用本论文建立的BP神经网络分类识别模型对蠓虫进行了分类,结果表明本论文建立的神经网络判断识别模型是成功的、有效的。本文中神经网络可以自动学习和识别蠓虫类别的内在规律,在分类效果上比传统的线性理论模型具有优越性。虽然本文所建立的模型还具有一定的缺陷,但是随着人工神经网络技术的发展,作者相信,人工神经网络技术在事物类别中的应用研究将具有非常广阔的发展前景。9模型的评价与改进为了更有效地应用 BP 算

22、法,本文做出如下一些补充说明。(1)在式(1.8)与(1.10)中, ,表示为与所有样品s有关的求和计算。实际上,还可以每次仅考虑输入一个样品所造成的修正,然后,按照随机选取的顺序,将所有样品逐个输入,不断重复这一手续,直至收敛到一个满意的解为止。(2)在如上的算法中,利用实际输出与理想输出差的平方和作为度量优劣的标准,这并不是唯一的度量方式,完全可以从其它的函数形式出发,例如从相对熵出发,导出相应的算法。(3)在如上的讨论中使用的是最速下降法,显然,这也不是唯一的选择,其它的非线性优化方法,诸如共轭梯度法,拟牛顿法等,都可用于计算。为了加速算法的收敛速度,还可以考虑各种不同的修正方式。(4)BP 算法的出现,虽然对人工神经网络的发展起了重大推动作用,但是这一算法仍有很多问题对于一个大的网络系统,BP算法的工作量仍然是十分可观的,这主要在于算法的收敛速度很慢。更为严重的是,此处所讨论的是非线性函数的优化,那么它就无法逃脱该类问题的共同困难:BP算法所求得的解,只能保证是依赖于初值选取的局部极小点。为克服这一缺陷,可以考虑改进方法,例如模拟退火算法,或从多个随机选定的初值点出发,进行多次计算,但这些方法都不可避免地加大了工作量。参考文献1数学建模方法导

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论