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

📄 bp.m

📁 BP算法实现异或问题,采用S型函数的前向多层神经网络及其逆推学习算法
💻 M
字号:
    clear all
alpha=input('请输入训练步幅:');
flag=1;
x=[0,0;1,1;0,1;1,0];
x(:,3)=1;
med_w=rand(2,3)*10-5;
med_w(:,3)=1;
top_w=rand(1,3)*10-5;
top_w(1,3)=1;
med_deltw(2,3)=0;top_deltw=0;
eita=0.9;
while flag<=4
   for j=1:4
      for i=1:2
         m(j,i)=1/(1+exp(-1*med_w(i,:)*x(j,:)'));
      end
      m(j,3)=1;
      f=1/(1+exp(-1*m(j,:)*top_w'));
      if j<=2
         d=0.1;
      else
         d=0.9;
      end
      if (d-f)^2>0.0001
         flag=0;
         top_delt=2*(d-f)*f*(1-f);
         top_deltw=alpha*top_delt*m(j,:)+eita*top_deltw;
         top_w=top_w+top_deltw;
         for i=1:2
            med_deltw(i,:)=alpha*top_delt*top_w(1,i)*m(j,i)*(1-   
            m(j,i))*x(j,:)+eita*med_deltw(i,:);
         end
         med_w=med_w+med_deltw;
      else
         flag=flag+1;
      end
   end
end
disp('第一层权重系数为:');
med_w
disp('第二层权重系数为:');
top_w
num=1;
while num==1
disp('请输入样本:');
v=input('x=');
v(1,3)=1;
for i=1:2
g(1,i)=1/(1+exp(-1*v*med_w(i,:)'));
end
g(1,3)=1;
f=1/(1+exp(-1*g*top_w'));
disp('实际计算结果为:');
f
if abs(f-0.9)<0.5
   disp('输入样本属于1类');
else
   disp('输入样本属于0类');
end
num=input('继续输入样本请输入 1,退出请输入 2:');
end

⌨️ 快捷键说明

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