1.1 基本概念
感知机是一个二分类的线性分类模型,输入为特征向量,输出为对该特征向量的预测类别,取1或者-1。
感知机的形式化定义:
其中:①sign(x)为符号函数,若x≥0,则函数值为1,否则为-1;
②wx+b中,w叫权值向量,b叫偏置值,wx+b=0称为感知机的分离超平面。如在二维坐标系中,wx+b=0代表一条直线,将平面分成两部分,在三维空间中,wx+b=0代表一个平面,将三维空间分成两部分。
1.2 感知机的学习策略
线性可分:对于一个数据集,若存在一个分离超平面,能将其中所有的正类和负类正确地划分到该超平面的两侧,则称该数据集是线性可分的,否则称线性不可分。
假设现在有一个线性可分的数据集,感知机学习的过程实际上就是找到这样一个分离超平面,即确定wx+b=0中的参数向量w和参数b。要确定这两个参数,就要制定一个学习策略,即定义一个损失函数,并将该函数极小化。
考虑到要保证损失函数的连续可导性,故选择误分类点到超平面的总距离作为感知机的损失函数。对于任意一个误分类点(x,y),若y=1,则wx+b必定小于0;若y=-1,则wx+b必定大于0。换句话说,y和(wx+b)必然异号,即
而任意一个误分类点到分离超平面的距离为
其中w为向量,b为标量。考虑点到直线,点到平面的距离公式,本质上都是这一个。
故所有误分类点到分离超平面的距离为
(其中M为所有误分类点的集合)
我们希望做的是找出w和b,使得该式的值为0,即所有的点都分类正确,M为空集,等价于优化该式的分子为0,故得出了感知机的损失函数如下
1.3 感知机学习算法的原始形式
感知机学习算法是误分类数据驱动的,目的是极小化损失函数,实际上若已知数据集线性可分,则损失函数必定能极小化为0。具体采用随机梯度下降法来优化参数w和b,分别对w和b求偏导,得出梯度方向
参数更新
其中叫做学习速率,相当于决定了方向以后,一步要向这个方向迈出的距离。
算法流程如下
1.4 感知机学习算法的对偶形式
在原始形式中通过如下方法调整参数的梯度
对于w,相当于在初始的w0的基础上加上了若干个,i=1,2,3,......,b同理。因此,最后学习到的w和b可以分别表示为
(其中,
是
的若干整数倍)
因此,对偶形式的感知机学习算法为
相当于把w改写为x,y的线性组合,通过学习算法求出组合系数,再通过组合系数将参数w和b分别求出来。