多层感知器教材_第1页
多层感知器教材_第2页
多层感知器教材_第3页
多层感知器教材_第4页
多层感知器教材_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

二、多层前馈网络与BP算法

Perceptron是由单层神经元构成的神经网络,δ学习规则只适用于单层神经网络和线性可分的训练模式。在Perceptron的基础上加入了隐含层,形成了多层前馈网络MFNN(MultilayerFeedforwardNN),也有称其多层感知器(MLP,MultilayeredPerceptron)。其训练算法就是著名的误差反向传播算法(BP,ErrorBackPropagation)。采用BP算法的MFNN是使用最广泛的神经网络,有时也称其为BP神经网络。

11.多层前馈网络的结构1)多层前馈网络的组成全连接的网络,由输入层,隐含层,输出层组成2

输入层:仅起信息传递作用,激活函数相当于恒等函数。输出即为输入,

3第一隐含层:由W(1)与输入层全连接。

第二隐含层:由W(2)与第一隐含层全连接。激活函数:4

输出层:由W(3)与第二隐含层全连接。激活函数可以是线性函数或S函数。函数逼近多用线性函数。52)多层前馈网络的结构特点(1)同一层神经元间无连接。(2)相邻两层神经元之间全连接。(3)信息传递有方向性。前向计算时,由输入向输出逐层计算。 误差反向传播用以修正连接权时,则反向计算。672.BP算法1)算法推导第q个样本加在网络上,定义性能指标由梯度法考虑输出层由于8考虑第二隐含层而是表现在输出层的局部误差由于与输出层相连的权值调整9所以结果可以推广到所有的隐含层误差反传h=j的留下于是102)标准BP算法权值调整输出层与隐含层的权值修正公式具有相同的形式不同处:局部误差δ计算。输出层,δ与隐含层,局部误差δ由输出层的性能误差经反向传播而得。11权值调整公式:输出层:隐含层:误差反传123)带动量项修正的BP算法为使学习率μ足够大,又不产生振荡,通常在标准BP算法上再加上一个动量项。η是动量项的学习率。具体算法:(1)置各权值和阈值初值,为小的随机数。(2)输入训练样本(Iq,dq)(q=1,2,…,Q),对每个样本进行(3)-(5)步13(3)计算网络各层实际输出(4)计算训练误差输出层

隐含层(5)修正权值和阈值(6)所有样本集都经历了(3)-(5)步,计算(7)若E≤ε,训练结束。否则转(2)144)BP网络的MATLAB构建使用MATLAB的NeuralNetworkToolbox可以很方便搭建BP网络。15①构建函数:

a:维矩阵,由R维输入样本的最大最小值组成;

b:隐层、输出层节点个数;

c:各层节点作用函数;

d:训练用函数,若BP算法为:Traingd。构建的BP神经网络权值、阈值均为随机数。②设置权值、阈值函数为常值及随机数函数:

常值

net.iw{1,1}net.b{1}net.lw{2,1}net.b{2}

随机数 w=net.inputweights{1,1}.initFcn=‘rands’ b=net.biases{1}.initFcn=‘rands’③

网络仿真函数:

y=sim(net,u)16%由(三维)输入向量的最大、最小值,构建BP网络clearall;closeall;%---构建BP网络结构:N3,4,2(3输入,隐层4节点,2输出)net=newff([0.51;0.30.9;12],[4,2],{'logsig','purelin'},'traingd');w1=net.iw{1,1}%观测BP网1-2层的权值、阈值b1=net.b{1}w2=net.lw{2,1}%观测2-3层的权值、阈值b2=net.b{2}u=[1;0.5;1.2]%输入一个向量y=sim(net,u)%观测输出175)BP网络逼近非线性函数非线性函数:

BP网络:N1,3,1。隐层取S函数,输出取线性函数。权值训练取L-MBP。 训练样本集:u=-0.5:0.05:0.45,d=f(u),样本对长度L=20。测试数据集:u1=-0.48:0.05:0.47,d1=f(u1),样本对长度L=20。18%逼近非线性函数d=f(u)=exp(-1.9(u+0.5))sin(10u)clearall;closeall;u=-0.5:0.05:0.45;%输入样本集d=exp(-1.9*(u+0.5)).*sin(10*u);%输出样本集:非线性函数dfigure(1);plot(u,d,'bo');ylabel('输出样本集d=f(u)','color','r','fontsize',13);xlabel('输入样本集u','color','r','fontsize',13);pause

