神经网络-感知基“与运算”代码

close all;
clear;
W = [rand(1) rand(1)];b=0;%随机设置初始权值与阈值
p = [0 0;0 1;1 0;1 1];%p,t为给定的训练样本,p为输入,t为对应的输出
t = [0;0;0;1];
a1=[0,0,0,0];i=1;
%训练过程传递函数为阶跃函数
while 1>0
    a = hardlim(p(i,1:2)*W'+b);
    e = t(i,1)-a;
    W = W+e*p(i,1:2);
    b = b+e;
    a1 = hardlim(p(1:4,1:2)*W'+b);
    if all(a1==t)
        break;
    elseif i < 4
        i = i+1;
    else
        i = 1;
    end
end
%网络输出
W
a1 = hardlim(p(1:4,1:2)*W'+b)

 

你可能感兴趣的:(神经网)