% 苹果-橘子分类
%清屏,清除工作空间
clear,clc
% u1 为苹果,u2 为橘子
u1 = [0,1]';
u2 = [1,0]';
%输入苹果 u1 时,输出 out_u1 = -1
%输入橘子 u1 时,输出 out_u2 = 1
K = [[u1;-1],[u2;1]];
%输入节点
Input = K(1:2,:);
%输出节点
out = [-1,1];
%权值初始化
w = zeros(2,1);
%最大迭代次数
N = 100;
%均方误差上限
E = 10^-4;
%学习步长
sigma = 0.25;
%初始化迭代次数变量
n = 1;
%初始化误差
err = 1;
while(err > E && n < N)
for i = 1 : 2
y(i) = w' * Input(:,i);%实际输出
err = out(i) - y(i);%误差
delta_w = 2 * sigma * err * Input(:,i);%权值w增量
w = w + delta_w %权值更新
n = n + 1;%迭代次数变量更新
end
end
w_star = w;
%清屏,清除工作空间
clear,clc
% u1 为苹果,u2 为橘子
u1 = [0,1]';
u2 = [1,0]';
%输入苹果 u1 时,输出 out_u1 = -1
%输入橘子 u1 时,输出 out_u2 = 1
K = [[u1;-1],[u2;1]];
%输入节点
Input = K(1:2,:);
%输出节点
out = [-1,1];
%权值初始化
w = zeros(2,1);
%最大迭代次数
N = 100;
%均方误差上限
E = 10^-4;
%学习步长
sigma = 0.25;
%初始化迭代次数变量
n = 1;
%初始化误差
err = 1;
while(err > E && n < N)
for i = 1 : 2
y(i) = w' * Input(:,i);%实际输出
err = out(i) - y(i);%误差
delta_w = 2 * sigma * err * Input(:,i);%权值w增量
w = w + delta_w %权值更新
n = n + 1;%迭代次数变量更新
end
end
w_star = w;