www.pudn.com > L-M算法(BP的一种改进算法)应用实例.zip > bpnnet_163.m


% Title : L-M算法(BP改进算法,是建立在一种优化方法基础上的训练算法)应用实例 
% Descript : 除了动量法(基于梯度下降的训练算法)外,学习率自适应调整策略是BP算法改进的另一种途径,它利用Levenberg-Marquardt优化方法,从而使得学习时间更短。其缺点是,对于复杂的问题,该方法需要很大的存储空间。 
clf reset 
figure(gcf) 
%setfsize(300,300); 
echo on 
clc 
 
% INITFF -对前向网络进行初始化 
% SIMUFF -对前向网络进行仿真 
% TRAINLN -采用LM算法前向网络进行训练 
pause   
clc 
% P 为输入向量 
P=-1:.1:1; 
% T 为目标向量 
T = [-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609... 
     0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 0.0988... 
     0.3072 0.3960 0.3449 0.1816 -0.0312 -0.2189 -0.3201]; 
pause  
clc 
 
plot(P,T,'+'); 
title('训练向量'); 
xlabel('输入向量 P'); 
ylabel('目标向量 T'); 
 
pause 
clc 
 
S1=5; 
[w1,b1,w2,b2]=initff(P,S1,'tansig',T,'purelin'); 
echo off 
k=pickic; 
if k==2 
    w1=[3.5000;3.5000;3.5000;3.5000;3.5000]; 
    b1=[-2.8562;1.0774;-0.5880;1.4083;2.8722]; 
    w2=[0.2622 -0.2375 -0.4525 0.2361 -0.1718]; 
    b2=[0.1326]; 
end 
echo on 
df=10;   %学习过程显示频率 
me=8000; %最大训练步数 
eg=0.0002  %误差指标 
tp=[df me eg]; 
[w1,b1,w2,b2,ep,tr]=trainlm(w1,b1,'tansig',w2,b2,'purelin',P,T,tp); 
pause 
clc 
ploterr(tr,eg); 
pause 
clc 
p=0.5; 
a=simuff(p,w1,b1,'tansig',w2,b2,'purelin') 
echo off