搜索
您的当前位置:首页正文

计算智能 感知器分类

来源:哗拓教育
2012-10-15 计算智能作业 ZY1203228 于驷男

计算智能作业一 感知器分类

ZY1203228 于驷男

题目:

设有两个模式集合Ω1={(0,1),(0,2),(1,1)},Ω2={(2,0),(3,0),(3,1)},试用感知器算法求出这两个模式类的分类判别函数g(x),试问当权值向量w取不同初值时,对训练结果有影响否,为什么?

算法:

感知器权值调整的学习算法

𝑊𝑘 𝑛0+1 =𝑊𝑘 𝑛0 +2𝜂 𝑡𝑞−𝑦𝑟 𝑛0 ∗𝑥𝑘 𝑛0

实现方法:

设𝑤1𝑥1+𝑤2𝑥2+𝑏=0,𝑥1和𝑥2为样本点的坐标;𝑤1和𝑤2为权值,由计算机随机产生;𝑡𝑞为期望输出,取 1,1,1,−1−,1,−1 𝑇;𝑦r为实际输出;学习率为𝑞。

实验结果:

随机产生了三组w值,用蓝线表示迭代过程,红线表示最终分类结果。

g x =-3.53𝑥1+3.68𝑥2-5.20

2012-10-15 计算智能作业 ZY1203228 于驷男

g x =-5.65𝑥1-2.01𝑥2+8.05

g x =-2.48𝑥1-7.28𝑥2-1.37

实验代码:

%感知器先行分类问题程序代码 x=[0,0,1,2,3,3]; y=[1,2,1,0,0,1]; w=10*(2*rand(1,3)-1);

b=w(3); %w1,w2,b取-10到10之间的随机数 q=1;%学习率设为1

t=[1,1,1,-1,-1,-1];%期待输出,1为一类,-1为另一类 symsp; symsl;

for j=1:3%画出一个样本中三个待分类的点 plot(x(j),y(j),'sb');hold on; end

for j=4:6%画出另一个样本中三个待分类的点 plot(x(j),y(j),'ok');hold on;

2012-10-15 计算智能作业 ZY1203228 于驷男

end

while (p~=w(1)||l~=w(2)) p=w(1);l=w(2); for i=1:6

z=t(i)*(x(i)*w(1)+y(i)*w(2)+b); if z<=0

w(1)=w(1)+q*x(i)*t(i);%¸感知器学习算法 w(2)=w(2)+q*y(i)*t(i); b=b+t(i); end

title('感知器线性分类结果'); axis([0,5,-1,5]); h=[-1:0.1:5]; g=[0:0.1:5]; k=-w(1)/w(2); m=-b/w(2); h=k*g+m;

line(g,h); hold on;%将每一次迭代的直线都画出来 end end

plot(g,h,'r'); hold on;%将最终分类结果用红色表示

结论分析:

实验中权值由计算机随机生成,初始权值越接近最终分类的结果,则训练次数越少。权值的不同选择会影响最终分类的结果与训练所耗费的时间,但是不会影响结果的生成,也就是对于线性可分的问题,感知器学习算法是一定找到分类结果的。在实验中,改变学习率的值,做了如下比较:

增加学习率有提高学习效率,减少训练时间的作用。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top