线性分类器之感知器模型(Perceptron)

前文提到,Fisher判别器的设计一般分两步,一是确定最优的投影方向,二是在投影方向上确定阈权值。而感知器则是一种直接得到完整的线性判别函数 g(x)=ωTx+ω0 的方法。所以从某种意义上讲,感知器模型是Fisher判别的一种改进。了解神经网络的人也都知道,感知器是神经网络的基础。

首先将线性判别函数齐次化:
y=[1,x]T , α=[ω0,ω]T ,则

g(x)=ωTx+ω0=αTy

对于两类的情况,设 Γ={y1,y2,...,yd} 为增广样本向量,那么决策规则则为:
g(y)>0yω1g(y)<0yω2

接下来明确几个概念:
线性可分性:存在一个 α ,使所有样本能够被正确分类。即存在一个超平面能正确地将两个样本分开。
解向量 α :对于 i=1,2,...,N ,若 yiω1 ,则 αTyi>0 ;若 yiω2 ,则 αTyi<0 。能够满足上述条件的 α 即为解向量 α
解区:权值空间中所有解向量组成的区域即为解区。(通常对于一个问题,解向量不唯一,故可将所有的解向量组成一个解区)

线性分类器之感知器模型(Perceptron)_第1张图片

余量:解区中的权向量都是解,但是越靠近解区中间的向量,所得到的分类面离各个样本越远,对将来的样本的错分的可能性就相对更小。

通过上述概念的引入,我们可以直观地看到,对于线性可分的问题,会有无数个分类面能够把样本正确地分类,而这无数个分类面组成了解区,为了求得推广能力更强的分类面,我们引入余量,使得这个分类面尽可能离样本距离远些。

引入余量 b>0 ,则要求解向量满足 αTyi>bi=1,2,...,N 。若要求 b 取到最大值,那这个分类面显然为最优分类面。

引入余量后,解会更可靠,分类器的推广性也就更强。

感知器函数及其求解:
首先我们对 yi 做一个处理,如果 yiω1yi=yi ;如果 yiω1yi=yi 这样,对于分类正确的样本,就总有 αTyi>0 ;对于分类错误的样本,有 αTyi<0

因此可以定如下感知准则函数

Jp(α)=Σyjγk(αTyj)

其中, γk 是被分错的样本的集合。
容易看出,当且仅当 Jp(α)=minJp(α)=0 时,无错分样本,即 α 是解向量。

对于感知器准则函数的求解,我们采用梯度下降法(在’数学知识’里有梯度下降法对应的博文)。

α(t+1)=α(t)ηtJp(α)

即,下一时刻的权向量是当前时刻的权向量向目标函数的负梯度方向调整一个修正量,其中 ηt 是调整的步长。
注意到,
Jp(α)=Jp(α)α=ΣαTyk<0(yk)

因此,迭代的修正公式就是
α(t+1)=α(t)+ηtΣαTyk<0(yk)

即在每一步迭代式把错分的样本按照某个系数加到权向量上。

通常来讲,单样本修正往往比一次性修正所有样本效率更高,这里给出单样本修正的原理:
(1)固定增量法

  • 初值 α(0) 为随机数。
  • 对样本 yj ,若 αTyj<0 ,则 α(k+1)=α(k)+yj ,这里步长 ηk 取为1。
  • 对所有变量重复上条,直至 Jp(α)=0

(2)变增量修正:

  • 如绝对收敛法: ηk=|α(k)Tyj|||yj||

有理论证明,对于线性可分的样本集,上述修正在有限次内一定可以终止。

你可能感兴趣的:(感知器,perceptron,线性判别,梯度下降,模式识别-机器学习)