1
模式识别与智能计算的MATLAB实现
1.4.2.3 2.2.3 感知器算法
2.2.3 感知器算法

对于两类问题,设有判别函数

d(X)=w1x1+w2x2+w3=0

并已知训练集XA,XB,XC,XD均属二维特征空间,且{XA,XB}∈ω1,{XC,XD}∈ω2,则有

alt

写成一般的方程形式为

Xw>0

其中,w为权矢量,w=(w1,w2,w3T,X为样本的增广特征矢量,即

alt

训练过程就是对判断好的样本集求解权矢量w。这实际上是一个线性联立不等式的求解问题。显然,只有当为线性可分问题时才有解,并且如果有解,其解也不一定是单值,因而就有一个按不同条件取得最优解的问题。可以有不同的求解算法,梯度下降法即是其中的一种。

设准则函数J

J(w,X)=α(∣wTX∣-wTX)

迭代公式

w(k+1)=w(k)-C·∆J(w(k))

其中,-∆J(w(k))即为负梯度向量,它指出了w的最陡下降方向,当为0时,达到了函数的极值。

当α为1/2时,根据梯度的定义可求出迭代算法的具体关系

alt

即当样本正确分类时,不作修正;反之,当样本被错误分类时,应添加一修正项CX(k),这就是感知器算法的基本形式。

具体算法如下:

①设各个权重矢量的初值为0,即w1=w2=…=wM=0,M为类别数。

②第k次输入一个样本X(k),计算第k次迭代计算的结果为

alt

③若X(k)∈ωi,i=1,2,…,M,则判断di[X(k)]是否为最大值。若是,则各个权值不需要修正,否则各权值需要修正:

wi(k+1)=wi(k)+X(k),wj(k+1)=wj(k)-X(k),  j=1,2,…,M,  j≠i

④循环执行第②步,直到输入所有的样本,权重都不需要修正为止。