感知机是2分类线性分类模型,输入是样本/实例的特征向量,输出为其类别{+1,-1}.感知机对应于将输入空间/特征空间中的实例划分为正负两类的分离超平面,属于判别模型。
感知机学习基于误分类损失函数,利用梯度下降法对其极小化,更新参数,求得感知机模型(对应一组最优的参数)。
感知机学习算法PLA简单且易于实现,分为原始形式和对偶形式。
感知机预测是使用学习得到的感知机模型对新的输入实例进行分类。
目录
1. 感知机模型
输入空间:
输入变量:,表示实例的特征向量
输出空间:
输出变量: +1表示实例为正类,-1表示实例为负类
感知机: 表示输入空间到输出空间的映射。其中叫权向量(权重参数),叫偏置(偏置参数)。
符号函数:
假设空间/假设集:,表示定义在特征空间中的所有线性分类模型或线性分类器。由于参数w,b有不同的取值,每个取值对应一个假设,构成假设空间。我们基于训练集训练,利用梯度下降法极小化损失,不断更新w,b,在假设空间中找到一个最好的假设,对应一组最好的参数,可以使得损失最小。
- 感知机的几何解释
线性方程,对应特征空间中的一个超平面,w为超平面的法向量,b是其截距,该超平面把特征空间中的点分为两部分。位于两部分的点(实例特征向量)分别被分为正类和负类。下图是2维空间中的一个示例:
空间中的点到超平面的距离公式推导:
因此,上图中原点到超平面的距离为,他在超平面的负方向。
感知机学习通过,由训练集(实例的特征向量及类别),其中,求得模型参数w,b。
感知机预测通过学习得到的感知机模型对新输入的实例给出他对应的类别。
2. 感知机学习策略
- 数据集的线性可分性
给定数据集,,如果存在超平面S:,对于所有的实例,有,对于所有的实例,有,则数据集T是线性可分的,否则是线性不可分的。
学习策略
假设数据集是线性可分的(PLA的前提条件),感知机学习的目标是找到一个超平面(对应最好的参数w,b)能将训练集中的所有正负实例完全分开。我们需要定义一个损失函数,通过梯度下降法极小化该损失函数,更新参数w,b,从而最终得到该超平面。
我们把损失函数定义为误分类点到超平面S的总距离,中的任意一点到S的距离公式为:
其中||w||为权向量w的模长或L2范数。
对于误分类点,有成立,误分类点到S的距离为:
假设超平面S的误分类点的集合为M,所有误分类点到S的总距离为:
不考虑我们就得到了感知机学习的损失函数(经验风险函数):
显然L(w,b)是非负的,如果没有误分类点,损失函数值为0.而且误分类点越少,误分类点距离超平面越近,损失函数值越小。一个特定样本点的损失函数,在误分类时是参数w,b的线性函数,正确分类时为0.因此,给定训练集T,损失函数L(w,b)是w,b的连续可导函数。
感知机学习的策略在假设空间中找到一组参数w,b使得损失函数值最小。
3. 感知机学习算法
- 原始形式
给定数据集,,求参数w,b使其为下面损失函数极小化的解:
感知机学习算法是误分类驱动的,具体使用随机梯度下降法(每次使用一个误分类点进行更新)。
假设误分类点集合M是固定的,那么损失函数L(w,b)对w,b的梯度如下:
随机选择一个误分类点,对w,b进行更新:
其中为学习率。
感知机学习算法原始形式:
输入:训练集,;学习率
输出:w,b;感知机模型:
直观解释:当一个实例点被误分时,即位于分离超平面错误的一侧时,则调整w,b,使分离超平面向该误分类点一侧移动,减小误分类点到分离超平面的距离,直到超平面越过该误分类点使其正确分类。
例题:
此时的分离超平面为.
感知机模型:
上述过程中,我们计算是按顺序计算误分点来得到超平面和感知机模型。但是如果随机选择误分点或者依次取那么得到的超平面是。
对于感知机学习算法采用不同的初始值或选取不同的误分类点,得到的解是不同的。
- 算法收敛性证明
注意为了让表示唯一,对其进行约束,使得其长度等于单位长度。
从而证明了误分类次数k有上界,也就是说当数据集线性可分时,感知机学习算法原始形式迭代是可以收敛的。
感知机学习算法存在很多解,这些解依赖于初始值的选择和误分类点的选取顺序。为了得到唯一的超平面,需要对分离超平面添加约束条件,这就是之后要学习的线性支持向量机的想法。
当数据集线性不可分时,感知机学习算法不会收敛,迭代结果会发生振荡。
考虑定理中的两个结论:
第一个结论说明和 的内积不断增大,因为k在不断增大,内积增大,一种可能是二者的夹角变小,说明此时在更新过程中和 不断接近;另一种可能是的模长在增大,而结论2说明的模长是可以被限制住的。综上,在更新过程中和 不断接近。
- 对偶形式
对偶形式的基本想法是:把w,b表示为实例和标签的线性组合的形式,通过求解组合系数,从而求得w,b。
我们设,对于误分类点通过下式更新:
逐步修改w,b,设修改了n次,则w,b关于的增量分别为和,其中.
最终学习得到的w,b可以表示为:
每个实例都有一个对应的 ,其中,当时,表示第i个实例由于误分被更新的次数。
实例点更新次数越多,意味着它离分离超平面越近,也就越难正确分类。即这样的实例对学习结果影响最大。
感知机学习算法对偶形式:
输入:训练集,;学习率
输出:;感知机模型:其中.
对偶形式中训练实例仅以内积形式出现,可以预先把训练实例间的内积全都算出来存在一个矩阵里,称为Gram矩阵:
例题:题面与之前的例题相同,用对偶形式求解。
- 两种形式的对比
对偶形式每次只会更新两个数,而原始形式每次需要更新一个向量和一个数b,需要更新的更多,而且每次都要计算一次内积,计算量相对大,虽然对偶形式也需要计算内积,但是可以预先把所有实例间的内积算出来存在一个矩阵里。整体来说,对偶形式相比原始形式计算量少一点。
4. 总结
1)感知机是根据输入实例的特征向量x对其进行2分类的线性分类模型:
感知机模型对应特征空间中的分离超平面为.
2)感知机学习的策略是极小化损失函数:
损失函数对应于误分类点到分离超平面的总距离。
3)感知机学习算法是基于随机梯度下降法对损失函数的最优化算法,有原始形式和对偶形式。算法简单易于实现。原始形式中,首先任取一个超平面,然后利用随机梯度下降法不断极小化目标函数。在这个过程中一次随机选取一个误分类点计算梯度,进行梯度下降,更新参数。
4)当训练数据集线性可分时,感知机算法是可以收敛的。感知机算法在训练数据集上的误分类次数k满足:
当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初始值或不同迭代顺序而可能有所不同。