% 这是《人工神经网络导论》3.2.1离散单输出感知器训练算
% 法对于0到9的奇偶性识别的初步简单实现
clc
clear all
close all
%%算法3-1 离散单输出感知器训练算法
%%初始化权向量W
%%重复进行下列过程,直到训练完成
% 对每一个样本(X,Y),执行:
% 计算O=F(XW);
% 如果O不正确,则
% (i):o=0时,取W=W+X;
% (ii):o=1时,取W=W-X;
% end;
% %}
%%根据此时W进行误差判断,若小于规定限度则结束训练。
W=rand(4,1);
X=[0 0 0 0;0 0 0 1;0 0 1 0;0 0 1 1;0 1 0 0;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 0;1 0 0 1];
Y=[0;1;0;1;0;1;0;1;0;1];
[row_x,col_x]=size(X);
O=zeros(row_x,1);
ok=0;
while ok==0
for k=1:row_x
net=X(k,:)*W;
if net>10
O(k)=1;
else O(k)=0;
end
if O(k)~=Y(k)
if O(k)==0
W=W+X(k,:)';
else W=W-X(k,:)';
end
ok=0;
break;
%这里的break是挺重要的,因为一旦改动W就必须重新计算O,否则可能导致O前面的出错,后面的正确。
else ok=1;
end
end
end
W
X
Y
待补充。
离散单输出感知器训练算法——《人工神经网络导论》
最新推荐文章于 2022-10-17 15:22:36 发布