?? ann5.m
字號:
Y=zeros(1,100);
X=zeros(1,100);
weight=zeros(1,10);
%w=randn(1,3);
w=[ 0.0970 -0.9097 0.0551 0.7673 0.8250 ];
v=[-3.0610 15.3118 -2.7813 0.9418 0.7692];
b=[-0.11 -0.21 -0.13 -0.1 -0.1];
%v=randn(1,3);
a=0.4;%學習速率
E=1;
j=1;
Emin=0.02;
p=0;
k=1:100;
xx=1:100;
dd=1./xx;
m=1;
sum=zeros(100);
n=0;
%while(j>Emin)
while(m>Emin)
m=0;
for x=1:100
y1=f(w(1)*x+b(1));
y2=f(w(2)*x+b(2));
y3=f(w(3)*x+b(3));
y4=f(w(4)*x+b(4));
y5=f(w(5)*x+b(5));
y=f(v(1)*y1+v(2)*y2+v(3)*y3+v(4)*y4+v(5)*y5);
d=1/x;
e=d-y;
j=abs(e);
sum(x)=j*j;%將100個訓練輸入對應得誤差平方和,使得其小于設定值結束訓練
m=m+sum(x);
w(1)=w(1)+a*e*y*(1-y)*v(1)*y1*(1-y1)*x;
w(2)=w(2)+a*e*y*(1-y)*v(2)*y2*(1-y2)*x;
w(3)=w(3)+a*e*y*(1-y)*v(3)*y3*(1-y3)*x;
w(4)=w(4)+a*e*y*(1-y)*v(4)*y4*(1-y4)*x;
w(5)=w(5)+a*e*y*(1-y)*v(5)*y5*(1-y5)*x;
v(1)=v(1)+a*e*y*(1-y)*y1;
v(2)=v(2)+a*e*y*(1-y)*y2;
v(3)=v(3)+a*e*y*(1-y)*y3;
v(4)=v(4)+a*e*y*(1-y)*y4;
v(5)=v(5)+a*e*y*(1-y)*y5;
weight(1)=w(1);
weight(2)=w(2);
weight(3)=w(3);
weight(4)=w(4);
weight(5)=w(5);
weight(6)=v(1);
weight(7)=v(2);
weight(8)=v(3);
weight(9)=v(4);
weight(10)=v(5);
end
n=n+1;
end
for x=1:100
%Y(x)=f(weight(4)*f(weight(1)*x+b(1))+weight(5)*f(weight(2)*x+b(2))+weight(6)*f(weight(3)*x+b(3)));
Y(x)=f(weight(6)*f(weight(1)*x+b(1))+weight(7)*f(weight(2)*x+b(2))+weight(8)*f(weight(3)*x+b(3))+weight(9)*f(weight(4)*x+b(4))+weight(10)*f(weight(5)*x+b(5)));
end
plot(k,Y,'r',k,dd,'b');
xlabel(n);
weight
%plot(k,Y,'y',k,X);%,k,dd);
%disp(p);
%weight =
% 0.1456 -0.1357 0.3422 -1.8141 2.6347 -1.2922
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -