BP神经网络建立2-2-1的网络层来逼近一个二元函数f(x,y)=0.1*x^2-0.7*x*y
我自己写了一个代码,有没大神可以帮我看看代码哪里有问题,运行后,很久都没出来结果w11=rand(1,2);w12=rand(1,2);w21=rand(1,2);x10...
我自己写了一个代码,有没大神可以帮我看看代码哪里有问题,运行后,很久都没出来结果
w11=rand(1,2);
w12=rand(1,2);
w21=rand(1,2);
x10=rand(1,150);
x20=rand(1,150);
x11=x10(1:1:100);
x21=x20(1:1:100);
x11=x11*100;
x21=x21*100;
Actual=0.1*x11.^2-0.7*x11.*x21;
Error=0;
count=0;
while( count==0 || (Error/100)>0.001 )
Error=0;
for loop=1:100
hide1=w11(1,1)*x11(1,loop)+w12(1,1)*x21(1,loop);
hide2=w11(1,2)*x11(1,loop)+w12(1,2)*x21(1,loop);
Output1=( exp( -1*hide1 )+1 )^(-1);% the output of hiden node 1
Output2=( exp( -1*hide2 )+1 )^(-1);% 2
Input1=Output1*w21(1,1);
Input2=Output2*w21(1,2);
Output3=( 1+exp( -1*( Input1+Input2)) )^(-1);
error=Actual(1,loop)-Output3;
Error=Error+0.5*error^2;
delta=Output3*(1-Output3)*error;
w21(1,1)=w21(1,1)+0.1*delta*Output1;
w21(1,2)=w21(1,2)+0.1*delta*Output2;
w11(1,1)=w11(1,1)+0.1*Output1*(1-Output1)*delta*(w21(1,1)+w21(1,2))*x11(1,loop);
w11(1,2)=w11(1,2)+0.1*Output2*(1-Output2)*delta*(w21(1,1)+w21(1,2))*x11(1,loop);
w12(1,1)=w12(1,1)+0.1*Output1*(1-Output1)*delta*(w21(1,1)+w21(1,2))*x21(1,loop);
w12(1,2)=w12(1,2)+0.1*Output2*(1-Output2)*delta*(w21(1,1)+w21(1,2))*x21(1,loop);
end
count=count+1;
end
Error; 展开
w11=rand(1,2);
w12=rand(1,2);
w21=rand(1,2);
x10=rand(1,150);
x20=rand(1,150);
x11=x10(1:1:100);
x21=x20(1:1:100);
x11=x11*100;
x21=x21*100;
Actual=0.1*x11.^2-0.7*x11.*x21;
Error=0;
count=0;
while( count==0 || (Error/100)>0.001 )
Error=0;
for loop=1:100
hide1=w11(1,1)*x11(1,loop)+w12(1,1)*x21(1,loop);
hide2=w11(1,2)*x11(1,loop)+w12(1,2)*x21(1,loop);
Output1=( exp( -1*hide1 )+1 )^(-1);% the output of hiden node 1
Output2=( exp( -1*hide2 )+1 )^(-1);% 2
Input1=Output1*w21(1,1);
Input2=Output2*w21(1,2);
Output3=( 1+exp( -1*( Input1+Input2)) )^(-1);
error=Actual(1,loop)-Output3;
Error=Error+0.5*error^2;
delta=Output3*(1-Output3)*error;
w21(1,1)=w21(1,1)+0.1*delta*Output1;
w21(1,2)=w21(1,2)+0.1*delta*Output2;
w11(1,1)=w11(1,1)+0.1*Output1*(1-Output1)*delta*(w21(1,1)+w21(1,2))*x11(1,loop);
w11(1,2)=w11(1,2)+0.1*Output2*(1-Output2)*delta*(w21(1,1)+w21(1,2))*x11(1,loop);
w12(1,1)=w12(1,1)+0.1*Output1*(1-Output1)*delta*(w21(1,1)+w21(1,2))*x21(1,loop);
w12(1,2)=w12(1,2)+0.1*Output2*(1-Output2)*delta*(w21(1,1)+w21(1,2))*x21(1,loop);
end
count=count+1;
end
Error; 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询