SVM——(二)线性可分之目标函数推导方法2
这是接着上一篇文章(方法1)整理的第二种推导方法。这是从另外一个点来思考如何求得目标优化函数,建议两种都看一下。这样能理解得更加透彻。
0.引言
什么是支持向量机(Support Vector Machine)? 我们需要明确的是:支持向量机它是一种算法,用来寻找一个“最佳”超平面。(直线也是超平面)
如下图所示:
那条线算是“最佳”超平面呢?直觉告诉你是中间红色这一条。事实上也是,因为其两侧离它最近的点的距离最大,且两侧距离的绝对值相等。同时我们称两侧平面上的样本点为支持向量(support vector)。那我们又该如何来找到这个超平面呢?
1.间隔的度量方式
1.1 超平面的表达
在谈距离之前,我们先把超平面的表达式给写出来:
其中
从上面的表达式我们知道,知道找到参数
1.2 函数间隔(functional margin)
上面说到SVM的核心思想就是最大化间隔,既然是最大化间隔,那总该得有个度量间隔的量。我们知道,当超平面
我们可以注意到,只要分类正确,
且定义训练集到超平面的函数间隔为其中的最小值:
但是我们发现,如果同时在方程
1.2几何间隔
如下图所示,所谓几何间隔(geometric margins),就是样本点到直线实实在在的距离,只要直线不发生改变,那么间隔就不会发生任何改变;这样就避免了在函数间隔中所遇到的问题。
那么应该如何来表示几何间隔呢?
如图所示,直线方程为
又因为B点在直线上,所以满足:
因此我们可以通过化简得到几何距离的计算公式,但问题在于
也就是说:若直线斜率为k,则他的一个方向向量为
所以有:
如图:
直线方程为:
则:
此时我们发现,这是一个有符号的距离:正样本到直线的距离为正;负样本到直线的距离为负。但无论如何,同函数间隔一样只要是分类正确的情况下都满足
且定义训练集到超平面的几何间隔为其中的最小值:
同时,我们还可以发现函数间隔同几何间隔存在以下关系:
此时我们已经有了对于间隔度量的方式,所以下一步自然就是最大化这个间隔来求得平面。
2.最大间隔分类器
什么是最大间隔分类器(Maximum margin classifiers)呢?上面我们说到有了间隔的度量方式之后,接着就是最大化这一间隔,然后求得超平面
从上面的公式(09)我们得到了数据集到平面的几何间隔,然后再最大化几何间隔,即:
式子(12)的含义就是找到参数
1.
2. 同时要使得样本中所有的几何距离都大于
怎么直接解决上面这个优化问题? 当然我也不知道能还是不能,至少按照主流的SVM推导过程,不是这样做的。当然,我最后用到的方式肯定也和和主流方式一样,只是我换了一个叙述方式(顺序),使得大家(至少是我自己)更能接受一点。
既然不能直接优化,那我们不妨再次回顾一下SVM的思想“最大化(几何)间隔”。什么意思?或者说最大化的前提是什么?可能你已经想到了。当然得先确定平面(不论是否为最佳平面),然后才能度量样本点到平面的间隔。
所以,由函数间隔与几何间隔的关系
此时我们发现,约束条件几何间隔依然变成了函数间隔,准确说应该既是函数间隔同样也是几何间隔。既然可以看做函数间隔,那么令
所以上述优化问题(13)就可以转化为如下形式:
但是对于这样一个优化问题(14),我们还是无法直接解决。我们知道,对于
之所以要进行这样的处理,是因为我们可以将其转换为凸优化问题,用现有的方法求解。(前面在乘以
到这一步就可以用现有(off-the-shelf)的QP(quadratic programming)软件求解出
SVM——(七)SMO(序列最小最优算法)
SVM——(六)软间隔目标函数求解
SVM——(五)线性不可分之核函数
SVM——(四)目标函数求解
SVM——(三)对偶性和KKT条件(Lagrange duality and KKT condition)
SVM——(二)线性可分之目标函数推导方法2
SVM——(一)线性可分之目标函数推导方法1
参考:
- 《机器学习》周志华
- 《统计学习方法》李航
- Andrew Ng. CS229. Note3
- 学习July博文总结——支持向量机(SVM)的深入理解(上)