net=newff(minmax(u),[3,1],{'tansig','purelin'},'trainlm');%网络结构

N1,3,1net=train(net,u,d);%网络训练y=sim(net,u);

%网络输出[d'y']

%期望目标与网络输出对比figure(2);plot(u,d,'bo',u,y,'r*');

ylabel('输出样本集d(o)网络输出

y(*)','color','r','fontsize',13);xlabel('输入样本集u');

pause19u1=-0.48:0.05:0.47;%测试输入集d1=exp(-1.9*(u1+0.5)).*sin(10*u1);

%测试数据集

y1=sim(net,u1);

%网络输出figure(3);plot(u1,y1,'go',u1,d1,'r*');ylabel('测试数据集d1(*)网络输出y1(o)','color','r','fontsize',13);xlabel('测试输入集u1','color','r','fontsize',13);203.与BP算法相关的问题1)基于Sigmoid函数的BP算法简化形式

Sigmoid函数是MLP最常用的激活函数。第(l)层的输出对sj的导数局部误差简化形式输出层隐含层212)初始权值的选择各个权值选择一样,对训练不利。一般取足够小的随机数。一种初始化算法(Nguyen和Widrow算法)设n0是输入层神经元个数,n1为隐含层神经元个数,λ比例因子。(1)计算。 (2)将各权值初始化为-0.5~0.5的随机数。(3)对各权值再次初始化。 (4)对隐含层中的第i个神经元阈值初始化为-wji和

wji之间的随机数。223)网络结构与逼近能力

MLP的输入输出神经元个数与实际的输入输出变量个数相同,其结构取决于隐含层的层数及其神经元个数和激活函数的形式。

业已证明,有足够多的隐含神经元的单层MPL能够逼近任意的可测函数,可以用作非线性函数逼近器。一般,隐含单元越多,神经网络的逼近能力或学习能力就越强,但不能绝对化。如果训练的样本能充分反映输入输出特点,以上结论成立。

反之,训练后的网络与训练样本吻合很好,但对未训练过的情况出现明显的误差,表现为较弱的“泛化”能力。234)权值修正的批处理办法前面的标准BP算法是对每一个样本训练后,立即更新权值。称为在线处理方法。(1)批处理原理将一个训练周期中所有样本形成的权值修正量相加并取平均值。设表示第q个训练样本产生的修正量,整个修正量平均值24(2)权值修正批处理的优点①比“在线处理”往往能得到的误差曲线。②对受噪声污染的训练样本,批处理对去噪有利。平均化过程相当于低通滤波。③批处理更适合于共轭梯度法和牛顿法等复杂优化方法。(3)权值修正批处理的不足①占用更多内存,计算量大。②对受噪声污染的训练样本,在线处理容易使训练逃出误差曲面的“局部最优”。有机会达到全局最优点,而批处理易于陷入“局部最优”。

如何采用合适的权值修正方法,取决于具体情况。折中方法:仅对数个而不是全部训练样本采用批处理方法。25

5)变步长批处理方法

学习率取值大小,影响着网络训练的效率。

若当前的学习率使误差函数值降低,可考虑加大学习率,观察误差是否降低更快。若误差不降反升,学习率需减小,这就是批处理方法的变步长算法的基本思想。具体变步长算法①若权值调整后,总误差平方和上升,超过设定值ξ。放弃本次权值调整,学习率乘小于1的系数ρ,同时把动量学习率γ置为0。②若若权值调整后,总误差平方和下降,接受本次权值修正。学习率乘大于1的系数η,若γ=0,恢复γ为原数值。26

标准BP算法中引入变步长机制可使训练过程加快。但也有两点不足:

1)算法中需调整的系数多。有些更复杂的算法可调系数可能更多。算法性能对这些系数取值非常敏感,没有普遍适用的取值规律。

2)可调系数如果选择不当,可能导致原来用标准BP算法能收敛的问题成为不收敛。③若权值调整后,总误差平方和上升,未超过设定值。接受本次权值修正。保持学习率不变,若γ=0,恢复γ为原数值。276)神经网络的训练与测试

神经网络有很强的泛化(Generalization)或联想记忆(Association)能力,非线性映射能力和自适应能力。在传统的数学建模比较困难或无法解决时,神经网络提供了一种较好的可选择途径。从使用者角度看,神经网络像一只黑箱,训练时只要提供输入输出样本即可。使用时,只需输入一个模式,即可获得实际输出的一个估计。神经网络估计值的准确程度与神经网络的训练和测试有密切关系。28(1)训练和测试样本集的准备

