《2022年神经网络与matlab仿真 .pdf》由会员分享,可在线阅读,更多相关《2022年神经网络与matlab仿真 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、神经网络与matlab 仿真随着技术的发展, 人工神经网络在各个方面应用越来越广泛,由于 matlab 仿真技术对神经网络的建模起着十分重要的作用,因此,通过讨论神经网络中基础的一类 线性神经网络的 matlab 仿真,对神经网络的matlab仿真做一个基本的了解。1面向 matlab工具箱的神经网络设计人工神经网络可通过硬件或软件方式来实现。硬件方式即神经计算机。目前较常用的还是软件实现方式。已有许多公司和研究单位设计了通用的ANN 程序以方便人们使用, matlab提供的神经网络工具箱就是其重要代表。神经网络工具箱是在matlab环境下所开发出来的许多工具箱之一,它是以人工神经网络理论为基
2、础,用matlab 语言构造出典型神经网络的激活函数,如S型、线性、竞争层、饱和线性等激活函数,使设计者对所选定网络输出的计算变成对激活函数的调用。 另外,根据各种典型的修正网络权值的规定,加上网络的训练过程,用matlab 编写出各种网络设计与训练所涉及的公式运算、矩阵操作和方程求解等大部分子程序, 网络的设计者可以根据自己的需要进行调用,免除了自己编写复杂而庞大的算法程序的困扰,集中精力去思考需要解决的问题,提高工作效率和解题质量。目前 matlab几乎完整地概括了神经网络的基本成果,对于各种网络模型, 神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。同时,matlab 的其他工
3、具箱也为我们在神经网络工具箱的基础上开发研究模糊与神经网络的结合、神经网络的样条算法等问题提供了辅助手段。2 线性神经网络线性神经网络是最简单的一种神经元网络,它可以由一个或多个线性神经元构成。 50 年代末期提出的自适应线性元件是线性神经网络最早的典型代表。其每个神经元的传递函数为线性函数,其输出可以取任意值。 线性神经网络可以采用 Widrow-Hoff 学习规则,也称为LMS 算法来调整网络的权值和阈值。2.1 线性神经网络模型线性神经元模型的神经元有一个线性传递函数purelin,其输入输出之间是简名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
4、 - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 单的比例关系,一次对单个线性神经元,由图1 可得, a=purelin(p+b).因此,线性神经网络允许输出可以取任意值,而不仅仅是0 或 1。线性神经元模型线性神经元传递函数具有 R 个输入的单层( S 个神经元)线性神经网络模型。单层多输入的线性神经网络模型2.2 线性神经网络的学习算法Widrow-Hoff 学习规则, 又称为最小均方误差LMS(Least Mean Square Error )学习算法,由 Widrow-Hoff 提出,属于有导师学习算法。LM
5、S 学习规则定义如下:221111()( )( )mmkkmseekd ky kmm其目标是通过调节权值,使mse 从误差空间的某点开始,沿着mse的斜面向下滑行,最终使 mse达到最小值。LMS 算法的实现有五个步骤:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 第一步:初始化。给各个连接赋一个较小的随机值;第二步:输入一个样本,计算连接权值的调整量:2( )( )2 ( )ijijeke ke k2( )( )2 ( )e
6、ke ke kbb1( ) ( )( )Rijiijijie ked kp kb第三步:调整连接权值:根据负梯度下降的原则,网络权值和阈值修正公式如下(1)( )2( )( )(1)( )2( )Tkke k pkb kb ke k式中 为学习率,当其取较大值时,可以加快网络的训练速度,但是如果其值太大,会导致网络稳定性的降低和训练误差的增加。所以,为了保证网络进行稳定的训练,学习率的值必须选择一个合适的值;第四步:计算均方误差:221111( )( )( )mmkkmesekd ky kmm第五步:判断误差是否为零或者是否达到预选设定的要求。如果是,则结束算法,否则输入下一个样本,返回第二步
7、进入下一轮求解过程。3 线性神经网络的 matlab 实现函数名称功能newlind 设计一个线性层newlin 构造一个线性层purelin 线性传递函数dotprod 权值点积函数netsum 网络输入求和函数initlay 某层的初始化函数initwb 某层的权值和阈值的初始化函数initzero 零权值阈值初始化函数init 一个网络的初始化函数mae 求平均绝对误差性能函数learnwh Widrow-hoff 的学习规则名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3
8、页,共 7 页 - - - - - - - - - adaptwb 网络的权值阈值的自适应函数adapt 神经网络的自适应函数trainwb 网络的权值和阈值训练函数train 神经网络训练函数maxlinlr 线性层的最大学习率errsurf 计算误差性能曲面sim 仿真一个神经网络下面给出一个线性神经网络的设计要求,并尝试用 matlab 提供的神经网络工具函数实现。设计一个简单的单层线性神经元,其输入和目标分别为P=+1.0 -1.2,T=+0.5 +1.0。权值和阈值的范围分别为 -11。试用 matlab 实现其从输入到输出的变化关系。由例中的条件编写matlab源程序如下:%dli
9、n1.m %NEWLIND %SIM clf; figure(gcf); P=1.0 -1.2; T=0.5 1.0; w_range=-1:0.1:1; b_range=-1:0.2:1; ES=errsurf(P,T,w_range,b_range,purelin); plotes(w_range,b_range,ES); ax=findobj(gcf.type,axes); pause 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - -
10、- - - net=neslind(P,T); format compact; A=0;E=0;SSE=0; A=sim(net,P) E=T-A SSE=sumsqr(E) plotes(w_range,b_range,ES); plotep(net.IW1.1,net.b1,SSE); p=-1.2; a=0; a=sim(net,p) % 进行网络验证disp(End of dline1) 执行程序,可得到线性网络求解后的误差曲面图对此线性网络进行更多的训练以求最优解,则matlab 程序更改如下。% dlin2.m % NEWLIN % TRAIN % SIM clf; figure(
11、gcf); P=1.0 -1.2; T=0.5 1.0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - w_range=-1:0.2:1; b_range=-1:0.2:1; ES=errsurf(P,T,w_range,b_range,purelin); plotes(w_range,b_range,ES); pause maxlr=0.40*maxlinlr(P,bias); net=newlin(-2 2.1.0,max
12、lr); net.trainParam.goal=.001; subplot(1,2,2); h=text(sum(get(gca,xlim)*0.5,sum(get(gca,ylim)*0.5*Click On ME*); set(h,horizontal,center,fontweight,bold); net.IW1.1net.b1=ginput(1); delete(h); net,tr=train (net,P,T); format conpact; A=0;E=0;SSE=0; A=sim(net,P) E=T-A SSE=sumsqr(E) plotes(w_range,b_ra
13、nge,ES); plotep(net.IW1.1,net.b1,SSE); pause plotperf(tr,net.trainParam.goal); p=-1.2; a=sim(net,P) disp(End of dlin2) 运行程序,得到的误差曲面及误差等高线图。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 参考文献1 周开利,康耀红 . 神经网络模型及其MATLAB仿真程序设计 M. 北京:清华大学出版社, 2005:90-95. 2 闵惜琳,刘国华 . 用 MATLAB 神经网络工具箱开发BP 网络应用 J. 计算机应用, 2001,21(8) :163-164. 3 刘建斌. 人工神经网络在电磁建模中的应用D. 上海交通大学, 2003:10-11. 4 张德丰. MATLAB 神经网络应用设计 M. 机械工业出版社, 2009:7-12. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -
限制150内