感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别{-1,1},是一种判别模型。感知机学习的目的在于求出将训练数据进行划分的超平面。
-
感知机模型
输入空间,输出空间。
为输入向量,其中,和为感知机模型参数,表示内积,sign是符号函数。感知机的几何角度理解是:是特征空间的一个超平面,是该平面的法向量,是截距。这个超平面将特征空间划分为正负两个部分,如下图。
-
感知机学习策略
感知机学习的目的是为了找到能够将正负实例点正确分开的超平面,也就是要确定参数和,感知机的学习策略便是定义一个损失函数并将其最小化。于是便要选择一个损失函数的依据,可以选择误分类的点的数量作为损失函数,然而该函数不可导,不易于优化,因此选择误分类点到超平面的距离和: 此处是的第二范数。注意需要优化的只是误分类的点,对于误分类的点有,恒成立,因此可去掉绝对值符号,并假设当前超平面的误分类的点的集合为M,由此得到感知机学习的损失函数为 其中M为误分类的点的集合。显然该损失函数是非负的,当没有误分类的点时.只需将损失函数优化到0即得到该分类超平面,不过由该方法得到的超平面的解不是唯一的(显然只需要能够正确分类时算法即停止)。
-
感知机学习算法
感知机所用优化方法是随机梯度下降法,包括原始形式和对偶形式。
-
原始形式
前面已经确定了感知机的损失函数,那么其原始形式只需要最小化这个损失函数即可。
其中M为误分类的点的集合。
随机梯度下降法初始时任选,作为初始超平面,计算有哪些误分类点,如果有误分类点,随机选取一个误分类点,进行梯度下降。即先计算损失函数的梯度
梯度下降法使参数向反方向变化,使用随机选出的误分类点的数据,根据提前设置好的学习率对进行更新就可以了
这样便可使损失函数不断减小,直到为0时就得到了可正确分类数据集的超平面。
-
对偶形式
在原始形式的学习算法中,可以看到每次更新的数值都是选中的点的线性组合,那么必然可以用线性表示,这样我们可以通过求解该线性组合的系数找到该超平面。对上节的更新中,设总共修改N次,可将每次增量表示为,其中,假设(这无关线性)。于是更新过程表示为
这里的含义是在该学习率下在最后学习到的中所贡献的权重,就是最后平面的的系数,也是因该点误分类也进行更新的次数*。由此,感知机模型可由表出。
在判断是否是误分类点时用
更新时
可以看到该计算过程中训练数据全部由内积得到,因此可以提前将内积计算出来由矩阵存储,可以减少算法过程中的计算量,这是Gram矩阵。