Technology

线性感知机模型

介绍该模型之前,首先对该模型做一个简要介绍: 感知机(perceptron)是机器学习中二分类的线性分类模型,属于监督学习算法。

  • 模型输入为一个实例的特征向量,输出为实例的类别(取+1和-1)
  • 模型中的感知机对应于输入空间中将实例划分为两类的分离超平面。感知机模型算法旨在求出该分离超平面
  • 为求得超平面引入入了基于误分类的损失函数,利用梯度下降法对损失函数进行最优化。
  • 感知机预测是用学习得到的感知机模型对新的实例进行预测的,属于判别模型,是神经网络支持向量机的基础

感知机模型是一种二元分类器,其输入空间为X\in R^n,输出空间Y={-1,1},输入空间到输出空间的函数为: f(x)=sign(w\cdot x+b) 上式也被称为感知机,其中

  • w是实向量,表示实例不同特征的权重,w\cdot x是特征和对应权重的点积
  • b是偏置bias,一个不依赖于任何输入值的常数。偏置可以认为是激励函数的偏移量。通俗地说,有了这样的偏置项,我们的分离超平面(感知机)才可以出现在空间的任意位置,比如,加入偏置项后,二维空间内的分界线可以不过原点。
  • sign是符号函数 f(x) = \begin{cases}+1 & \text{if } x >= 0\-1 & else\end{cases}

由感知机的数学形式可知,实际上感知机是分离超平面(separating hyperplane),下图是一个线性可分的线性感知机模型:

中间的直线即为分离超平面

学习策略

线性感知机模型目标是求得能将训练集中的正负样本完全分开的分离超平面,为求得这样的平面,模型采用误差函数,并通过极小化误差函数的方式来求得最佳超平面

对于误差函数,首先定义误差,对于误分类点(x_i,y_i),显然: −y_i (w\cdot x_i+b)>0 该误差点到超平面的距离: -\frac{1}{||w||}y_i(w\cdot x_i+b) 定义误差点集合为M,可以得到所有误差点到超平面的距离之和: -\frac{1}{||w||} \sum_{(x_i,y_i)\in M} y_i(w\cdot x_i+b) 不妨设||w||为1(不会影响对误差的描述),则可以得到线性感知机的误差函数: L(w,b)=-\sum_{(x_i,y_i)\in M} y_i(w\cdot x_i+b) 误差函数的特点如下:

  • L(w,b)非负
  • 如果没有误分类点,则损失函数的值为0;而且误分类点越少,误分类点距离超平面就越近,损失函数值就越小
  • 损失函数为连续可导函数

算法流程

通过定义损失函数,线性感知机的求解可转化为最小化损失函数的优化问题;由于求解全局最优不易,这里采用随机梯度下降的优化方法,每一次求局部最优解,所以线性感知机的求解可转化为极小化损失函数的优化问题:

对损失函数L(w,b)求导: \frac{\partial L(w,b)}{\partial w}=-\sum_{(x_i,y_i)\in M} y_ix_i \frac{\partial L(w,b)}{\partial b}=-\sum_{(x_i,y_i)\in M} y_i

误差函数的极小化过程不是一次使M中所有误分类点的梯度下降,而是一次随机的选取一个误分类点使其梯度下降,所以对于单个误差点,可以得到以下的w,b的更新过程: w:=w+ηy_ix_i w:=w+ηy_i 其中η为学习率(0,为步长,通过迭代可以是损失函数L(w,b)不断减小,直至为0.

整理可得到线性感知机的算法流程

上述过程直至训练集中没有误分类点,一次迭代过程可以描述为:若一个样本点被误分类,则通过梯度下降调整w,b,使得分离超平面向该误分类点的移动,从而减小该误分类点到超平面的距离

缺陷

Minsky & Papert的专著Perceptron(1969)对单层感知机有着详细描述:

  • 只能对线性可分的模式进行分类,甚至于解决不了简单的异或问题

感知机最早在在人工神经网络领域中提出,感知机是生物神经细胞的简单抽象,其也被指为单层的人工神经网络。由于该模型的缺陷,甚至导致了随后多年神经网络研究的低潮。

发表评论

电子邮件地址不会被公开。 必填项已用*标注