⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex22.m

📁 竞争网络的matlab程序
💻 M
字号:
% p41wf4.m
% 赋值、初始化
P=[1 -1.2];
T=[0.5 1];
[R,Q]=size(P),
[S,Q]=size(T),
%[S2,Q]=size(T2),
%画误差曲面
[W,B]=rands(S,R);
Wrange=-2:0.2:2;Brange=-2:0.2:2;
ES=errsurf(P,T,Wrange,Brange,'purelin');
mesh(ES,[60 30]);
title('Error Surface Graph')
pause
% 设计网络权值并画出投影图
[DW,DB]=solvelin(P,T);  %求出理想网络全值
contour(ES,25,Wrange,Brange);  %画误差的等高线
axis('equal')
hold on
plot(DW,DB,'oy');
xlabel('W')
ylabel('B')
pause
%选择学习速率
LR=menu('Use a learning rate of:',...','1.7*maxlinlr',...
    '2.5*maxlinlr');
disp('')
%训练权值
disp_freq=1;
max_epoch=30;
err_goal=0.001;      % 期望误差
if LR==1
 lr=1.74*maxlinlr(P,1);  % 最佳学习速率
else
    lr=2.5*maxlinlr(P,1);  % 最佳学习速率
end
flop(0)
pausetime=1;  %设置暂停方式为秒
A=purelin(W*B,B)
E=T-A;
SSE=sumsqr(E);  %误差记录
errors=[SEE];
for epoch=1:max_epoch
    if SSE<err_goal,epch=epoch-1;break,end
    LW=W;LB=B;
    [DW,DB]=learnwh(P,E,le);
    W=W+dW;B=B+dB;
    A=purelin(W*B,B); E=T-A;  SSE=sumsqr(E);  %学习后的再次表达式
    errors=[erros,SEE];
%训练过程中的显示
if rem(epoch,disp_freq)==0
    temp=flops;
    plot([LW, W],[LB,B],'r-');
    drawnow
    flops(temp);
    pause2(pausetime)
end
end
%显示误差记录
A=purelin(W*B,B); 
ploterr(errors)
end
   
%TP=[disp_freq max_epoch err_goal lr];
%[W,B,epochs,error]=trainwh[W,B,P,T,TP]  % 进行线形网络权值训练
%V=[-2 2 -2 2];
%plotpv(P,T,V);
%hold on
%plotpc(W,B)
%hold off
%end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -