您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 模式识别作业第三章2
第三章作业3.5已知两类训练样本为1:(000)',(100)',(101)',(110)'2:(001)',(011)',(010)',(111)'设0)'(-1,-2,-2,)1(W,用感知器算法求解判别函数,并绘出判别界面。解:matlab程序如下:clear%感知器算法求解判别函数x1=[000]';x2=[100]';x3=[101]';x4=[110]';x5=[001]';x6=[011]';x7=[010]';x8=[111]';%构成增广向量形式,并进行规范化处理x=[0111000-1;00010-1-1-1;0010-1-10-1;1111-1-1-1-1];plot3(x1(1),x1(2),x1(3),'ro',x2(1),x2(2),x2(3),'ro',x3(1),x3(2),x3(3),'ro',x4(1),x4(2),x4(3),'ro');holdon;plot3(x5(1),x5(2),x5(3),'rx',x6(1),x6(2),x6(3),'rx',x7(1),x7(2),x7(3),'rx',x8(1),x8(2),x8(3),'rx');gridon;w=[-1,-2,-2,0]';c=1;N=2000;fork=1:Nt=[];fori=1:8d=w'*x(:,i);ifd0w=w;t=[t1];elsew=w+c*x(:,i);t=[t-1];endendifi==8&t==ones(1,8)w=wsymsxyz=-w(1)/w(3)*x-w(2)/w(3)*y-1/w(3);ezmesh(x,y,z,[0.512]);axis([-0.5,1.5,-0.5,1.5,-0.5,1.5]);title('感知器算法')break;elseendend运行结果:w=3-2-31判别界面如下图所示:若有样本123[,,]'xxxx;其增广]1,,,[321xxxX;则判别函数可写成:1323')(321xxxXwXd若0)(Xd,则1x,否则2x3.6已知三类问题的训练样本为123:(-1-1)',(00)',:(11)'试用多类感知器算法求解判别函数。解:(方法一)增广向量形式:123:(-1-11)',(001)',:(111)'XXX任取初始权向量1;)'0,0,0()1()1()1(321c第一次迭代:0)'*1()1(111XWd0)'*1()1(122XWd0)'*1()1(133XWd11X,但1121dd且1131dd不成立三个权向量都需要修改:)'1,1,1(*)1()2(111XcWW)'1,1,1(*)1()2(122XcWW)'1,1,1(*)1()2(133XcWW第二次迭代:1)'*2()2(211XWd1)'*2()2(222XWd1)'*2()2(233XWd22X,但2212dd且2232dd不成立三个权向量都需要修改:)'0,1,1(*)2()3(211XcWW)'0,1,1(*)2()3(222XcWW)'2,1,1(*)2()3(233XcWW第三次迭代:2)'*3()3(311XWd2)'*3()3(322XWd0)'*3()3(333XWd22X,但3)3(13dd且3323dd不成立三个权向量都需要修改:)'0,1,1(*)3()4(311XcWW)'1,0,0(*)3()4(322XcWW)'1,2,2(*)3()4(333XcWW迭代到六、七、八次有权向量的解:)'1,1,1()6()7()8(1111)'0,0,0()6()7()8(2222)'2,2,2()6()7()8(3333判别函数:1)(211xxXd0)(2Xd222)(213xxXd(方法二)编写matlab程序如下:clear%多类感知器算法求解判别函数x1=[-1-1]';x2=[00]';x3=[11]';%增广向量形式x=[-101;-101;111];w1=[000]';w2=w1;w3=w1;N=100;c=1;fork=1:Nt=[000];fori=1:3d1=w1'*x(:,i);d2=w2'*x(:,i);d3=w3'*x(:,i);switchicase1ifd1d2&d1d3t(i)=1;elseifd1d2&d1=d3w1=w1+x(:,i);w2=w2;w3=w3-x(:,i);elseifd1d3&d1=d2w1=w1+x(:,i);w2=w2-x(:,i);w3=w3;elseifd1=d2&d1=d3w1=w1+x(:,i);w2=w2-x(:,i);w3=w3-x(:,i);endcase2ifd2d1&d2d3t(i)=1;elseifd2d1&d2=d3w1=w1;w2=w2+x(:,i);w3=w3-x(:,i);elseifd2d3&d2=d1w2=w2+x(:,i);w1=w1-x(:,i);w3=w3;elseifd2=d1&d2=d3w2=w2+x(:,i);w1=w1-x(:,i);w3=w3-x(:,i);endcase3ifd3d2&d3d1t(i)=1;elseifd3d2&d3=d1w3=w3+x(:,i);w2=w2;w1=w1-x(:,i);elseifd3d1&d3=d2w1=w1;w3=w3+x(:,i);w2=w2-x(:,i);elseifd3=d2&d3=d1w3=w3+x(:,i);w2=w2-x(:,i);w1=w1-x(:,i);endendendift==ones(1,3)w1,w2,w3break;elseendend运行结果:w1=-1-1-1w2=000w3=22-2故可得判别函数:1)(211xxXd0)(2Xd222)(213xxXd3.7用LMSE算法求解习题3.5中两类模式的判别函数,并绘出判别界面。解:编写matlab程序如下:clear%LMSE算法求解判别函数x1=[000]';x2=[100]';x3=[101]';x4=[110]';x5=[001]';x6=[011]';x7=[010]';x8=[111]';%规范化增广样本矩阵x=[0001;1001;1011;1101;00-1-1;0-1-1-1;0-10-1;-1-1-1-1];plot3(x1(1),x1(2),x1(3),'ro',x2(1),x2(2),x2(3),'ro',x3(1),x3(2),x3(3),'ro',x4(1),x4(2),x4(3),'ro');holdon;plot3(x5(1),x5(2),x5(3),'rx',x6(1),x6(2),x6(3),'rx',x7(1),x7(2),x7(3),'rx',x8(1),x8(2),x8(3),'rx');gridon;%伪逆矩阵X=inv(x'*x)*x';%x的伪逆矩阵B=ones(8,1);z=10*ones(8,1);t=[z];fori=2:1000W=X*B;e=x*W-B;t=[te];j=i-1;%-------------------------%这里存在问题,有待解决.但不影响本题a=e0;b=e0;ifa==0W',B',e',ibreak;elseifsum(b,1)==8disp('线性不可分模式')brek;elseB=B+(e+abs(e));End%-------------------------symsxyz=-W(1)/W(3)*x-W(2)/W(3)*y-W(4)/W(3);ezmesh(x,y,z,[0.512]);axis([-0.5,1.5,-0.5,1.5,-0.5,1.5]);title('LMSE算法·¨')运行结果:W=2.0000-2.0000-2.00001.0000B=1.00003.00001.00001.00001.00003.00001.00001.0000e=1.0e-015*-0.22200-0.2220-0.2220-0.22200-0.2220-0.2220i=533.8已知两类模式12:(01)',(0-1)':(10)',(-10)'用LMSE算法检验模式样本的线性可分性。解:写出规范化增广样本矩阵:1]-01;1-01;-11-1;01[0X求伪逆矩阵:#10022(')'1/422001111XXXX取(1)[1111]'B,1c#(1)(1)[0000]'WXB(1)(1)(1)-1-1-1-1eXWB(1)e全部分量为负,无解,停止迭代。为线性不可分模式。
本文标题:模式识别作业第三章2
链接地址:https://www.777doc.com/doc-7159240 .html