当前位置:文档之家› 模式识别第三章-感知器算法

模式识别第三章-感知器算法

模式识别第三章
感知器算法
一.用感知器算法求下列模式分类的解向量w :
})0,1,1(,)1,0,1(,)0,0,1(,)0,0,0{(:1T T T T ω
})1,1,1(,)0,1,0(,)1,1,0(,)1,0,0{(:2T T T T ω
将属于2ω的训练样本乘以(-1),并写成增广向量的形式:
T x )1,0,0,0(1 =,T x )1,0,0,1(2=,T x )1,1,0,1(3=,T x )1,0,1,1(4 =
T x )1,1-,0,0(5-=,T x )1,1-,1-,0(6-=,T x )1,0,1-,0(7-=,T x )1,1-,1-,1-(8-= 第一轮迭代:取1=C ,T )0,0,0,0()1(=ω
因0)1,0,0,0)(0,0,0,0()1(1==T T x ω不大于0,故T x )1,0,0,0()1()2(1=+=ωω 因1)1,0,0,1)(1,0,0,0()2(2==T T x ω大于0,故T )1,0,0,0()2()3(==ωω 因1)1,1,0,1)(1,0,0,0()3(3==T T x ω大于0,故T )1,0,0,0()3()4(==ωω 因1)1,0,1,1)(1,0,0,0()4(4==T T x ω大于0,故T )1,0,0,0()4()5(==ωω 因1)1,1-,0,0)(1,0,0,0()5(5-=-=T T x ω不大于0,故T x )0,1-,0,0()5()6(5 =+=ωω 因1)1,1-,1-,0)(0,1-,0,0()6(6=-=T T x ω大于0,故T )0,1-,0,0()6()7(==ωω 因0)1,0,1-,0)(0,1-,0,0()7(7=-=T T x ω不大于0,故T x )1-,1-,1,0()7()8(7-=+=ωω 因3)1,1-,1-,1-)(1-,1-,1,0()8(8=--=T T x ω大于0,故T )1-,1-,1,0()8()9(-==ωω 第二轮迭代:
因1)1,0,0,0)(1-,1-,1,0()9(1-=-=T T x ω不大于0,故T x )0,1-,1,0()9()10(1-=+=ωω 因0)1,0,0,1)(0,1-,1-,0()10(2==T T x ω不大于0,故T x )1,1,1,1()10()11(2--=+=ωω 因1)1,1,0,1)(1,1,1,1()11(3=--=T T x ω大于0,故T )1,1,1,1()11()12(--==ωω 因1)1,0,1,1)(1,1,1,1()12(4=--=T T x ω大于0,故T
)1,1,1,1()12()13(--==ωω
因0)1,1-,0,0)(1,1,1,1()13(5=---=T T x ω不大于0,故T x )0,2,1,1()13()14(5--=+=ωω 因3)1,1-,1-,0)(0,2,1,1()14(6=---=T T x ω大于0,故T )0,2,1,1()14()15(--==ωω
因1)1,0,1-,0)(0,2,1,1()15(7=---=T T x ω大于0,故T )0,2-,1-,1()15()16(==ωω
因2)1,1-,1-,1-)(0,2-,1-,1()16(8=-=T T x ω大于0,故T )0,2-,1-,1()16()17(==ωω
第三轮迭代:
因0)1,0,0,0)(0,2-,1,1()17(1=-=T T x ω不大于0,故T x )1,2,1,1()17()18(1--=+=ωω 因2)1,0,0,1)(1,2-,1-,1()18(2==T T x ω大于0,故T )1,2,1,1()18()19(--==ωω
因0)1,1,0,1)(1,2,1,1()19(3=--=T T x ω不大于0,故T x )2,1,1,2()19()20(3--=+=ωω 因3)1,0,1,1)(2,1,1,2()20(4=--=T T x ω大于0,故T
)2,1,1,2()20()21(--==ωω
因1)1,1-,0,0)(2,1,1,2()21(5-=---=T T x ω不大于0,故T x )1,2,1,2()21()22(5--=+=ωω
因2)1,1-,1-,0)(1,2,1,2()22(6=---=T T x ω大于0,故T )1,2,1,2()22()23(--==ωω
因0)1,0,1-,0)(1,2,1,2()23(7=---=T T x ω不大于0,故T x )0,2-,2-,2()23()24(7=+=ωω 因2)1,1-,1-,1-)(0,2-,2-,2()24(8=-=T T x ω大于0,故T )0,2-,2-,2()24()25(==ωω 第四轮迭代:
因0)1,0,0,0)(0,2-,2,2()25(1=-=T T x ω不大于0,故T x )1,2,2,2()25()26(1--=+=ωω 因3)1,0,0,1)(1,2-,2-,2()26(2==T T x ω大于0,故T
)1,2,2,2()26()27(--==ωω
因1)1,1,0,1)(1,2,2,2()27(3=--=T T x ω大于0,故T )1,2,2,2()27()28(--==ωω 因1)1,0,1,1)(1,2,2,2()28(4=--=T T x ω大于0,故T )1,2,2,2()28()29(--==ωω
因1)1,1-,0,0)(1,2,2,2()29(5=---=T T x ω大于0,故T
)1,2,2,2()29()30(--==ωω
因3)1,1-,1-,0)(1,2,2,2()30(6=---=T T x ω大于0,故T )1,2,2,2()20()31(--==ωω
因1)1,0,1-,0)(1,2,2,2()31(7=---=T T x ω大于0,故T )1,2-,2-,2()31()32(==ωω 因大于0,故T
)1,2-,2-,2()32()33(==ωω
第五轮迭代:
因1)1,0,0,0)(1,2-,2,2()33(1=-=T T x ω大于0,故T )1,2,2,2()33()34(--==ωω
因3)1,0,0,1)(1,2-,2-,2()34(2==T T x ω大于0,故T
)1,2,2,2()34()35(--==ωω
因1)1,1,0,1)(1,2,2,2()35(3=--=T T x ω大于0,故T )1,2,2,2()35()36(--==ωω 因1)1,0,1,1)(1,2,2,2()36(4=--=T T x ω大于0,故T )1,2,2,2()36()37(--==ωω 因1)1,1-,0,0)(1,2,2,2()37(5=---=T T x ω大于0,故T )1,2,2,2()37()38(--==ωω
因3)1,1-,1-,0)(1,2,2,2()38(6=---=T T x ω大于0,故T )1,2,2,2()38()39(--==ωω 因1)1,0,1-,0)(1,2,2,2()39(7=---=T T x ω大于0,故T )1,2-,2-,2()39()40(==ωω 因1)1,1-,1-,1-)(1,2-,2-,2()40(8=-=T T x ω大于0,故T )1,2-,2-,2()40()41(==ωω 该轮迭代全部正确,因此解向量T
)1,2,2,2(--=ω,相应的判别函数为: 1222)(321+--=x x x x d
二.编写求解上述问题的感知器算法程序
1. 实验结果截图
2. 程序代码
%程序功能:实现感知器算法
%作者:赵晓梅 2066
%时间:2014.10.5
clc;
clear all ;
fprintf('感知器算法\n');
%输入模式样本
x=[0,0,0,1;1,0,0,1;1,0,1,1;1,1,0,1;0,0,-1,-1;0,-1,-1,-1;0,-1,0,-1;-1,-1,-1,-1];
[N,n]=size(x);%获取样本数目和维数;N 为样本数目;n 为样本维数
C=1;
w0=[0,0,0,0]';%初始化解向量
w=w0;
flag=1;%迭代继续标志,当迭代全部正确时,flag=0,迭代结束
k=0;%记录迭代次数
while (flag)
flag=0;
k=k+1;
for i=1:N
if w'*x(i,:)'<=0%当迭代错误,w加上相应的x w=w+x(i,:)';
flag=1;
end
end
end
fprintf('迭代次数%d\n',k);
fprintf('解向量为w=(');
for j=1:n
fprintf('%d ',w(j));
end
fprintf(')\n');
fprintf('相应的判别函数为d(x)=');
for j=1:n-1
fprintf('(%d)x%d+',w(j),j);
end
fprintf('(%d)\n',w(j));。

相关主题