感知器

首先,我们对 g(x)=wTx+w0 做一些形式上的改变。定义:

y=[1,x1,x2,,xd]T

α=[w0,w1,w2,,wd]T

这样 g(x) 就可以表示成:
g(x)=αTy

决策规则是:如果 g(y)>0 ,则 yw1 ;如果 g(y)<0 ,则 yw2 ;

现在我们定义一个新的变量 yi (称为:规范化增广样本向量):

yi={yiifyiw1yiifyiw2

这样,样本可分的条件就变成了:
αTyi>0,i=1,2,,N

对于线性可分的一组样本 y1,y2,,yN 满足上式的权向量 α 称为一个解向量,所有满足要求的 α 构成解区。解区中的每个解向量都能把样本没有错误的分开,但是考虑到噪声、数值计算误差等因素,靠近解区中间的解向量应该更加可靠,因此引入余量的概念,将解区向中间缩小。形式化描述就是,引入余量 b>0 要求解向量满足:
αTyi>bi=1,2,,N

下面来讲讲如何求解 α
对于权向量 α ,如果某个样本 yk 被错误分类,则 αTyk0 。因此我们可以定义所有样本中错误分类样本的惩罚:

JP(α)=αTyk0(αTyk)(1)

公式(1)就是 感知器准则函数
当且仅当 JP(α)=minJP(α) α 是解向量。
公式(1)的最小化可以用梯度下降法迭代求解:
α(t+1)=α(t)ρtJP(α)(2)

其中:
ρtJP(α)=JP(α)α=αTyk0(yk)

因此公式(2)可写成:
α(t+1)=α(t)+ρtαTyk0(yk)

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

通常情况下,一次将所有错误样本都进行修正的做法效率不高,更常用的是每次只修正一个样本的固定增量法,步骤是:
(1)任意选择初始的权向量 α(0) ,置 t=0
(2)考察样本 yj ,若 α(t)Tyj0 ,则 α(t+1)=α(y)+yj ,否则继续;
(3)考察另一个样本,重复(2),直至对所有样本都有 α(y)Tyj>0 ,即 JP(α)=0
如果考虑余量 b ,只需将上面的算法中的错分判断条件改成 α(t)Tyjb 即可。

这里修正步长 ρt=1 是固定的,但是也可以使用可变步长,如绝对修正法的步长为 ρt=|α(k)Tyj|||yj||2

总结:感知器算法是最简单的可学习的机器,由于它只能解决线性可分的问题,所以在实际应用中直接使用感知器的场合并不多,但是它是很多复杂算法的基础,比如SVM和多层感知器人工神经网络。

你可能感兴趣的:(模式识别,概率论&数理统计)