感知机模型

  • Post author:
  • Post category:其他


参考:


http://blog.csdn.net/dream_angel_z/article/details/48915561



http://mp.weixin.qq.com/s/2QHG0D1j0hQyErYg7Cp53w

感知机模型是理解SVM和神经网络的基础。在这里我们可以从感知机模型上看到神经网络的影子,通过简单的堆叠就可以成为MLP(神经网络的一种),在损失函数上看到SVM的影子。

感知机 定义

那到底什么是感知机呢?

定义:在机器学习中,感知机(perceptron)是二分类的线性分类模型,属于监督学习算法。输入为实例的特征向量,输出为实例的类别(取+1和-1)。

从数学角度来讲,形如f(x) = sign(W.X+b),我们就称之为感知机模型。这里sign是符号函数,W.X表示W向量和X向量的点积,即
这里写图片描述

这里写图片描述

这里需要说明的sign是个阶跃函数,它不光滑且不可导。

感知机目的

我们的感知机模型其实就是在学习这样一个最佳的超平面W.X+b=0,能够在二分类问题中把正负样本正确分开。也就是得到参数W和b,问题就求解了。但是如何得到W和b的值呢?

有过机器学习基础的同学都知道,在机器学习领域往往对损失函数使用梯度下降算法来更新参数。所以现在的关键是感知机的损失函数是什么?知道了损失函数,我们就可以对损失函数求偏导然后基于梯度下降来更新参数,就可以找到w,b的最优值。

损失函数

注意到,感知机对应的超平面为W.X+b=0,那么

正样本 <==> W.X+b>0

负样本<==>W.X+b <0

但是仅凭这一个公式是无法区分分类的正确性的,上面的公式只表明了点在超平面的上方还是下方,并未指出分类结果的正确与否。但是当我们在判断条件中加入标签yi,就可以对分类结果做出正确的指示了。

如分类正确时:

正样本 yi=1 并且W.X+b >0

负样本 yi=-1 并且W.X+b<0

我们可以看出yi (W.X+b)>0

分类错误:

正样本被错分为负样本,yi=1,W.X+b<0

负样本被错分为正样本,yi=-1,W.X+b>0

此时yi(W.X+b)<0;

另外我们知道,梯度的更新是以有误差存在的前提下才能运作的,当正确分类时,因为误差为0,所以是不会贡献梯度的。因为正确分类的点及其“周围”使得损失函数为常数0,从而梯度也为0。

这里也就是说只有分类错误的点才会贡献梯度,对损失函数有用。使得梯度下降朝着减小损失函数值的方向努力。

所以我们可以定义损失函数为
这里写图片描述

这里(xi,yi)为样本,M是分类错误样本的集合,加符号是为了使损失函数值非负。

梯度下降求解

此时,我们将感知机学习转变成求解损失函数L(w,b)的最优化问题。最优化的方法是随机梯度下降法(stochastic gradient descent)。求解的公式如下:

这里写图片描述


更新规则就是:

这里写图片描述

其中参数η是learning rate (学习速率)。

感知机算法原始形式

这里写图片描述