感知机模型

  感知机(Perceptron)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类型,取值分别为{-1,1}。感知机对应于输入空间中将实例划分成正负两类的超平面,属于判别模型。感知机学习旨在学习一个可以将正负实例进行划分的超平面,为此需要引入基于误分类的损失函数,并利用随机梯度下降法(Stochastic Gradient Descent)极小化损失函数来进行感知器求解。感知机模型虽然相当简单,但是其框架却极具代表性,是支持向量机(Support Vector Machine,SVM)和神经网络(Artificial Neural Network,ANN)的基础。

1.线性可分性

  在正式介绍感知器算法之前,我们需要介绍先介绍一下什么是线性可分(Linearly Separable)。因为感知机说白了就是一个可以将正负例样本进行完全划分的超平面,线性可分是感知机的适用范围。针对当前维度线性不可分情况,SVM在感知机的基础上提出了另外的一种解决策略,具体我们以后再新的文章中继续介绍。
  线性可分的定义非常直观,对于一个数据集:
其中
如果存在一个超平面能够将数据集中的正负样本精确的划分到的两侧,即:
使得
那么称数据集是线性可分的,否则称之线性不可分。

2.感知机算法

2.1 感知机

  假设输入空间是和输出空间是,输入空间表示样本的特征向量,输出空间表示样本的类别,由输入空间到输出空间的函数:
称为感知机,其中和表示感知机模型的参数,其中称为权重向量,称为偏置,表示和的内积。sign是符号函数,满足:

  通过上式我们可以知道,针对一个线性可分的数据集,其对应的感知机是一个线性超平面的组合,即存在无数个超平面可以将当前的数据集进行线性分隔。而SVM的一个重要的思想就是通过最大化间隔来选择一个最优的超平面,这块以后我们会详细说到。

2.2 感知机的学习策略

  假设数据集是线性可分的,感知机学习的目标是得到一个可以正确将数据集进行划分的超平面,为了得到这个超平面,我们需要确定这个超平面的参数和。为此,我们需要确定一个损失函数,并通过将损失函数最小化达到确定模型参数的目的。感知机策略的具体表现就表现在这个损失函数上。损失函数的一个选择就是误分类的样本数,但是这个损失函数不是参数w和b的连续可导函数,为此,我们可以选择误分类的样本点到超平面的总距离作为损失函数。于是我们有:
这里是的范数,是误分类的样本点集合,对于误分类的样本来说有:
因此误分类的顶点到超平面的距离又可以表示为:
不考虑,损失函数可以表示成:

2.3 感知机算法

  最小化损失函数的过程在感知机里面的称为:梯度下降法。梯度下降法是求解无约束最优化问题的最常用手段之一,同时由于现在的深度学习框架基本上都包含自动求导并更新参数的功能,所以梯度下降法的实现往往简单且高效。梯度下降的核心在于函数的“求导”,而由于一般来说样本都是高维的(即),所以这里求导要求的其实是函数的梯度。函数的梯度有一个十分重要的性质:它是使函数上升最快的方向,这样就意味着负梯度是使函数下降最快的方向,于是利用该性质,梯度下降认为在每一步迭代中,都以负梯度更新的方向迈进异步,在机器学习中,这里的迈进称之为“步长”或“学习速率”。梯度下降法一般分成:随机梯度下降(SGD),小批量梯度下降(MBGD)和批量梯度下降(BGD)。它们在行为上的区别主要是:SGD每次迭代只会使用一个样本进行参数的更新,MBGD会选用多个样本更新参数,而BGD会同时选用所有的样本来更新参数。
  为了简单起见,我们采用随机梯度下降来进行训练,此时我们需要知道损失函数在和上的偏导:
\large \frac{\partial L(w,b,x_i,y_i)}{\partial w}=\begin{cases} 0, & (x_i, y_i)\notin E \\ -y_ix_i, & (x_i, y_i) \in E \end{cases} \\ \large \frac{\partial L(w,b,x_i,y_i)}{\partial b}=\begin{cases} 0, & (x_i, y_i)\notin E \\ -y_i, & (x_i, y_i) \in E \end{cases}
下面,我们给出基于随机梯度下降训练感知机模型的过程。

输入:训练集数据、迭代次数(通常很大,如10000)、学习速率(通常很小,如0.01),其中:过程:
(1)初始化参数:
(2)对于:
(2.1)若,即没有误分类的样本点,则退出循环体。
(2.2)否则,从中任意选取一个样本点并利用它更新参数:
输出:感知机模型

  这里需要指出的是,虽然说感知机只适用于线性可分的数据集,但是它有一个优点:不论学习速率是多少,只要数据集是线性可分的,那么上述感知机在迭代次数足够大的情况下,必然能够训练出一个使得误分类样本集为空的超平面,即Novikoff定理,感兴趣的可以自己证明。

2.4 感知机算法的对偶形式

  对偶形式的基本想法是:将和表示为实例和标记的线性组合方式,通过求解其系数而求得和。尽管感知机算法的原始形式已经非常简单,但是通过将它转化为对偶形式能够比较清晰的感受转化的过程。考虑前一节提到的参数更新过程:

从中任意选取一个误分类样本点并利用它更新参数:

由上述过程我们得知:参数的更新完全是基于样本点的,考虑到我们需要将参数表示成样本的线性组合,一个自然的做法就是记录下整个迭代过程中每个样本被利用到的次数,然后利用这个次数将参数表示出来。假设初始化时参数为:

如果进一步设,则有:

基于此,我们就可以写出感知机的对偶形式了:

输入:训练集数据、迭代次数、学习速率,其中:过程:
(1)初始化参数:
(2)对于:
(2.1)若,即没有误分类的样本点,则退出循环体。
(2.2)否则,从中任意选取一个样本点并利用它更新参数:
输出:感知机模型,其中

对偶过程中,样本仅以内积的形式出现,为了方便计算,可以预先将训练集中的样本间内积提前计算好,并以矩阵的形式进行存储,这个矩阵就是所谓了Gram矩阵:

你可能感兴趣的:(感知机模型)