?? bp7.m
字號:
% bp7;例4.7
%
P=[-3,2];T=[0.4,0.8];
max_epoch=100; %賦最大訓練次數
err1=[];xx=[];yy=[]; %定義矩陣
lr=4;
W1=-4*rand(1); %賦權值和偏差的初值
b1=-4*rand(1);
x1=W1;y1=b1;
for i=1:max_epoch
A1 = logsig(W1*P+b1*ones(1,2)); %計算輸出
E = T-A1; %求誤差
D1 = A1.*(1-A1).*E; %矩陣對應元素相乘
dW1 = D1*P'*lr; %求權值增量
db1 = D1*ones(2,1)*lr; %求偏差增量
newx = W1(1,1) + dW1(1,1); %新的權值
W1(1,1) = newx; xx =[xx newx];
newy = b1(1) + db1(1); %新的偏差
b1(1) = newy; yy =[yy newy];
SSE = sumsqr(E); %求誤差平方和
err1=[err1 SSE];
if (SSE<1e-3)
break;
end
end
Wrange=-4:0.2:4;Brange=-4:0.2:4; %W值的行向量、B值的行向量
ES=errsurf(P,T,Wrange,Brange,'logsig'); %求單神經元的誤差平面(只用在單神經元中)
[C,h] =contour(Wrange,Brange,ES); %作等高線圖,ES為高
%返回等高線矩陣C,列向量h是線或對象的句柄,
%一條線一個句柄,這些被用作CLABEL的輸入, %每個對象包含每個等高線的高度
clabel(C,h) %標上高度值
colormap cool %背景的顏色cool
axis('equal')
hold on
%plot(w1,b1,'r*')
plot(x1,y1,'r+')
plot([x1 xx],[y1 yy]) %作矩陣變化曲線
hold off
figure(2)
plot(err1) %作誤差變化曲線
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -