?? ebp4.m
字號:
%BP網絡實例4_用“提前停止”方法提高BP網絡推廣能力
%本例將用提前停止和訓練函數TRAINGDX相結合來避免“過度擬合”產生的誤差
close all
clear
clc
%使用的主要函數如下:
%NEWFF——生成一個新的前向神經網絡
%TRAIN——對BP神經網絡進行訓練
%SIM——對BP神經網絡進行仿真
disp('Press any key to start');
echo on
pause
clc
%定義輸入矢量P
P=[-1:.05:1];
%定義目標矢量T
randn('seed',78341223); %設置隨機數生成器
T=sin(2*pi*P)+.1*randn(size(P));
%繪制樣本數據點
plot(P,T,'+');
echo off
hold on
plot(P,sin(2*pi*P),':'); %繪制不含噪聲的正弦曲線以作對比
echo on
clc
pause
clc
%定義驗證樣本
val.P=[-.975:.05:.975]; %驗證樣本的輸入矢量
val.T=sin(2*pi*val.P)+.1*randn(size(val.P)); %驗證樣本的目標矢量
pause
clc
%創建一個新的前向神經網絡
net=newff(minmax(P),[5 1],{'tansig','purelin'},'traingdx');
pause
clc
%設置訓練參數
net.trainParam.epochs=500;
net=init(net);
pause
clc
%訓練BP網絡
[net,tr]=train(net,P,T,[],[],val);
pause
clc
%對BP網絡進行仿真
A=sim(net,P);
%計算仿真誤差
E=T-A;
MSE=mse(E)
pause
clc
%繪制仿真擬合的結果曲線
close all
plot(P,A,P,T,'+',P,sin(2*pi*P),':');
pause
clc
echo off
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -