《2022年神经网络与数模讲义 .pdf》由会员分享,可在线阅读,更多相关《2022年神经网络与数模讲义 .pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 1.基本的神经元及其学习规则1.1 神经元模型1.MP 模型人工神经网络的第一个数学模型是由McCulloch 和 Pitts 建立的。该模型是基于这样一种思想:神经细胞的工作方式是或者兴奋,或者抑制。基于这个思想,McCulloch 和 Pitts 在神经元模型中引入了硬极限函数,该函数形式后来被其他神经网络(如多层感知器、离散Hopfield 网络)采用。由于神经元之间的信号连接强度取决于突触状态,因此在 MP 模型中,神经元的每个突触的活动强度用一个固定的实数即权值模拟。于是每个神经元模型都可以从数十个甚至数百个其他神经元接受信息,产生神经兴奋和冲动;同时,在其他条件不变的情况下,不
2、论何种刺激,只要达到阈值以上,就能产生一个动作电位。但如果输入总和低于阈值,则不能引起任何可见的反应。图 1 所示为 MP 模型示意图。T12(,)nxx xx为神经元的输入,T12(,)nww ww为相应的连接权值,T 为神经元的兴奋阈值,y 为神经元的输出,y 取二值函数,即111,0,niiiniiiw xTyw xT图 1 MP 模型单个 MP 模型可以实现与、或、与非、或非等二值逻辑运算(但不能实现异或运算),该模型曾因说明了人工神经网络可通过简单的计算产生相当复杂的行为,从而引起极大的轰动,但它是一种静态神经元,即结构固定,权值无法调节,因此,缺乏一个关键性的要素,即学习能力。2一
3、般神经元模型图 2 所示为一个具有n 个输入的通用的神经元模型。图 2 通用神经元模型名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 17 页 -2 T12(,)nxx xx为神经元的输入,T12(,)nww ww为可调的输入权值,?为偏移信号,用于建模神经元的兴奋阈值,u(*)为神经元的基函数,是一个多输入单输出函数u=u(x,w;?)。f(*)为神经元的激活函数(也称神经元函数、挤压函数或活化函数),f(*)的一般作用是对基函数输出u进行“挤压”:y=f(u),即通过非线性函数f(*)将 u 变换到指定范围内。1.2 基函数 u(*)的类型1线性函数:常用于多层感知器(MLP
4、)、Hophield 网络等。T1njjjuxwx w2距离函数:常用于径向基函数神经(RBF)网络等。21()njjjuxwxw式中,w 常被称为基函数的中心,u 表示输入矢量x 与权矢量w 之间的欧氏距离。在多维空间中,该基函数的形状是一个以w 为球心的超球。3椭圆基函数21()njjjjucxw1.3 激活函数 f(*)的类型1硬极限函数:常用于分类。1,01,0()()sgn()0,01,0uuyf uyf uuuu或其中 sgn(*)为符号函数。2线性函数:常用于实现函数逼近的网络。y=f(u)=u 3饱和线性函数:常用于分类。1()|1|1|2yfuuu名师资料总结-精品资料欢迎下
5、载-名师精心整理-第 2 页,共 17 页 -3 4Sigmoidal 函数,也称 S 函数:常用于分类、函数逼近或优化。1111()()uuueyfuyfuee或5高斯函数:常用于 RBF 网络。22()uyf ue1.4 神经学习算法神经网络的学习有两种形式:有导学习和无导学习。有导学习也称监督学习(Supervised Learning)。一般情况下,有导学习的训练样本是输入输出对(,iipd),1,2,in,其中ip为输入样本,id为输出样本(期望输出,或教师信号)。神经网络训练的目的是:通过调节各神经元的自由参数,是网络产生期望的行为,即当输入样本ip时,网络输出尽可能接近id。无导
6、学习也称无监督学习(Unsupervised Learning)或自组织学习(Self-Organized Learning)。无导学习不提供教师信号,只规定学习方式或某些规则,具体的学习内容随系统所处环境(即输入信号情况)而异,系统可以自动发现环境特征和规律。不管是有导学习还是无导学习,都要通过调整神经元的自由参数(权值或阈值)实现。输入样本:T121(,)nxx xx当前权值:T12()(,)nw tw ww期望输出:T12(,)ndd dd权值调节公式:1()()()w tw tw t,其中为学习率,一般取较小的值,权值调整量()w t一般与 x,d 及当前权值w(t)有关。名师资料总结
7、-精品资料欢迎下载-名师精心整理-第 3 页,共 17 页 -4 1Hebb 学习规则输入样本:T121(,)nxx xx当前权值:T12()(,)nw tw ww实际输出:()Tyf w tx权值调节公式:1()()()w tw tw t,其中权值调整量()w ty x。2离散感知器学习规则如果神经元的基函数取线性函数,激或函数取硬极限函数,则神经元就成了单神经元感知器,其学习规则称离散感知器学习规则,是一种有导学习算法。常用于单层及多层离散感知器网络。输入样本:T12(,)nxx xx当前权值:T12()(,)nw tw ww期望输出:T12(,)ndd dd当前输出:()sgn()Tyf
8、 uw tx当前误差信号:()sgn()Te tdydw tx当前权值调节量:()()w te tx权值修正公式:1()()()w tw tw t。3学习规则1986 年,认知心理学家McClelland 和 RumeChart 在神经网络训练中引入了(Delta)规则,该规则也称连续感知器学习规则。输入样本:T12(,)nxx xx当前权值:T12()(,)nw tw ww期望输出:T12(,)ndd dd基函数:T1niiiuw xwx实际输出:11()uyf ue(激活函数)输出误差:2211()()22Edydf u名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 17 页
9、 -5 神经元权值调节学习规则的目的是:通过训练权值w,使得对于训练样本对(x,d),神经元的输出误差2211()()22Edydf u达最小,误差E 是权向量w 的函数,欲使误差E 最小,w 应与误差的负梯度成正比,即wE,其中,比例系数是一个常数,误差梯度:()()Edf ufux得权值调整公式:TT1()()()()w tw tdf w xf w xx常用于:单层、多层神经网络、BP 网。4LMS 学习规则1962 年,Bernard Widrow 和 Marcian Hoff 提出了 Widrow-Hoff学习规则,因为它能使神经元实际输出与期望输出之间的平方差最小,故又称最小均方规则
10、(LMS)。在学习规则中,若激活函数f(u)取:TT()yf w xw x,则学习规则就成为LMS 学习规则:输入样本:T12(,)nxx xx当前权值:T12()(,)nw tw ww期望输出:T12(,)ndd dd基函数:T1niiiuw xwx实际输出:T()yf uw x(激活函数)输出误差:2211()22TEdydwxTEdw xx权值调整公式:T1()()()w tw tdw xx常用于自适应线性单元。5竞争学习规则也称 Winner-Take-All(胜者为王)学习规则,用与无导师学习。一般将网络的某一层确定为竞争层,对于一个特定的输入x,竞争层的所有神经元均有输出响应,其中
11、响应值最大的神经元m 为在竞争中获胜的神经元,即:T1,2,max()Tmiipw xw x只有获胜神经元才有权调整其权向量mw,调整量为:()mmwxw,式中(0,1,是名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 17 页 -6 一个小的学习常数,一般其值随着学习大进展而减少。由于两个向量的点积越大,表明两者越近似,所以调整获胜神经元权值的是使mw进一步接近当前输入x。显然,当下次出现与x 相像的输入模式时,上次获胜的神经元更容易获胜,在反复的竞争学习过程中,竞争层的各神经元所对应的权向量被逐渐调整为样本空间的聚类中心。1.5 神经网络的拓扑结构主要有前向神经网络和反馈神经
12、网络。2.多层感知器网络(MLP)2.1 单层(两层)感知器模型图 3 两层感知器模型输入样本:T12(,)nxx xx当前权值:111212122212mmn mnnnmwwwwwwWRwww期望输出:T12(,)mdd dd基函数:T1niiiuw xwx实际输出(激活函数):()sgn()yf uu由于对不同的输出单元,其连接权是相互独立的,因而可将一个多输出两层感知器分解成多个u(*)u(*)u(*).f(u)f(u)f(u).x1xnx2y1y2ymw11w12w1mwnm名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 17 页 -7 单输出两层感知器。图 4 两层感知
13、器模型学习算法如下:第一步,设置变量和参量12()1,(),(),()Tmx nx nxnxn为输入向量,或训练样本。12()(),(),(),()Tmw nb nw n wnwn为权值向量,b(n)为偏差。y(n)为实际输出,d(n)为期望输出,为学习速率,n 为迭代次数。第二步,初始化,赋给(0)jw各一个较小的随机非零值,n=0。第三步,对于一组输入样本12()1,(),(),()Tmx nx nx nxn,指定它的期望输出d,if X1d=1,if X2d=-1 第四步,计算实际输出()sgn()()Ty nwnx n第五步,调整权值向量1()()()()()w tw td ny nx
14、 n第六步,若()()()e nd ny n,或(1)()w nw n,算法结束,否则,n=n+1,转到第二步。例1 用单层感知器解决一个简单的分类问题。设计一个感知器,将二维的四组输入矢量分成两类:输入矢量:P=-0.5 -0.5 0.3 0;-0.5 0.5 0.5 1 目标矢量:T=1 1 0 0 解:对感知器的图解分析可知,感知器对输入矢量的分类实际是在输入矢量空间,用W*X+b=0的分割线对输入矢量进行切割而达到分类目的。根据这个原理,对此例中二维四组输入矢量的分类u(*).x1xnx2f(u)yjw1jw2jwnjujb(n)名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页
15、,共 17 页 -8 问题,可以用下述不等式组来等价的表达出:12121220.50.500.50.500.30.500wwbwwbwwbwb实际上,可以用代数求解法来求出上面不等式中的参数,其解的范围为:112111200.813wwwwwbwbw一组可能解为:12100.1wwb本题所要设计的单层感知器的网络结构图为:图 5 其中,T,sgn()uwxb yuMatlab 源代码:(MLP_class.m)%单层感知器:分类P=-0.5-0.5 0.3 0;-0.5 0.5-0.5 1;%输入矢量T=1 1 0 0;%目标矢量net=newp(-1 1;-1 1,1);%返回画线句柄,下一
16、次绘制分类线时将旧的删除handle=plotpc(net.iw1,net.b1);%设置训练次数:最大为 10 次net.trainParam.epochs=10;net=train(net,P,T);Y=sim(net,P);figure;plotpv(P,Y);handle=plotpc(net.iw1,net.b1,handle)图 6.+u(*)x1x2f(u)yw1w2ub名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 17 页 -9 例2 某单层计算节点感知器有3 个输入,给定 3 对训练样本如下:11(1,1,2,0),1TXd;22(1,0,1.5,0.5),1
17、TXd;33(1,1,1,0.5),1TXd设初始权向量(0)(0.5,1,1,0),0.1Tw,注意:输入向量中第一个分量0 x恒等于-1,权向量中第一个分量为阈值,试根据以上学习规则训练该感知器。解:目的是求0123(,)TWw w w w,使|sgn()|Tdw x,其中0123(,)Txxx xx为训练样本,0w为阈值。Matlab 源代码:(MLP_my.m)%某单层感知器有3 个输入,对给定的 3 个输入样本和目标矢量,训练该感知器X=-1,1,-2,0;-1,0,1.5,-0.5;-1,-1,1,0.5;%3个输入样本d=-1,-1,1;%对应目标矢量W=0.5,1,-1,0;%
18、初始化权值矢量,第一个分量为阈值a=0.1;%学习率b=0.001;%误差下限p=10;%循环次数上限y=;%实际输出T=size(X,1);%输入样本个数n=0;%实际循环次数for k=1:p m=0;%误差 for i=1:T u=0;for j=1:size(X,2)u=u+W(i+(k-1)*T,j)*X(i,j);%基函数 end if u 0%激或函数 :符号函数 y(i)=-1;else y(i)=1;end 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 17 页 -10 m=m+abs(d(i)-y(i);%误差 for j=1:size(X,2)W(i+1+
19、(k-1)*T,j)=W(i+(k-1)*T,j)+a*(d(i)-y(i)*X(i,j);%权值调整 end end if m b%累计误差低于误差下限,算法结束 n=k;%实际循环次数 break end end W%训练后的权值矢量y%实际输出n%实际循环次数m%误差练习:用感知器实现逻辑“与”功能:(源代码 MLP_and.m)网络结构:两个输入,一个输出;给定四个训练样本如下:11(1,1,1),1TXd,22(1,1,0),0TXd33(1,0,1),0TXd,44(1,0,0),0TXd用感知器实现逻辑“或”功能:(源代码 MLP_or.m)网络结构:两个输入,一个输出;给定四个
20、训练样本如下:11(1,1,1),1TXd,22(1,1,0),1TXd33(1,0,1),1TXd,44(1,0,0),0TXd用感知器无法实现逻辑“异或”功能:x1 x2 y 1 1 1 1 0 0 0 1 0 0 0 0 x1 x2 y 1 1 1 1 0 1 0 1 1 0 0 0 x1 x2 y 1 1 0 1 0 1 0 1 1 0 0 0 名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 17 页 -11 2.2 线性阈值单元组成的多层感知器模型由于单层感知器网络只能完成线性分类,对线性不可分样本的分类问题,可以用线性阈值单元组成的多层感知器来解决。一个n 输入 m
21、 输出的线性阈值单元组成的多层感知器网络结构如图所示。图 7 多层感知器网络结构2.3 BP网络及 BP 算法1.BP 网络模型BP网与多层前向感知器网络结构完全相同,只是隐节点的激活函数一般采用Sigmoidal 函数。BP 网输出节点的激活函数根据应用的不同而异:如果用于分类,则输出节点的激活函数一般采用Sigmoidal 函数或硬极限函数;如果用于函数逼近,则一般采用线性函数。BP网采用多层结构,包括输入层、多个隐含层、输出层,各层之间实现全连接。2.BP 网络学习算法BP算法也称误差反向传播算法(Error Back-Propagation Algorithm),是一类有导学习算法,用
22、于 BP网的权值和阈值学习。下面以三层感知器BP 网络为例,进行BP 算法推倒。图 8 三层 BP 网络结构u(*)u(*)u(*).f(u)f(u)f(u).x1xnx2y1y2ymw11w12w1mwnmu(*)u(*)u(*).u(*)u(*)u(*).输入层隐层输出层y1ymy2.x1xnx2o1W1.输入层隐层输出层x0y0V1VmWlo2ol名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 17 页 -12 输入向量:T012011(,),nXxx xxxin隐层输出向量:T012011(,),mYyy yyyjm输出层输出向量:T121(,),lOo ookl期望输
23、出向量:T121(,),ldd ddkl输入层到隐层之间的权值矩阵:121(,),n mmVV VVRjm,其中列向量jV为隐层第 j 个神经元对应的权向量:T121(,),njjjnjVVVVRjm隐层到输出层之间的权值矩阵:121(,),m llWW WWRkl,其中列向量kW为输出层第 k 个神经元对应的权向量:T121(,),mkkkmkWWWWRkl下面分析各层信号之间的数学关系。对于输出层:1(),kkOf ukl,01,mkjkjjuwykl(3.6)(3.7)对于隐层:1(),jjyf ujm,01,njijiiuvxjm(3.8)(3.9)以上两式中,激活函数f(x)均为单极
24、性Sigmoid 函数。111()()(),()xf xf xf xfxe(3.10)(3.11)f(x)连续,可导,根据需要,也可取11()xxef xe定义输出误差:22111()()22lkkkEdOdO(3.12)将以上误差定义式展开至隐层,有:2101()2lmkjkjkjEdfwy(3.13)进一步展开至输入层,有:21001()2lmnkjkijikjiEdfwfvx(3.14)从上式可以看出,误差E 是各层权值,jkijwv的函数。调整权值可使误差E 不断减小,因此,因使权值的调整量与误差的梯度下降成正比,即:,0,1,;1,2,jkjkEwjm klw(3.15a)名师资料总
25、结-精品资料欢迎下载-名师精心整理-第 12 页,共 17 页 -13,0,1,2,;1,ijijEvin jmv(3.15b)式中,负号表示梯度下降,常数(0,1)在训练中表示学习速率。3.BP 算法推导式(3.15)仅是对权值调整思路的数学表达,而不是具体的权值调整计算式。下面推导三层BP算法权值调整的计算式。事先约定,在全部推导过程中,对输出层均有:0,1,;1,2,jm kl,对隐层均有:0,1,;1,2,in jm对于输出层,式(3.15a)可写为:kjkjkkjkuEEwwuw(3.16a)对于隐层,式(3.15b)可写为:jijijjijuEEvvuv(3.16b)对于输出层和隐
26、层,各定义一个误差信号,令okkEu,yjjEu(3.17a)(3.17b)则由(3.7)和(3.17a),可将(3.16a)改为:ookjkkkjjkuwyw(3.18a)由(3.9)和(3.17b),可将(3.16b)改为:yykijjjiijuvxv(3.18b)可以看出,只要计算(3.18)中的误差信号ok,yj,权值调整量的计算推导即可完成。下面继续推导如何求ok,yj。对于输出层,ok可展开为:()okkkkkkkoEEEfuuouo(3.19a)对于隐层,yj可展开为:()jyjjjjjjyEEEfuuyuy(3.19b)利用(3.12)可得:()kkkEdOO(3.20a)利用
27、(3.13)可得:1()()lkkkjkkjEdOfuwy(3.20b)将(3.20)代入(3.19),并应用(3.11),得:()(1)okkkkkdOOO(3.21a)名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 17 页 -14 11()()()()(1)llyojkkkjkjkjkjjkkdOfuwfuwyy(3.21b)至此,两个误差信号的推导已完成。将(3.21)代回到(3.18),得到三层感知器的BP 学习算法权值调整计算公式:()(1)ojkkjkkkkjwydOOOy(3.22a)1()(1)lyoijjikjkjjikvxwyyx(3.22b)3.BP 算
28、法程序实现(1)初始化对权值矩阵W,V 赋随机数,将样本模式计数器P 和训练次数计数器q 置为 1,误差 E=0,学习率设为01,网络训练后达到的精度minE.设为一个小的正数(0.01).(2)输入训练样本对,计算各层输出用当前样本,ppXd对向量组,X d赋值,用下式计算Y,O 中各分量:输出层:01(),mkjkjjOfwykl隐层:01(),njijiiyfvxjm式中,11()xf xe(3)计算网络输出误差设共有 P对训练样本,总输出误差P2max11()PpppEdO式中,l21()ppppkkkdOdO(4)计算各层误差信号:ok,yj(5)调整各层权值应用(3.22a),(3
29、.22b),计算 W,V中各分量。(6)检查是否对所有样本完成一次轮训若 pP,计数器 p,q 增 1,返回步骤(2),否则转步(7)。(7)检查网络总误差maxE是否达到精度要求,若maxminEE,结束。名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 17 页 -15 例 BP 网络的应用:函数逼近试设计神经网络来实现下面这对数组的函数关系:P=-1:0.1:1;%-输入向量-T=-0.96-0.577-0.0729 0.377 0.641 0.66 0.461 0.1336-0.201-0.434-0.5-0.393-0.1647 0.0988 0.3072.0.396
30、0.3449 0.1816-0.0312-0.2183-0.3201;%-目标向量-源代码:(BP_Mat.m)%BP 网络应用;函数逼近my source%说明:通过输入向量P,目标向量T,训练权值向量W1,W2,寻找逼近函数:T=f(P)%BP 网络结构:输入层神经元个数R=1,隐层神经元个数S1=5,输出层神经元个数S2=1 P=-1:0.1:1;%-输入向量-P2=-1:0.1:1;T=-0.96-0.577-0.0729 0.377 0.641 0.66 0.461 0.1336.-0.201-0.434-0.5-0.393-0.1647 0.0988 0.3072.0.396 0.
31、3449 0.1816-0.0312-0.2183-0.3201;%-目标向量-plot(P,T,r+);%-(1)初始化:-R,Q=size(P);%R,Q 分别为输入向量P 的行数(输入层神经元个数),列数(训练样本个数)S2,Q=size(T);%S2,Q 分别为目标向量T 的行数(输出层神经元个数),列数S1=5;%-隐层神经元个数W1,B1=rands(S1,R);%随机产生权值矩阵W1(行数 S1,列数 R),向量 B1(维数 S1)W2,B2=rands(S2,S1);b1=;b2=;b1=B1*ones(1,Q);%ones(m,n):产生矩阵(m,n),元素全为1 b2=B2
32、*ones(1,Q);a2=W2*tansig(W1*P2+b1)+b2;%tansig:双曲正切函数A2=purelin(a2);%purelin:纯线性函数,相当于A2=a2 hold on plot(P,A2)名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 17 页 -16 hold off disp(按任一键继续)pause net=newcf(minmax(P),5,1,tansig,purelin,traingd);%创建两层前向回馈网络net.trainParam.epochs=7000;%初始化训练次数net.trainParam.goal=9.5238e-00
33、4;%sse=0.02%初始化误差值net.trainParam.lr=0.15;net,tr=train(net,P,T);%训练网络Y=sim(net,P);%计算结果sim:模拟神经网络plot(P,Y,r-)hold plot(P,T,r+);hold off 说明:用 RBF 网络来实现上面的逼近函数,只需要6 步,而 BP 网络需要6000 步。可见,RBF 网络的收敛速度要远远快于BP 网络,而且,RBF 网络具有一定的泛化能力。名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 17 页 -17 参考文献1 魏海坤.神经网络结构设计的理论与方法M.国防工业出版社,北
34、京:2005,2.2 Martin T.Hagan(美)等著,戴葵等译.神经网络设计M.机械工业出版社,北京:2002,9.3 Simon Haykin 著,叶世伟,史忠植译.神经网络原理M.机械工业出版社,北京:2004,1.4 葛哲学,孙志强.神经网络理论与MATLAB R2007 实现M.电子工业出版社,北京:2007,9.5 高隽.人工神经网络原理及仿真实例M.机械工业出版社.北京:2003,8.6 周开利.神经网络模型及其matlab仿真程序设计.7 韩力群.人工神经网络教程M.北京邮电大学出版社.北京:2006,12.名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 17 页 -