首先,我们对
g(x)=wTx+w0
做一些形式上的改变。定义:
这样 g(x) 就可以表示成:
决策规则是:如果 g(y)>0 ,则 y∈w1 ;如果 g(y)<0 ,则 y∈w2 ;
现在我们定义一个新的变量
y′i
(称为:规范化增广样本向量):
这样,样本可分的条件就变成了:
对于线性可分的一组样本 y1,y2,⋯,yN 满足上式的权向量 α∗ 称为一个解向量,所有满足要求的 α∗ 构成解区。解区中的每个解向量都能把样本没有错误的分开,但是考虑到噪声、数值计算误差等因素,靠近解区中间的解向量应该更加可靠,因此引入余量的概念,将解区向中间缩小。形式化描述就是,引入余量 b>0 要求解向量满足:
下面来讲讲如何求解
α∗
。
对于权向量
α
,如果某个样本
yk
被错误分类,则
αTyk≤0
。因此我们可以定义所有样本中错误分类样本的惩罚:
公式(1)就是 感知器准则函数。
当且仅当 JP(α∗)=minJP(α) 时 α∗ 是解向量。
公式(1)的最小化可以用梯度下降法迭代求解:
其中:
因此公式(2)可写成:
即在每一步迭代时把错分的样本按照某个系数加到权向量上。
通常情况下,一次将所有错误样本都进行修正的做法效率不高,更常用的是每次只修正一个样本的固定增量法,步骤是:
(1)任意选择初始的权向量
α(0)
,置
t=0
;
(2)考察样本
yj
,若
α(t)Tyj≤0
,则
α(t+1)=α(y)+yj
,否则继续;
(3)考察另一个样本,重复(2),直至对所有样本都有
α(y)Tyj>0
,即
JP(α)=0
如果考虑余量
b
,只需将上面的算法中的错分判断条件改成
这里修正步长 ρt=1 是固定的,但是也可以使用可变步长,如绝对修正法的步长为 ρt=|α(k)Tyj|||yj||2
总结:感知器算法是最简单的可学习的机器,由于它只能解决线性可分的问题,所以在实际应用中直接使用感知器的场合并不多,但是它是很多复杂算法的基础,比如SVM和多层感知器人工神经网络。