1、本问题要求根据已知资料(9 支)。今后,我们将9 支及6 支的数据集合称之为学习样本。基于已知的资料可以建立多层前馈网络模型对蠕虫进行分类,利用已知的测量数据该模型可以进行学习过程,得到一组恰当的权值,使网络具有特定的分类功能;可以利用问题一建立的多层前馈网络模型对给定的3个样本进行分类。三、符号说明:表示一个确定的已知样品标号 :当第个样品的原始数据输入网络时,相应的输出单元状态个样品的原始数据输入网络时,相应的隐单元状态个样品的原始数据输入网络时,相应的输入单元状态从中间层到输出层的权从输入层到中间层的权四、模型的建立与求解 4.1模型的建立4.1.1人工神经元模型图1 表示出了作为人工神
2、经网络(artificial neural network ,以下简称)的基本单元的神经元模型,它有三个基本要素: 图1 神经元模型 (i)一组连接(对应于生物神经元的突触),连接强度由各连接上的权值表示,权值为正表示激活,为负表示抑制。(ii)一个求和单元,用于求取各输入信号的加权和(线性组合)。(iii)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内(一般限制在(0,1)或(-1,1)之间)。此外还有一个阈值(或偏置以上作用可分别以数学式表达出来:式中为输入信号,为神经元权值,为线性组合结果,为阈值,为激活函数,的输出。若把输入的维数增加一维,则可把阈值包括进去。例
3、如 此处增加了一个新的连接,其输入为,权值为(或) ,如图2 所示。图2 神经元模型激活函数可以有以下几种:(i)阈值函数 即阶梯函数。这时相应的输出为 其中,常称此种神经元为模型。(ii)分段线性函数 它类似于一个放大系数为1 的非线性放大器,当工作于线性区时它是一个线性组合器放大系数趋于无穷大时变成一个阈值单元。(iii)sigmoid 函数 最常用的函数形式为 参数可控制其斜率。另一种常用的是双曲正切函数 这类函数具有平滑和渐近性,并保持单调性。双曲正弦函数:;双曲余弦函数:双曲正切函数:双曲余切函数:4.1.2 网络结构及工作方式 除单元特性外,网络的拓扑结构也是的一个重要特性。从连接
4、方式看主要有两种。(i)前馈型网络 各神经元接受前一层的输入,并输出给下一层,没有反馈。结点分为两类,即输入单元和计算单元,每一计算单元可有任意个输入,但只有一个输出(它可耦合到任意多个其它结点作为其输入)。通常前馈网络可分为不同的层,第层的输入只与第层输出相连,输入和输出结点与外界相连,而其它中间层则称为隐层。(ii)反馈型网络 所有结点都是计算单元,同时也可接受输入,并向外界输出。NN的工作过程主要分为两个阶段:第一个阶段是学习期,此时各计算单元状态不变,各连线上的权值可通过学习来修改;第二阶段是工作期,此时各连接权固定,计算元状态变化,以达到某种稳定状态。从作用效果看,前馈网络主要是函数
5、映射,可用于模式识别和函数逼近。反馈网络按对能量函数的极小点的利用来分类有两种:第一类是能量函数的所有极小点都起作用,这一类主要用作各种联想存储器;第二类只利用全局极小点,它主要用于求解最优化问题。4.1.3多层前馈网络 图3 多层前馈网络 为解决上述问题,考虑一个其结构如图3 所示的人工神经网络,激活函数由 来决定。图中最下面单元,即由 所示的一层称为输入层,用以输入已知测量值。在本问题中,它只需包括两个单元,一个用以输入触角长度,一个用以输入翅膀长度。中间一层称为处理层或隐单元层,单元个数适当选取,在本问题中,取三个就足够了。最上面一层称为输出层,在本问题中只包含二个单元,用以输出与每一组
6、输入数据相对应的分类信息任何一个中间层单元接受所有输入单元传来的信号,并把处理后的结果传向每一个输出单元,供输出层再次加工,同层的神经元彼此不相联接,输入与输出单元之间也没有直接联接。这样,除了神经元的形式定义外,我们又给出了网络结构,其中只有中间层及输出层的单元才对信号进行处理;输入层的单元对输入数据没有任何加工。在蠓虫分类问题中,分别表示学习样本中的15 个样品;当将第个样品的原始数据输入网络时,相应的输出单元状态为,隐单元状态为,输入单元取值为。如果,均已给定,那么,对应于任何一组确定的输入,网络中所有单元的取值不难确定。事实上,对样品而言,隐单元的输入是 相应的输出状态是 由此,输出单
7、元所接收到的迭加信号是 网络的最终输出是 这里,没有考虑阈值,正如前面已经说明的那样,这一点是无关紧要的。还应指出的是,对于任何一组确定的输入,输出是所有权的函数。如果我们能够选定一组适当的权值,使得对应于学习样本中任何一组Af样品的输入,输出,对应于Apf 的输入数据,输出为那么蠓虫分类问题实际上就解决了。因为,对于任何一个未知类别的样品,只要将其触角及翅膀长度输入网络,视其输出模式靠近亦或,就可能判断其归属。当然,有可能出现介于中间无法判断的情况。现在的问题是,如何找到一组适当的权值,实现上面所设想的网络功能。4.1.4向后传播算法 如前所述,我们希望对应于学习样本中 Af样品的输出是,对
8、应于 Apf 的输出是,这样的输出称之为理想输出。实际上要精确地作到这一点是不可能的,只能希望实际输出尽可能地接近理想输出。为清楚起见,把对应于样品的理想输出记为,那么 度量了在一组给定的权下,实际输出与理想输出的差异,由此,寻找一组恰当的权的问题,自然地归结为求适当的值,使达到极小的问题。这里,将式(8 )代入(9 ),有 易知,对每一个变量而言,这是一个连续可微的非线性函数,为了求得其极小点与极小值,最为方便的就是使用最速下降法。4.1.5最速下降法最速下降法是一种迭代算法,为求出的(局部)极小,它从一个任取的初始点出发,计算在点的负梯度方向,这是函数在该点下降最快的方向;只要,就可沿该方
9、向移动一小段距离,达到一个新的点,是一个参数,只要足够小,定能保证不断重复这一过程,一定能达到的一个(局部)极小点。这一算法的具体形式如下:对于隐单元到输出单元的权而言,最速下降法给出的每一步的修正量是此处令对输入单元到隐单元的权此处由(11)和(13)式可以看出,所有权的修正量都有如下形式,即指标对应于两个单元中输出信号的一端,对应于输入信号的一端,或者代表利用这一迭代算法,最终生成在一定精度内满足要求的的过程,称为人工神经网络的学习过程。可以看出,这里所提供的学习机制是元与元之间权的不断调整,学习样本中任何一个样品所提供的信息,最终将包含在网络的每一个权之中。参数的大小则反映了学习效率。这
10、里要啰嗦一下:;通过上述公式的计算可得的值为下面利用的值计算的值.公式如下: 其中如此下去,便有序列满足:.由单调有界定理得:极限存在.注意到:表示连接权重向量,所以序列是有界序列,于是有收敛子列,记,从而有易见,这表明:是序列的最小值点。这时, 我们便认定是局部极小值点。 上述理论分析告诉我们:使用最速下降法可以在一定精度内获得满足要求的.这意味着人工神经网络训练结束,我们已经建立了可以应用的人工神经网络。 理论分析也告诉我们:(1)的值依赖于初始值(2)的值未必是全局最优解;(3)序列收敛于的速度很慢,从而需要迭代很多次,原因在于学习效率的值要确保严格单调递减,从而不能取得太大。4.2模型
11、的求解对上述模型,编写的Matlab 程序如下:clear allclose allclcp1=1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90; 1.40,1.70;1.49,1.82;1.54,1.82;1.56,2.08;p2=1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.00; 1.28,2.00;1.30,1.96;p=p1;p2pr=minmax(p);goal=ones(1,9),zeros(1,6);zeros(1,9),ones(1,6);plotpv(p,goal(1,:)%plot(p1(:,1
12、),p1(:,2),h,p2(:,1),p2(:o) net=newff(pr,3,2,logsig,);net.trainParam.show = 10;net.trainParam.lr = 0.05;net.trainParam.goal = 1e-10;net.trainParam.epochs = 50000;net = train(net,p,goal);x=1.24 1.80;1.28 1.84;1.40 2.04y0=sim(net,p) y=sim(net,x)最优初始值和阀值:X=-0.26735 -0.36217 0.0034213 0.36022 -0.413 0.045455 -0.49804 0.093353 0.36217 -0.018084 0.073803 0.49511 -0.41496 -0.023949 0.11486 -0.099218 -0.037634最小误差 err=0.0108291.使用随机权值与阀值测试样本预测的结果:测试样
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1