①确定最主要输入模式。如果两个输入有很强相关性,只取其中一个。②进行预处理和尺度变换。用信号处理或特征提取技术剔除异常点,把原始数据变换到[-1,1]或[0,1]的范围。③样本数的选择。样本数多,训练结果易反映实际输入输出关系。但准备数据付出的代价也大。较大的网络需较多的样本。经验值是样本数为连接权总数的5-10倍。通常将样本随机分为两组,一组做训练,一组用于测试。29

(2)训练和测试

将一个样本分别进行网络响应的前向计算和误差的反向传播,以调整权值的过程称为一次训练或学习。这样的训练需要反复进行。通常要成千上万个训练周期,才能获得合适的映射结果。 训练的目的是找出隐藏在样本数据中的输入输出映射关系。对未经训练的输入模式,神经网络通过自身的泛化(联想)功能输出正确或近似正确的的响应。

神经网络的性能衡量是其泛化能力而不是对训练样本的拟合程度。30

一般讲,训练次数越多,越能得到正确的输入输出映射。但是有时训练次数的增多反而导致结果变差。出现“训练过度”的问题。一种原因是,样本的噪声在多次训练后都被网络准确记下了。极端情况是,训练完的神经网络对所有样本都能准确响应,但对新的输入模式不能正确响应,仅实现了查表功能,不具备很好的泛化功能。31训练次数过少,网络对训练和测试样本均方误差都很大。训练次数过多,训练误差降低,但测试误差会上升。

存在一个合适的训练次数,使测试性能表现最佳。训练与测试交替进行可以得到较好的网络性能。32隐含单元对泛化能力的影响:

隐含单元个数越多,越容易记住所有包含噪声的训练样本,降低泛化能力。隐含单元个数越过少,对训练样本不能很好拟合,谈不上有好的泛化能力。隐含单元个数参数一般采用试凑法选择,通过测试来验证。334.BP算法的加速技术

BP算法有两个明显的不足:缓慢的收敛速度,对算法参数的依赖性(如学习因子)。将数值优化问题的方法借用过来解决神经网络的训练。最速下降法和共轭梯度法与误差反向传播结合形成神经网络学习的主要方法。神经网络训练就是调整w对性能指标E(w)进行优化的过程。

P[k]表示搜素方向,α[k]表示学习率或搜索步长。34(1)最速下降法

最速下降法也称梯度法,是最常用的非线性优化技术。

寻优时,希望每一步的搜索都能使指标下降:一阶泰勒展开式表示E(w)在w[k]处的梯度即35

为使应该因为所以

当搜索方向p[k]指向负梯度方向最大,使E(w)下降最快。最速下降法的权值调整36(2)牛顿法

最速下降法采用E(w)的一阶泰勒展开式,如用二阶泰勒展开式H是海森矩阵,由E(w)对w的二阶偏导构成37对Δw求导并令它等于0,将那么牛顿-拉夫逊法称为牛顿步,方向称为牛顿方向。

如果H正定,E(w)是二次型函数,牛顿法可以一步得到最优解。如果E(w)不是二次型函数,需重复使用牛顿法。能否收敛到最优点,由初始点和函数类型决定。38

牛顿法的不足:收敛性H阵及其逆的计算。与最速下降法相比,牛顿法搜索过程复杂,可能不收敛。最速下降法只要学习率不太大,收敛有保证。

H阵计算与存储,H逆阵计算耗费大量计算资源。许多学者研究了一些改进算法,采用最速下降法和牛顿法结合与折衷。39(3)共轭梯度法

共轭梯度法不必计算二阶导数,但具有二阶方法的性能,是广泛使用的优化算法。

1)共轭的定义

设Q是nxn的对称矩阵,pj

和pk(j≠k)是n维向量,如果,称pj

和pk

对Q互相共轭,或称Q-正交。若Q=I,pj

和pk

正交。若Q正定,n个相互共轭的非零向量pk

是线性独立的。定义在n维空间的二次性能函数,如果沿共轭方向pk

搜索,最多经过n步迭代就能达到极小点。40考虑二次型性能函数α是k时刻沿方向p[k]搜索,使E(w)最小的学习率。梯度是二阶梯度是Hessian矩阵梯度增量41对二次型性能函数,最优学习率

由共轭条件,并且α是标量

温馨提示

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

最新文档

评论

0/150

提交评论