代码改变世界

线性分类器之感知机算法

2013-05-04 15:17  夜与周公  阅读(1390)  评论(0编辑  收藏  举报

  感知机算法(The perceptron algorithm),应该是最早运用的机器学习算法,在模式识别与机器学习占有者非常重要的位置,人们尝试通过模拟大脑神经元的工作模式,创造机器智能。随后的neural network、最近很火的deeper learning,我们可以认为是对感知机算法的一种深度扩充。

  感知机模型的直接将线性模型的输出映射到样本的标签:

                                               (1)

  感知机属于判别式模型,按照一般判别式模型的求解思路:1、确定线性判别函数;2、按需要确定一个准则函数J;3、最优化方法求解J达到极限值时的参数Θ。对于参数的求解我们一般通过最大似然估计或者最大后验概率估计的方法。然而,感知机函数并没有提高概率分布的形式,因此,通过最大似然估计或者最大后验概率估计方法失效。为此,我们定义了感知机准则:

                                                                (2)

其中M表示错分的样本。感知机准则是有一定道理的:最小化错误。若分类正确,(ΘTx(i))*y(i) > 0;若分类错误,(ΘTx(i))*y(i) < 0。(ΘTx(i))*y(i) 值的大小表示了模型对当前样本的“置信度”,值越大越能确信当前样本分类正确,值越小则越确信当前样本分类错误。

  得到了准则函数后,我们就可以使用最优化的方法求解模型,随机梯度下降算法求解策略:

                                                              (3) 

 

 如下图给出了感知机算法的更新过程(摘自PRML P213)

           

其中红色点表示正例样本,蓝色点表示负例样本,黑色箭头表示了正向正例样本的法方向,红色箭头表示迭代的方向。