例1 采用动量梯度下降算法训练 BP 网络_第1页
例1 采用动量梯度下降算法训练 BP 网络_第2页
例1 采用动量梯度下降算法训练 BP 网络_第3页
例1 采用动量梯度下降算法训练 BP 网络_第4页
例1 采用动量梯度下降算法训练 BP 网络_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、例1采用动量梯度下降算法训练BP网络。训练样本定义如下:输入矢量为p =-1 -2 3 1-1 1 5 -3目标矢量为t = -1 -1 1 1解:本例的MATLAB程序如下:close allclearecho onclc% NEWFF生成一个新的前向神经网络% TRAIN对BP神经网络进行训练% SIM对BP神经网络进行仿真pause%敲任意键开始clc% 定义训练样本% P为输入矢量P=-1, -2,3,1;-1,1,5, -3;% T为目标矢量T=-1, -1, 1, 1;pause;clc%创建一个新的前向神经网络net二newff(minmax(P),3,1,tansig,pure

2、lin,traingdm)%当前输入层权值和阈值inputWeights二net.IW1,1inputbias二net.b1%当前网络层权值和阈值layerWeights二net.LW2,1layerbias二net.b2pauseclc%设置训练参数net.trainParam.show = 50;net.trainParam.lr = 0.05;net.trainParam.mc = 0.9;net.trainParam.epochs = 1000;net.trainParam.goal = 1e-3;pauseclc% 调用TRAINGDM算法训练BP网络net,tr=train(net

3、,P,T);pauseclc%对BP网络进行仿真A = sim(net,P)%计算仿真误差E = T - AMSE=mse(E)pauseclcecho off例2采用贝叶斯正则化算法提高BP网络的推广能力。在本例中,我们采用两 种训练方法,即L-M优化算法(trainlm)和贝叶斯正则化算法(trainbr), 用以训练BP网络,使其能够拟合某一附加有白噪声的正弦样本数据。其中,样 本数据可以采用如下MATLAB语句生成:输入矢量:P = -1:0.05:1;目标矢量:randn(seed,78341223);T = sin(2*pi*P)+0.1*randn(size(P);解:本例的MA

4、TLAB程序如下:close allclearecho onclc% NEWFF生成一个新的前向神经网络% TRAIN对BP神经网络进行训练% SIM对BP神经网络进行仿真pause%敲任意键开始clc%定义训练样本矢量% P为输入矢量P = -1:0.05:1;% T为目标矢量randn(seed,78341223); T = sin(2*pi*P)+0.1*randn(size(P);%绘制样本数据点plot(P,T,+);echo offhold on;plot(P,sin(2*pi*P),:);%绘制不含噪声的正弦曲线echo onclcpauseclc%创建一个新的前向神经网络net

5、二newff(minmax(P),20,1,tansig,purelin);pauseclcecho offclcdisp(1. L-M优化算法TRAINLM); disp(2.贝叶斯正则化算法 TRAINBR);choice二input(请选择训练算法(1,2):);figure(gcf);if(choice=1)echo onclc%采用L-M优化算法TRAINLMnet.trainFcn=trainlm;pauseclc%设置训练参数net.trainParam.epochs = 500;net.trainParam.goal = 1e-6;net二init(net);%重新初始化pau

6、seclcelseif(choice=2)echo onclc%采用贝叶斯正则化算法TRAINBRnet.trainFcn=trainbr;pauseclc% 设置训练参数net.trainParam.epochs = 500;randn(seed,192736547);net = init(net);% 重新初始化pauseclcend%调用相应算法训练BP网络net,tr=train(net,P,T);pauseclc%对BP网络进行仿真A = sim(net,P);%计算仿真误差E = T - A;MSE=mse(E)pauseclc%绘制匹配结果曲线 close all;plot(P,

7、A,P,T,+,P,sin(2*pi*P),:);pause;clcecho off 通过采用两种不同的训练算法,我们可以得到如图1和图2所示的两种拟合结 果。图中的实线表示拟合曲线,虚线代表不含白噪声的正弦曲线, + ”点为含 有白噪声的正弦样本数据点。显然,经trainlm函数训练后的神经网络对样本 数据点实现了 “过度匹配”,而经trainbr函数训练的神经网络对噪声不敏感, 具有较好的推广能力。-10 0.Z 0-4 aw 】一1 -妙芯=耐#一(14-口念 o SN I|b4 。.忌值 得指出的是,在利用trainbr函数训练BP网络时,若训练结果收敛,通常 会给出提示信息“ Max

8、imum MU reached”。此外,用户还可以根据SSE和SSW 的大小变化情况来判断训练是否收敛:当SSE和SSW的值在经过若干步迭代后 处于恒值时,则通常说明网络训练收敛,此时可以停止训练。观察trainbr函 数训练BP网络的误差变化曲线,可见,当训练迭代至320步时,网络训练收敛, 此时SSE和SSW均为恒值,当前有效网络的参数(有效权值和阈值)个数为 11.7973。例3采用“提前停止”方法提高BP网络的推广能力。对于和例2相同的问题, 在本例中我们将采用训练函数traingdx和“提前停止”相结合的方法来训练 BP网络,以提高BP网络的推广能力。解:在利用“提前停止”方法时,首

9、先应分别定义训练样本、验证样本或测试样 本,其中,验证样本是必不可少的。在本例中,我们只定义并使用验证样本,即 有 验证样本输入矢量:val.P = -0.975:.05:0.975 验证样本目标矢量:val.T = sin(2*pi*val.P)+0.1*randn(size(val.P) 值得注意的是,尽管“提前停止”方法可以和任何一种BP网络训练函数一起使 用,但是不适合同训练速度过快的算法联合使用,比如trainlm函数,所以本 例中我们采用训练速度相对较慢的变学习速率算法traingdx函数作为训练函 数。本例的MATLAB程序如下: close all clear echo on

10、clc % NEWFF生成一个新的前向神经网络 % TRAIN对BP神经网络进行训练 % SIM对BP神经网络进行仿真 pause %敲任意键开始 clc % 定义训练样本矢量 % P为输入矢量 P = -1:0.05:1; % T为目标矢量 randn(seed,78341223); T = sin(2*pi*P)+0.1*randn(size(P); %绘制训练样本数据点 plot(P,T,+); echo off hold on; plot(P,sin(2*pi*P),:);%绘制不含噪声的正弦曲线echo on clc pause clc % 定义验证样本 val.P = -0.975

11、:0.05:0.975;% 验证样本的输入矢量val.T = sin(2*pi*val.P)+0.1*randn(size(val.P);% 验证样本的目标矢量 pause clc %创建一个新的前向神经网络 net二newff(minmax(P),5,1,tansig,purelin,traingdx);pauseclc%设置训练参数net.trainParam.epochs = 500;net = init(net);pauseclc%训练BP网络net,tr=train(net,P,T,val);pauseclc%对BP网络进行仿真A = sim(net,P);%计算仿真误差E = T

12、- A;MSE=mse(E)pauseclc%绘制仿真拟合结果曲线close all;plot(P,A,P,T,+,P,sin(2*pi*P),:);pause;clcecho off下面给出了网络的某次训练结果,可见,当训练至第136步时,训练提前停止, 此时的网络误差为0.0102565。给出了训练后的仿真数据拟合曲线,效果是相当 满意的。net,tr=train(net,P,T,val);TRAINGDX, Epoch 0/500, MSE 0.504647/0, Gradient 2.1201/1e-006TRAINGDX,Epoch25/500,MSE0.163593/0,Gradient0.384793/1e-006TRAINGDX,Epoch50/500,MSE0.130259/0,Gradient0.158209/1e-006TRAINGDX,Epoch75/500,MSE0.086869/0,Gradient0.0883479/1e-006TRAINGDX,Epoch100/500,MSE0.0492511/0,Gradient0.

温馨提示

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

评论

0/150

提交评论