SVM推导
参考链接。
问题分析:给定一个标注的数据集,其中,我们希望找到一个分类器或者说分类平面使得以下的判别成立:
也就是对于正确分类的话应该有成立
线性可分与线性不可分
对于线性可分的情况,分类平面以表示,其中是权重向量,是偏差。在二维的坐标里面,分类平面就是一条直线。在三维空间就是一个分类平面。训练集是为了学习到
最优的
通过训练集可以更新来得到最终的决策平面。有个问题是,满足划分正确的决策平面有无数多个,怎么样的才是最优的?最好的决策平面应该是距离两种类别的点都是最远的,也就是间隔要最大化,这样在新的数据点进入的时候,才能有比较大的抗干扰能力。
因为决策平面和是一回事,因此我们总是能够调整调整权重值和偏差值,使得最终支持向量所在的间隔为下图的形式所示。
这个时候,我们求两个边界之间的间隔也就是:
和之间的距离在方向上面的投影。
,其中是方向上面的单位向量,
因此我们要最大化的间隔,也就是我们的目标函数是
也就是在满足线性约束条件的前提下,求Margin的最大值,等价于求
这是一个满足线性限制条件的二次优化问题,有唯一的最小值。
软间隔
在一些问题上我们需要对误差和间隔最大化做一些妥协和让步,比如上面两幅图当中,为了把很靠近红色正样本的那个蓝色点正确划分,极大地扭曲了决策平面。因此我们需要调整决策平面使得它能够容忍一定的误差。
引入一个弛豫变量
在这里弛豫变量可以认为是偏离正确分类边界的y方向的距离(也可以认为是等式右边的偏差),比如以负样本的划分为例子,恰好在划分边界上面的点,而再往上去一点,,因为点还没有到中间的分类平面,中间的分类平面到下面的负样本的边界函数距离为1,在法向量方向上的投影为,当负样本的点在决策平面以上之后,,是错分点,其在法向量上面的投影。
在优化的目标函数里面引入误差项,变成了,目标函数变成了这个。
C就是正则化项,其值越大对误差的惩罚就越大。相当于降低了标准,可以允许在间隔内。