3.5.1 概述
一旦判别函数的形式确定下来,不管它是线性的还是非线性的,剩下的问题就是如何确定它的系数
在模式识别中,系数确定的一个主要方法就是通过对已知样本的训练和学习来得到
感知器算法就是通过训练样本模式的迭代和学习,产生线性(或广义线性)可分的模式判别函数
采用感知器算法(Perception Approach)能通过对训练模式样本集的“学习”得到判别函数的系数。
这里采用的算法不需要对各类别中模式的统计性质做任何假设,因此称为确定性的方法
3.5.2 感知器的训练算法
已知两个训练模式集分别属于ω1类和ω2类,权向量的初始值为w(1),可任意取值。则在用全部训练模式集进行迭代训练时,第k次的训练步骤为:
若xk∈ω1且wT(k)xk≤0或xk∈ω2且wT(k)xk>0,则说明分类器对第k个模式做出了错误分类,此时应该校正权向量,使得
w(k+1)=w(k)−Cxk 其中C为校正增量
w(k+1)=w(k) 因此,感知器算法可以统一写成:
感知器算法的收敛性
只要模式类别是线性可分的,就可以在有限的迭代步数里求出权向量
3.5.3 使用感知器算法的多模式分类
其中C是一个正常数,权向量的初值可视情况任意选择。
这里的分类算法都是通过模式样本来确定判别函数的系数,但一个分类器的判断性能最终要受并未用于训练的那些未知样本来检验。
要使一个分类器设计完善,必须采用有代表性的训练数据,它能够合理反映模式数据的整体。
一般来说,合适的样本数目可如下估计:
若k是模式的维数,令C=2(k+1),则通常选用的训练样本数目约为C的10~20倍。
若对x∈ω2的模式样本乘以-1,则有:
若wT(k)xk≤0,则w(k+1)=w(k)+Cxk w(k+1)={w(k)w(k)+CxkwT(k)xk>0wT(k)xk≤0 对错误分类的“罚”,本质是给权向量加上一个正比于xk的分量
将属于ω2的训练样本乘以-1,并写作增广向量的形式,则有:
x1x2x3x4=(0,0,1)T=(0,1,1)T=(−1,0,−1)T=(−1,−1,−1)T 第一轮,取C=1,w(1)=(0,0,0)T
wT(1)x1=(0,0,0)(0,0,1)T=0>0,因此w(2)=w(1)+x1=(0,0,1)T
wT(2)x2=(0,0,1)(0,1,1)T=1>0,因此w(3)=w(2)=(0,0,1)T
wT(3)x3=(0,0,1)(−1,0,−1)T=−1>0,因此w(4)=w(3)+x3=(−1,0,0)T
wT(4)x4=(−1,0,0)(−1,−1,−1)T=1>0,因此w(5)=w(4)=(−1,0,0)T
wT(5)x1=(−1,0,0)(0,0,1)T=0>0,因此w(6)=w(5)+x1=(−1,0,1)T
wT(6)x2=(−1,0,1)(0,1,1)T=1>0,因此w(7)=w(6)=(−1,0,1)T
wT(7)x3=(−1,0,1)(−1,0,−1)T=0>0,因此w(8)=w(7)+x3=(−2,0,0)T
wT(8)x4=(−2,0,0)(−1,−1,−1)T=2>0,因此w(9)=w(8)=(−2,0,0)T
wT(9)x1=(−2,0,0)(0,0,1)T=0>0,因此w(10)=w(9)+x1=(−2,0,1)T
wT(10)x2=(−2,0,1)(0,1,1)T=1>0,因此w(11)=w(10)=(−2,0,1)T
wT(11)x3=(−2,0,1)(−1,0,−1)T=1>0,因此w(12)=w(11)=(−2,0,1)T
wT(12)x4=(−2,0,1)(−1,−1,−1)T=1>0,因此w(13)=w(12)=(−2,0,1)T
wT(13)x1=(−2,0,1)(0,0,1)T=1>0,因此w(14)=w(13)=(−2,0,1)T
wT(14)x2=1>0,因此w(15)=w(14)=(−2,0,1)T
wT(15)x3=1>0,因此w(16)=w(15)=(−2,0,1)T
wT(16)x2=1>0,因此解向量为(−2,0,1)T,对应的判别函数即为:
d(x)=−2x1+1 采用3.2.2章节中第三种情况,对M类模式存在M个判别函数{di,i=1,2,…,M},若x∈ω1,则di>dj,∀j=i。由此将感知器算法推广到多类模式:
设M种模式类别ω1,ω2,…,ωM,若在训练过程的第k次迭代时,一个属于ωi类的模式样本x送入分类器,则应先算出M个判别函数:
dj(k)=ωj(k)x, j=1,2,…,M 若di(k)>dj(k), j=1,2,…,M, ∀j=i的条件成立,则权向量不变,即:
wj(k+1)=wj(k) 若其中第一个权向量使得dj(k)≤d1(k),则相应的权向量应作调整,即:
⎩⎨⎧wi(k+1)=wi(k)+Cxwl(k+1)=wl(k)−Cxwj(k+1)=wj(k)j=1,2,…,M,j=i,j=l ω1:{(0,0)T},ω1:{(1,1)T},ω1:{(−1,1)T} x1=(0,0,1)Tx2=(1,1,1)Tx3=(−1,1,1)T 取初始值w1(1)=w2(1)=w3(1)=(0,0,0)T,C=1
d1(1)=w1T(1)x1=(0,0,0)(0,0,1)T=0d2(1)=w2T(1)x1=(0,0,0)(0,0,1)T=0d3(1)=w3T(1)x1=(0,0,0)(0,0,1)T=0 由于d1(1)>d2(1),d1(1)>d3(1),因此:
w1(2)=w1(1)+x1=(0,0,1)Tw2(2)=w2(1)−x1=(0,0,−1)Tw3(2)=w3(1)−x1=(0,0,−1)T d1(2)=w1T(2)x2=(0,0,1)(1,1,1)T=1d2(2)=w2T(2)x2=(0,0,−1)(1,1,1)T=−1d3(2)=w3T(2)x2=(0,0,−1)(1,1,1)T=−1 由于d2(2)>d1(2),d2(2)>d3(2),因此:
w1(3)=w1(2)−x2=(−1,−1,0)Tw2(3)=w2(2)+x2=(1,1,0)Tw3(3)=w3(2)−x2=(−1,−1,−2)T d1(3)=w1T(3)x3=(−1,−1,0)(−1,1,1)T=0d2(3)=w2T(3)x3=(1,1,0)(−1,1,1)T=0d3(3)=w3T(3)x3=(−1,−1,−2)(−1,1,1)T=−2 由于d3(3)>d1(3),d3(3)>d2(3),因此:
w1(4)=w1(3)−x3=(0,−2,−1)Tw2(4)=w2(3)−x3=(2,0,−1)Tw3(4)=w3(3)+x3=(−2,0,−1)T d1(4)=w1T(4)x1=−1d2(4)=w2T(4)x1=−1d3(4)=w3T(4)x1=−1 由于d1(4)>d2(4),d1(4)>d3(4),因此:
w1(5)=w1(4)+x1=(0,−2,0)Tw2(5)=w2(4)−x1=(2,0,−2)Tw3(5)=w3(4)−x1=(−2,0,−2)T d1(5)=w1T(5)x2=−2d2(5)=w2T(5)x2=0d3(5)=w3T(5)x2=−4 由于d2(5)>d1(5),d2(5)>d3(5),因此:
w1(6)=w1(5)w2(6)=w2(5)w3(6)=w3(5) d1(6)=w1T(6)x3=−2d2(6)=w2T(6)x3=−4d3(6)=w3T(6)x3=0 由于d3(6)>d1(6),d3(6)>d2(6),因此:
w1(7)=w1(6)w2(7)=w2(6)w3(7)=w3(6) d1(7)=w1T(7)x1=0d2(7)=w2T(7)x1=−2d3(7)=w3T(7)x1=−2 由于d1(7)>d2(7),d1(7)>d3(7),因此权向量不变
w1=(0,−2,0)Tw2=(2,0,−2)Tw3=(−2,0,−2)T d1(x)=−2x2d2(x)=2x1−2d3(x)=−2x1−2