three_class_problem.m
来自「1.感知器对于线型可分问题的收敛性证明 2.用感知器对线型可分得问题进行分类 」· M 代码 · 共 45 行
M
45 行
%--------------------------------------------------------%
% Problem 2:Three Class Problem %
%--------------------------------------------------------%
%------------------------figure 1------------------------
%感知器神经元的输入/目标向量
P=[1 0 3 2 2 1 -1 -2 -1;
1 2 1 -1 0 -2 2 1 1];
T=[ 0 0 0 0 0 0 1 1 1;
0 0 0 1 1 1 0 0 0];
%绘制感知器神经元的输入/目标向量
plotpv(P,T);
%建立一个感知器神经网络
net=newp([-1.5 1;-1.5 1],2);
%------------------------figure 2--------------------------
figure;
watchon;
cla;
plotpv(P,T);
linehandle=plotpc(net.IW{1},net.b{1});
%设A为学习速率
A=0.2
E=1;
k=E*A;
%设n为训练次数
n=0;
net=init(net);
linehandle=plotpc(net.IW{1},net.b{1});
%调整网络参数,直到平房和误差为0
while(mae(k))
[net,Y,k]=adapt(net,P,T);
%绘制分类线
linehandle=plotpc(net.IW{1},net.b{1},linehandle);
n=n+1;
drawnow;
end;
watchoff
%-------------------------result-------------------------%
% 结果是在学习率分别取0.2,0.5,0.8,1.0的情况下
% 感知器均在被训练6次之后的输出符合要求,平均绝对误差减为0%
%--------------------------------------------------------%
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?