《神经网络与仿真.ppt》由会员分享,可在线阅读,更多相关《神经网络与仿真.ppt(145页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、关于神经网络与仿真现在学习的是第1页,共145页Outlinen1.人工神经网络简介 n2.神经网络的特点及应用 n3.神经网络模型 n4.神经网络的学习方式 现在学习的是第2页,共145页1.人工神经网络简介 人工神经网络(Artificial Neural Network,ANN),通常简称为神经网络,是一种在生物神经网络的启示下建立的数据处理模型。主要通过调整神经元之间的权值来对输入的数据进行建模,最终具备解决实际问题。现在学习的是第3页,共145页1.人工神经网络简介 单层感知器结构 人工神经网络的可塑性表现于,其连接权值都是可调整的,它将一系列仅具有简单处理能力的节点通过权值相连,当
2、权值调整至恰当时,就能输出正确的结果。网络将知识存储在调整后的各权值中,这一点是神经网络的精髓。现在学习的是第4页,共145页2.神经网络的特点及应用1.自学习和自适应性。自学习和自适应性。给神经网络输入新的训练样本,网络能够自动调整结构参数,改变映射关系 2.非线性性。非线性性。人工神经元处于激活或抑制状态,表现为数学上的非线性关系。3.鲁棒性与容错性鲁棒性与容错性。局部的损害会使人工神经网络的运行适度减弱,但不会产生灾难性的错误。4.计算的并行性与存储的分布性。计算的并行性与存储的分布性。每个神经元都可以根据接收到的信息进行独立运算和处理。人工神经网络具有强大的模式识别和数据拟合能力 现在
3、学习的是第5页,共145页2.神经网络的特点及应用1.模式分类。需要提供已知样本 2.聚类。不需要提供已知样本。3.回归与拟合。相似的样本输入在神经网络的映射下,往往能得到相近的输出。4.优化计算。寻找一组参数组合,使由该组合确定的目标函数达到最小值。5.数据压缩。将数据保存于连接权值中。现在学习的是第6页,共145页3.神经网络模型n 单层网络:单层感知器,线性网络。n 多层网络:其他网络。n 前向网络:BP、径向基网络、自组织网络等。n 反馈网络:Hopfield网络,Elman网络等。本书共介绍了单层感知器、线性网络、BP网络、径向基网络、自组织竞争网络、反馈网络、随机神经网络等神经网络
4、模型。现在学习的是第7页,共145页4.神经网络的学习方式1.有监督学习(有教师学习)。训练样本对应一个教师信号。2.无监督学习(无教师学习)。网络只接受一系列的输入样本,而对该样本应有的输出值一无所知。1.Hebb学习规则:权值的调整量与输入前一神经元输出值和后一神经元输出值的乘积成正比 。2.纠错学习规则:权值的调整量与误差大小成正比。3.随机学习规则:Boltzmann机事实上就是模拟退火算法 。4.竞争学习规则:只有一个获胜神经元可以进行权值调整,其他神经元的权值维持不变,体现了神经元之间的侧向抑制。现在学习的是第8页,共145页单神经元网络现在学习的是第9页,共145页神经元模型神经
5、元模型 图图图图中中中中 为为为为神神神神经经经经元元元元的的的的内内内内部部部部状状状状态态态态,为为为为阈阈阈阈值值值值,为为为为输输输输入入入入信信信信号号号号,为为为为表表表表示示示示从从从从单单单单元元元元 到到到到单单单单元元元元 的的的的连连连连接接接接权权权权系系系系数,数,数,数,单神经元模型可描述为:单神经元模型可描述为:单神经元模型可描述为:单神经元模型可描述为:现在学习的是第10页,共145页通常情况下,取通常情况下,取通常情况下,取通常情况下,取即即现在学习的是第11页,共145页图图图图7-1 单神经元模型单神经元模型现在学习的是第12页,共145页常用的神经元非线
6、性特性有以下四种:常用的神经元非线性特性有以下四种:常用的神经元非线性特性有以下四种:常用的神经元非线性特性有以下四种:(1)阈值型)阈值型)阈值型)阈值型图图图图7-2 7-2 阈值型函数阈值型函数阈值型函数阈值型函数现在学习的是第13页,共145页(2 2)分段线性型)分段线性型)分段线性型)分段线性型图图图图7-3 分段线性函数分段线性函数分段线性函数分段线性函数现在学习的是第14页,共145页(3 3)SigmoidSigmoid函数型函数型图图图图7-4 Sigmoid7-4 Sigmoid函数函数函数函数现在学习的是第15页,共145页单层感知器现在学习的是第16页,共145页Ou
7、tlinen1.单层感知器的结构 n2.单层感知器的学习算法 n3.感知器的局限性 n4.单层感知器应用实例 现在学习的是第17页,共145页1.单层感知器的结构 单层感知器属于单层前向网络,即除了输入层和输出层之外只拥有一层神经元节点。感知器(感知器(perception)的原理相对简单,是学习其他复杂神经)的原理相对简单,是学习其他复杂神经网络的基础网络的基础 。由单个神经元组成的单层感知器只能用来解决线性可分的二分类问题。典型使用场景:将其用于两类模式分类时,就相当于在高维样本空间中,用一个超平面将样本分开。Rosenblatt证明,如果两类模式线性可分,则算法一定收敛。现在学习的是第1
8、8页,共145页1.单层感知器的结构输入是一个N维向量其中的每一个分量都对应于一个权值,隐含层的输出叠加为一个标量值:随后在二值阈值元件中对得到的v值进行判断,产生二二值输值输出出:现在学习的是第19页,共145页1.单层感知器的结构二维空间中的超平面是一条直线。在直线下方的点,输出-1;在直线上方的点,输出1。分类面:现在学习的是第20页,共145页2.单层感知器的学习算法在实际应用中,通常采用纠错学习规则的学习算法。将偏置作为一个固定输入 输入权值现在学习的是第21页,共145页2.单层感知器的学习算法(1)定义变量和参数。X为输入,y为实际输出,d为期望输出,b为偏置,w为权值。(2)初
9、始化。n=0,将权值向量 设置为随机值或全零值。(3)激活。输入训练样本,对每个训练样本指定其期望输出。d(4)计算实际输出。现在学习的是第22页,共145页2.单层感知器的学习算法(5)更新权值向量。(6)判断。若满足收敛条件,算法结束;若不满足,n自增1,转到第3步继续执行。n误差小于某个预先设定的较小的值 n两次迭代之间的权值变化已经很小 n设定最大迭代次数M,当迭代了M次之后算法就停止迭代 条件的混合使用,防止出现算法不收敛现象。现在学习的是第23页,共145页2.单层感知器的学习算法确定学习率 n 不应当过大,以便为输入向量提供一个比较稳定的权值估计 n 不应当过小,以便使权值能够根
10、据输入的向量x实时变化,体现误差对权值的修正作用 n 粗准焦螺旋 和细准焦螺旋的类比。自适应学习率。现在学习的是第24页,共145页3.感知器的局限性单层感知器无法解决线性不可分问题,只能做近似分类。感知器的激活函数使用阈值函数,输出值只有两种取值,限制了在分类种类上的扩展。如果输入样本存在奇异样本,网络需要花费很长的时间。感知器的学习算法只对单层有效。现在学习的是第25页,共145页4.单层感知器应用实例1.手算2.使用工具箱函数 坐标点的二类模式分类问题:二维平面坐标系中存在一系列坐标点,已知部分坐标点属于第一类,部分坐标点属于第二类,求新坐标点的类别。现在学习的是第26页,共145页4.
11、单层感知器应用实例序号Xy所属类型(期望输出)1-915021813-12404-450501106591现在学习的是第27页,共145页4.单层感知器应用实例定义:n=0.2;P=-9 1 -12 -4 0,5;.15 -8 4 5 11,9;d=0,1,0,0,0,1;P=ones(1,6);P现在学习的是第28页,共145页4.单层感知器应用实例(2)初始化,将权值和偏置初始化为零。w=0,0,0;(3)第一次迭代。v=w*P%输出层的输入 y=hardlim(v)%计算网络的输出根据 调整权值 e=(d-y)%误差 ee=mae(e)%计算误差的平均绝对差 w=w+n*(T-y)*P%
12、调整w现在学习的是第29页,共145页4.单层感知器应用实例(4)第二次迭代。重复以上的步骤 v=w*P y=hardlim(v)e=(d-y)ee=mae(e)%误差不为零!w=w+n*(T-y)*P均匀分布元素的方差现在学习的是第30页,共145页4.单层感知器应用实例(5)第三次迭代,重复以上步骤。v=w*P y=hardlim(v)e=(d-y)ee=mae(e)w=w+n*(T-y)*P现在学习的是第31页,共145页5.单层感知器应用实例(6)第四次迭代。v=w*P y=hardlim(v)e=(d-y)ee=mae(e)w=w+n*(T-y)*Pperception_hand.m
13、误差为零,权值w不再更新,得到的分类超平面为:现在学习的是第32页,共145页4.单层感知器应用实例2.使用工具箱函数使用工具箱函数用到的函数:newptrainsimperception_fcn.m现在学习的是第33页,共145页程序%perception_hand.m%清理(1)定义变量 定义输入 期望输出clear,clcclose all%n=0.2;%学习率w=0,0,0;P=-9,1,-12,-4,0,5;.15,-8,4,5,11,9;d=0,1,0,0,0,1;%期望输出P=ones(1,6);P;P现在学习的是第34页,共145页P=1 1 1 1 1 1 -9 1 -12
14、-4 0 5 15 -8 4 5 11 9现在学习的是第35页,共145页%(2)显示要分类的点figure;subplot(2,1,1);%显示待分类的点和分类结果plot(-9,-12 -4 0,15,4 5 11,o);hold on;plot(1,5,-8,9,*);axis(-13,6,-10,16);legend(第一类,第二类);title(6个坐标点的二分类);现在学习的是第36页,共145页现在学习的是第37页,共145页%(3)初始化w=0,0,0;%(4)第一次迭代计算V和y值v=w*P;v y=hardlim(v);%实际输出y%y是实际输出,与期望输出d不一致需要根据
15、误差d-y调整权值和偏置e=(d-y);e ee=mae(e);ee w=w+n*(d-y)*P;w现在学习的是第38页,共145页v=0 0 0 0 0 0y=1 1 1 1 1 1e=-1 0 -1 -1 -1 0ee=0.6667w=-0.8000 5.0000 -7.0000现在学习的是第39页,共145页%(5)第二次迭代,根据第一次迭代更新的w向量的值,计算V和y值 v=w*P;v y=hardlim(v);%实际输出ye=(d-y);e ee=mae(e);ee%可以发现,实际输出与期望输出仍然不一致,还需要再次调整w向量w=w+n*(d-y)*P;w现在学习的是第40页,共14
16、5页v=-150.8000 60.2000 -88.8000 -55.8000 -77.8000 -38.8000y=0 1 0 0 0 0e=0 0 0 0 0 1ee=0.1667w=-0.6000 6.0000 -5.2000现在学习的是第41页,共145页%(6)第三次迭代,根据第一次迭代更新的w向量的值,计算V和y值v=w*P;v y=hardlim(v);%实际输出ye=(d-y);e ee=mae(e);ee%可以发现,mae值与前一次迭代相比没有变化,但是v值已经有了更新,继续调整权值和偏置w=w+n*(d-y)*P;w现在学习的是第42页,共145页v=-132.6000 4
17、7.0000 -93.4000 -50.6000 -57.8000 -17.4000y=0 1 0 0 0 0e=0 0 0 0 0 1ee=0.1667w=-0.4000 7.0000 -3.4000现在学习的是第43页,共145页%(7)第四次迭代v=w*P;v y=hardlim(v);%实际输出ye=(d-y);e ee=mae(e);ee%可以发现,程序在第四次迭代时就已经取得正确的结果,mae值为0,此时算法就收敛了,由于mae值为0,因此即使继续更新w向量,其值也保持不变:w=w+n*(d-y)*P;w现在学习的是第44页,共145页v=-114.4000 33.8000 -98
18、.0000 -45.4000 -37.8000 4.0000y=0 1 0 0 0 1e=0 0 0 0 0 0ee=0现在学习的是第45页,共145页 w=w+n*(d-y)*P;ww=-0.4000 7.0000 -3.4000程序在第4次迭代时就已经取得了正确的结果,mae值为零。此时算法就收敛了,由于mae值为零,因此继续更新w向量,其值也保持不变。现在学习的是第46页,共145页%显示figure;subplot(2,1,1);%显示待分类的点和分类结果plot(-9,-12 -4 0,15,4 5 11,o);hold on;plot(1,5,-8,9,*);axis(-13,6,
19、-10,16);legend(第一类,第二类);title(6个坐标点的二分类);x=-13:.2:6;y=x*(-w(2)/w(3)-w(1)/w(3);plot(x,y);hold off;现在学习的是第47页,共145页现在学习的是第48页,共145页总程序%perception_hand.m%清理clear,clcclose all%n=0.2;%学习率w=0,0,0;P=-9,1,-12,-4,0,5;.15,-8,4,5,11,9;d=0,1,0,0,0,1;%期望输出P=ones(1,6);P;MAX=20;%最大迭代次数为20次%训练i=0;现在学习的是第49页,共145页wh
20、ile 1 v=w*P;y=hardlim(v);%实际输出%更新 e=(d-y);ee(i+1)=mae(e);if(ee(i+1)=MAX)%达到最大迭代次数,退出 disp(MAX times loop);disp(w);disp(ee(i+1);break;end i=i+1;end现在学习的是第51页,共145页%显示figure;subplot(2,1,1);%显示待分类的点和分类结果plot(-9,-12 -4 0,15,4 5 11,o);hold on;plot(1,5,-8,9,*);axis(-13,6,-10,16);legend(第一类,第二类);title(6个坐标
21、点的二分类);x=-13:.2:6;y=x*(-w(2)/w(3)-w(1)/w(3);plot(x,y);hold off;现在学习的是第52页,共145页subplot(2,1,2);%显示mae值的变化x=0:i;plot(x,ee,o-);s=sprintf(mae的值(迭代次数:%d),i+1);title(s);现在学习的是第53页,共145页现在学习的是第54页,共145页 线性神经网络现在学习的是第55页,共145页Outlinen1.线性神经网络的结构 n2.LMS学习算法 n3.LMS算法中学习率的选择 n4.线性神经网络与感知器的对比 n5.线性神经网络实现直线拟合n6.
22、线性神经网络应用实例-与 现在学习的是第56页,共145页1.线性神经网络的结构 线性神经网络最典型的例子是自适应线性元件(Adaptive Linear Element,Adaline)。线性神经网络与感知器的主要区别在于,感知器的传输函数只能输出两种可能的值,而线性神经网络的输出可以取任意值,其传输函数是线性函数。线性神经网络在收敛的精度和速度上较感知器都有了较大提高,但由于其线性运算规则,它也只能解决线性可分的问题。现在学习的是第57页,共145页1.线性神经网络的结构 线性神经网络在结构上与感知器网络非常相似,只是神经元传输函数不同。现在学习的是第58页,共145页1.线性神经网络的结
23、构 若网络中包含多个神经元节点,就能形成多个输出,这种线性神经网络叫Madaline网络。Madaline可以用一种间接的方式解决线性不可分的问题,方法是用多个线性函数对区域进行划分,然后对各个神经元的输出做逻辑运算。现在学习的是第59页,共145页1.线性神经网络的结构 线性神经网络解决线性不可分问题的另一个方法是,对神经元添加非线性输入,从而引入非线性成分,这样做会使等效的输入维度变大。现在学习的是第60页,共145页2.LMS学习算法 LMS算法与感知器网络的学习算法在权值调整上都基于纠错学习规则,但LMS更易实现,因此得到了广泛应用,成为自适应滤波的标准算法。也称为 规则 采用均方误差
24、作为评价指标 是输入训练样本的个数。线性神经网络学习的目标 是找到适当的 ,使得误差的均方差最小。只要用对 求偏导,再令该偏导等于零即可求出 的极值。显然,必为正值,因此二次函数是凹向上的,求得的极值必为极小值。现在学习的是第61页,共145页2.LMS学习算法误差表示为求导误差等于期望输出实际输出求导代入,有:权值的修正值正比于当前位置上的梯度 现在学习的是第62页,共145页2.LMS学习算法(1)定义变量和参数。(2)初始化。给向量赋一个较小的随机初值。(3)输入样本,计算实际输出和误差。(4)调整权值向量。(5)判断算法是否收敛。若满足收敛条件,则算法结束,否则跳转到第3步重新计算。现
25、在学习的是第63页,共145页3.LMS算法中学习率的选择 学习率越小,算法的运行时间就越长,算法也就记忆了更多过去的数据。因此,学习率的倒数反映了LMS算法的记忆容量大小。1996年Hayjin证明,只要学习率满足下式,LMS算法就是按方差收敛的:输入向量自相关矩阵的最大特征值一般不可知,用矩阵的迹代替,迹就是主对角线元素之和。现在学习的是第64页,共145页3.LMS算法中学习率的选择自相关矩阵的主对角线元素就是各输入向量的均方值,故:在感知器学习算法中曾提到,学习率随着学习的进行逐渐下降比始终不变更加合理。反比例函数指数式下降搜索收敛方案 现在学习的是第65页,共145页4.线性神经网络
26、与感知器的对比n网络传输函数。感知器传输函数是一个二值阈值元件,而线性神经网络的传输函数是线性的。这就决定了感知器只能做简单的分类,而线性神经网络还可以实现拟合或逼近。n学习算法。LMS算法得到的分类边界往往处于两类模式的正中间,而感知器学习算法在刚刚能正确分类的位置就停下来了,从而使分类边界离一些模式距离过近,使系统对误差更敏感。现在学习的是第66页,共145页5.线性神经网络实现直线拟合 对于一些离散的数据点,从中找到这些点的规律,就做一条直线,穿过尽可能多的点,使得这些数据和直线上所的估计的点的方差最小,找到的这条直线就是拟合直线,该直线代表了数据之间的线性规律。现在学习的是第67页,共
27、145页%清理clear,clcclose all%定义数据P=-5:5;%输入:11个标量Pd=3*P-7;drandn(state,2);d=d+randn(1,length(d)*1.5%期望输出:加了噪声的线性函数d现在学习的是第68页,共145页P=ones(1,length(P);P%P加上偏置Plp.lr=0.01;%学习率MAX=150;%最大迭代次数ep1=0.1;%均方差终止阈值ep2=0.0001;%权值变化终止阈值%初始化w=0,0;现在学习的是第69页,共145页%循环更新 for i=1:MAX fprintf(第%d次迭代:n,i)e=d-purelin(w*P)
28、;%求得误差向量 ms(i)=mse(e);%均方差 ms(i)if(ms(i)ep1)%如果均方差小于某个值,则算法收敛 fprintf(均方差小于指定数而终止n);break;end现在学习的是第70页,共145页dW=lp.lr*e*P;%权值调整量 if(norm(dW)P=0,0,1,1;0,1,0,1 P=ones(1,4);P d=0,0,0,1 pinv(P)*d 现在学习的是第74页,共145页6.线性神经网络应用实例与手算:%定义 P=0,0,1,1;0,1,0,1 P=ones(1,4);P%包含偏置的输入向量 d=0,0,0,1%期望输出向量%初始化 w=0,0,0%权
29、值向量初始化为零向量 lr=maxlinlr(P)%根据输入矩阵求解最大学习率 MAX=200;%最大迭代次数,根据经验确定现在学习的是第75页,共145页 for i=1:MAX.fprintf(第%d次迭代n,i);v=w*P;%求出输出y=v;disp(线性网络的二值输出:);yy=y=0.5%将模拟输出转化为二值输出,以0.5为阈值e=d-y;%误差m(i)=mse(e);%均方误差fprintf(均方误差:%fn,m(i);dw=lr*e*P;%权值向量的调整量fprintf(权值向量:n);w=w+dw%调整权值向量end6.线性神经网络应用实例与现在学习的是第76页,共145页p
30、lot(0,0,1,0,1,0,o);hold on;plot(1,1,d);x=-2:.2:2;y=1.5-x;plot(x,y)axis(-0.5,2,-0.5,2)xlabel(x);ylabel(ylabel);title(线性神经网络用于求解与逻辑)legend(0,1,分类面);6.线性神经网络应用实例与现在学习的是第77页,共145页得到的分类超平面为:现在学习的是第78页,共145页使用工具箱函数:and_linearlayer.m:线性网络与感知器的对比 线性网络得到的分类面大致位于两类坐标点的中间位置,而感知器得到的分类面恰好穿过其中一个坐标点。线性神经网络鲁棒性强,优于感
31、知器。6.线性神经网络应用实例与现在学习的是第79页,共145页添加非线性输入:6.线性神经网络应用实例异或运行xor_linearlayer.m 现在学习的是第80页,共145页6.线性神经网络应用实例异或使用Madaline:两个神经元 运行xor_madaline.m 现在学习的是第81页,共145页第6章 BP神经网络现在学习的是第82页,共145页Outlinen1.BP神经网络的结构 n2.BP网络的学习算法 n3.设计BP网络的方法 n4.BP神经网络的局限性 n5.BP神经网络应用实例 现在学习的是第83页,共145页1.BP神经网络的结构n BP神经网络是包含多个隐含层的网络
32、,具备处理线性不可分问题的能力。n 误差反向传播算法(Error Back Propagtion,BP),解决了多层神经网络的学习问题。是一种多层前向网络,又叫多层感知器。BP网络是前向神经网络的核心部分,也是整个人工神经网络体系中的精华,广泛应用于分类识别、逼近、回归、压缩等领域。在实际应用中,大约80%的神经网络模型采取了BP网络或BP网络的变化形式。现在学习的是第84页,共145页1.BP神经网络的结构 网络由多层构成,层与层之间全连接,同一层之间的神经元无连接。包含一个多多个隐层,可以实现复杂的映射关系。现在学习的是第85页,共145页1.BP神经网络的结构 BP网络的传递函数必须可微
33、。BP网络一般使用Sigmoid函数或线性函数作为传递函数。n Sigmoid函数是光滑、可微的函数,在分类时它比线性函数更精确,容错性较好。n 将输入从负无穷到正无穷的范围映射到01或-11区间内,具有非线性的放大功能。Log-Sigmoid Tan-Sigmoid现在学习的是第86页,共145页1.BP神经网络的结构n “误差反向传播”:误差信号反向传播。修正权值时,网络根据误差从后向前逐层进行修正。n “反馈神经网络”:输出层的输出值又连接到输入神经元作为下一次计算的输入,如此循环迭代,直到网络的输出值进入稳定状态为止。在本书后面的章节中会专门介绍反馈神经网络,包括Hopfield网络、
34、Elman网络等。BP神经网络属于多层前向网络,工作信号始终正向流动,没有反馈结构。BP网络采用误差反向传播算法误差反向传播算法(Back-Propagation Algorithm)进行学习。在BP网络中,数据从输入层经隐含层逐层向后传播,训练网络权值时,则沿着减少误差的方向,从输出层经过中间各层逐层向前修正网络的连接权值。现在学习的是第87页,共145页2.BP网络的学习算法 BP学习算法的原理与LMS算法比较类似,属于最速下降法。最速下降法最速下降法 最速下降法可以求某指标(目标函数)的极小值,若将目标函数取为均方误差,就得到了LMS算法。对于实值函数 ,如果在某点 处有定义且可微,则函
35、数在该点处沿着梯度相反的方向 下降最快。因此,使用梯度下降法时,应首先计算函数在某点处的梯度,再沿着梯度的反方向以一定的步长调整自变量的值。当步长足够小时 反复迭代求得函数最小值现在学习的是第88页,共145页2.BP网络的学习算法最速下降法 实例:求函数的最小值 根据梯度值可以再函数中画出一系列的等值线或等值面,在等值线或等值面上函数值相等。梯度下降法相当于沿着垂直于等值线方向向最小值所在位置移动。现在学习的是第89页,共145页2.BP网络的学习算法(1)目标函数必须可微。(2)如果最小值附近比较平坦,算法会在最小值附近停留很久,收敛缓慢。“之之”字形下降字形下降(3)对于包含多个极小值的
36、函数,所获得的结果依赖初始值。算法有可能陷入局部极小值点,而没有达到全局最小值点。BP神经网络来说,由于传递函数都是可微的,因此能满足最速下降法的使用条件。现在学习的是第90页,共145页2.BP网络的学习算法最速下降BP法 隐含层传递函数为Sigmoid函数,输出层传递函数为线性函数 1.工作信号正向传播 2.误差信号反向传播 权值调整量=学习率 *局部梯度 *上一层输出信号现在学习的是第91页,共145页2.BP网络的学习算法 当输出层传递函数为线性函数时,输出层与隐含层之间权值调整的规则类似于线性神经网络的权值调整规则。BP网络的复杂之处在于,隐含层与隐含层之间、隐含层与输入层之间调整权
37、值时,局部梯度的计算需要用到上一步计算的结果。前一层的局部梯度是后一层局部梯度的加权和。因此,BP网络学习权值时只能从后向前依次计算。n 串行方式。在线方式,网络每获得一个新样本,就计算一次误差并更新权值,直到样本输入完毕。随机输入样本,不容易陷入局部最优陷阱。n 批量方式:离线方式。网络获得所有的训练样本,计算所有样本均方误差的和作为总误差。容易并行化,速度快。现在学习的是第92页,共145页2.BP网络的学习算法n 动量BP法 在标准BP算法的权值更新阶段引入动量因子,使权值修正值具有一定惯性:本次权值的更新方向和幅度不但与本次计算所得的梯度有关,还与上一次更新的方向和幅度有关(1)如果前
38、后两次计算所得的梯度方向相同,得到的权值较大,可以加速收敛过程。(2)如果前后两次计算所得梯度方向相反,则说明两个位置之间可能存在一个极小值,可以得到一个较小的步长,更容易找到最小值点,而不会陷入来回振荡 现在学习的是第93页,共145页2.BP网络的学习算法n 学习率可变的学习率可变的BP算法:算法:当误差以减小的方式趋于目标时,说明修正方向是正确的,可以增加学习率;当误差增加超过一定范围时,说明前一步修正进行地不正确,应减小步长,并撤销前一步修正过程。n 拟牛顿法拟牛顿法。牛顿法具有收敛快的优点,但需要计算误差性能函数的二阶导数,计算较为复杂。拟牛顿法只需要知道目标函数的梯度,通过测量梯度
39、的变化进行迭代,收敛速度大大优于最速下降法。拟牛顿法有DFP方法、BFGS方法、SR1方法和Broyden族方法。现在学习的是第94页,共145页3.设计BP网络的方法1.网络层数。对于大部分应用场合,单个隐含层即可满足需要 2.输入层节点数。输入层节点数取决于输入向量的维数。如果输入的是的图像,则输入向量应为图像中所有的像素形成的4096维向量。如果待解决的问题是二元函数拟合,则输入向量应为二维向量。3.隐含层节点数。较多的隐含层节点数可以带来更好的性能,但可能导致训练时间过长。经验公式:BP网络的设计主要包括网络层数、输入层节点数、隐含层节点数、输出层节点数及传输函数、训练方法、训练参数的
40、设置等几个方面。样本数输入层结点数现在学习的是第95页,共145页3.设计BP网络的方法 输出层神经元的个数同样需要根据从实际问题中得到的抽象模型来确定。在模式分类问题中,如果共有n种类别,则输出可以采用n个神经元。也可以将节点个数设计为 个,表示最小的不小于 的整数。由于输出共有4种情况,因此采用二维输出即可覆盖整个输出空间,00、01、10和11分别表示一种类别。输出层神经元个数 传递函数的选择 一般隐含层使用Sigmoid函数,而输出层使用线性函数。如果输出层也采用Sigmoid函数,输出值将会被限制在 01或-11之间。现在学习的是第96页,共145页3.设计BP网络的方法训练方法的选
41、择 n使用LM算法收敛速度最快,均方误差也较小。LM算法对于模式识别相关问题的处理能力较弱,且需要较大的存储空间 n模式识别问题,使用RPROP算法能收到较好的效果 nSCG算法对于模式识别和函数逼近问题都有较好的性能表现。初始权值的确定 通常将初始权值定义为较小的非零随机值,经验值为:权值输入端连接的神经元个数 现在学习的是第97页,共145页3.设计BP网络的方法 确定以上参数后,将训练数据进行归一化处理,并输入网络中进行学习,若网络成功收敛,即可得到所需的神经网络。现在学习的是第98页,共145页4.BP神经网络的局限性BP网络具有实现任何复杂非线性映射的能力,特别适合求解内部机制复杂的
42、问题,但BP网络也具有一些难以克服的局限性(1)需要的参数较多)需要的参数较多,且参数的选择没有有效的方法。隐含层结点个数。(2)容易陷入局部最优)容易陷入局部最优。(3)样本依赖性)样本依赖性。如果样本集合代表性差、矛盾样本多、存在冗余样本,网络就很难达到预期的性能(4)初始权重敏感性)初始权重敏感性。训练的第一步是给定一个较小的随机初始权重,由于权重是随机给定的,BP网络往往具有不可重现性。现在学习的是第99页,共145页5.BP神经网络应用实例实现二值逻辑异或 学习率为0.6,动量因子为0.8,默认最大迭代次数为1000次 采用手算实现基于BP网络的异或逻辑。训练时采用批量训练的方法,训
43、练算法使用带动量因子的最速下降法。main_xor.m 现在学习的是第100页,共145页6.BP神经网络应用实例分类面xy现在学习的是第101页,共145页%清理clear all clc randn(state,2);%参数eb=0.01;%误差容限 eta=0.6;%学习率mc=0.8;%动量因子 maxiter=1000;%最大迭代次数现在学习的是第102页,共145页%初始化网络nSampNum=4;nSampDim=2;nHidden=3;nOut=1;w=2*(rand(nHidden,nSampDim)-1/2);b=2*(rand(nHidden,1)-1/2);wex=w,
44、b;W=2*(rand(nOut,nHidden)-1/2);B=2*(rand(nOut,1)-1/2);WEX=W,B;现在学习的是第103页,共145页%数据SampIn=0,0,1,1;.0,1,0,1;.1,1,1,1;expected=0,1,1,0;现在学习的是第104页,共145页%训练iteration=0;errRec=;outRec=;for i=1:maxiter%工作信号正向传播 hp=wex*SampIn;tau=logsig(hp);tauex =tau,1*ones(nSampNum,1);现在学习的是第105页,共145页HM=WEX*tauex;out=lo
45、gsig(HM);outRec=outRec,out;err=expected-out;sse=sumsqr(err);errRec=errRec,sse;fprintf(第%d 次迭代,误差:%f n,i,sse)现在学习的是第106页,共145页%判断是否收敛 iteration=iteration+1;if sse x=0,0;0,1;1,1;1,0%输入向量 t=0,1;0,1%隐含节点的中心 z=dist(x,t)%计算输入向量到中心的距离 G=radbas(z)%将算得的距离输入到径向基函数中G相当于径向基层的输出。再加上偏置b=1,形成矩阵现在学习的是第125页,共145页 G=
46、G,ones(4,1)%加上偏置 d=0,1,0,1%期望输出 w=inv(G.*G)*G.*d%求权值向量d=0,1,0,1T,w=w,w,bT采用以下公式求解w最终:最终:w=-2.5027,-2.5027,2.8413T 计算实际输出:Y=G*w%计算实际输出现在学习的是第126页,共145页6.径向基网络应用实例忽略第三列偏置,第一行是第一个输入向量0,0T在隐含层的输出,其余行以此类推。表示为坐标的形式 RBF网络的隐含层经过高斯函数的运算,将原向量空间中的四个点映射为隐含层空间中的三个点。原空间中四个点线性不可分,而在新的空间中却可由一条直线正确地分成两类 一些解释现在学习的是第1
47、27页,共145页6.径向基网络应用实例%xor_hand.m%清理clear allclose allclc%输入%输入向量x=0,0;0,1;1,1;1,0%隐含节点的中心t=0,1;0,1现在学习的是第128页,共145页6.径向基网络应用实例%计算网络%计算输入向量到中心的距离z=dist(x,t)%将算得的距离输入到径向基函数中G=radbas(z)%加上偏置G=G,ones(4,1)现在学习的是第129页,共145页6.径向基网络应用实例%期望输出d=0,1,0,1%求权值向量w=inv(G.*G)*G.*dG%计算实际输出Y=G*w现在学习的是第130页,共145页6.径向基网络
48、应用实例RBF网络曲线拟合:输入18个样本点,将隐含节点个数设为18,其中心就是输入的x值。期望输出为相对应的y值。这样,网络中有一个输入节点,一个输出节点,18个隐含节点。手算:curve_filt_hand_buid.m 训练curve_filt_hand_sim.m 测试采用工具箱函数:curve_filt_newrb_build.mcurve_filt_newrb_sim.m现在学习的是第131页,共145页现在学习的是第132页,共145页离散Hopfield神经网络现在学习的是第133页,共145页1.离散Hopfield神经网络1.与前向网络的根本区别n 在前向神经网络(或前馈神
49、经网络)中,各层神经元节点接受前一层输入的数据,经过处理输出到下一层,数据正向流动,没有反馈连接。前向线性神经网络的输出仅由当前的输入和网络的权值决定,n 反馈神经网络的输出除了与当前输入和网络权值有关以外,还与网络之前的输入有关 现在学习的是第134页,共145页1.离散Hopfield神经网络 典型的反馈神经网络有Hopfield网络、网络、Elman网络网络、CG网络模型、盒中脑(盒中脑(BSB)模型和双向联想记忆(BAM)等。其最突出的优点是具有很强的联想记忆和优化计算功能,最重要的研究方向是反馈神经网络的稳定性。Hopfield网络分为离散型DHNN和连续型CHNN两种网络模型 最初
50、提出的Hopfield网络是离散网络,输出值只能取0或1,分别表示神经元的抑制和兴奋状态。现在学习的是第135页,共145页1.离散Hopfield神经网络1.输出神经元的取值为 0、12.中间层,任意两个神经元间的连接权值为 3.出于稳定性的考虑,一般避免使用有自反馈的网络。=0 现在学习的是第136页,共145页1.离散Hopfield神经网络 仅考虑中间层神经元节点,可以发现,每个神经元的输出都成为其他神经元的输入,每个神经元的输入又都来自其他神经元。神经元输出的数据经过其他神经元之后最终又反馈给自己,可以把Hopfield网络画成网状结构 现在学习的是第137页,共145页1.离散Ho