登录
登录 注册新账号
注册
已有账号登录
机器学习 | 深入理解SVM,详细推导模型原理(二)
Han Lei 阅读 64 次
12月4日发布



图片描述


今天是机器学习专题的第33篇文章,我们继续来聊聊SVM模型。


在上一篇文章当中我们推到了SVM模型在线性可分的问题中的公式推导,我们最后得到的结论是一个带有不等式的二次项:

图片描述


想要了解具体推导过程的同学,可以参考我的上一篇文章:


机器学习 $TABLE_COL 深入SVM原理及模型推导(一)


其实上一篇的文章当中遗留了一个问题,就是我们希望得到最小,为什么不直接求最小,而非要求最小呢?原因就在它的解法上,因为我们要将它转化成一个凸二次规划问题(Quadratic Programming)。QP问题也是计算科学当中一个很重要的领域,也是比较困难的领域,因为需要对计算机以及数学都有很深的造诣。


我个人感觉和实际的机器学习以及工程结合不是非常紧密,目前主要在SVM模型的原理推导上用到,所以我们可以只需要把SVM用到的公式原理理解就可以了。


求解过程 {#result}


QP问题其实有专门的QP计算包可以求它的极值,我也曾经用过,但这并不是唯一的解法,并且这种解法有一个很大的缺点在于没办法套用核函数。所以我们一般不使用QP规划的方法来求解。


我们观察一下原式,很自然的会有一种感觉,就是那些不等式很烦人。我们希望消除掉这些不等式,也有办法,就是通过使用拉格朗日乘子法来将有约束的优化目标转化成无约束的优化函数。


我们来看下拉格朗日乘子法的使用过程,给定一个不等式约束问题:图片描述


对于这个看起来很复杂的方程组,我们引入一个广义朗格朗日函数,将它改写成这样:

图片描述


这个式子相比于上面的方程组看起来要简单一些,但是它有什么用呢?我们简单分析一下,会发现。因为,并且。所以两者相加,,当时L可以取到最大值,这时。所以我们要求的是。


又由于我们要求的目标是的极小值,我们最终的目标是。

图片描述

对偶问题


接下来我们就要讨论著名的对偶问题 了,所谓的对偶问题,实质上是将一个带有两个不等式的方程的不等式进行调换顺序。把转变成,但问题是不等号的位置显然是有讲究的,不可以随意调换顺序,所以我们需要证明这样调换成立的。


为了方便起见,我们把原问题写成,我们再定义一个关于和有关的方程:。这个方程等式的右边是拉格朗日函数的最小化,因为x确定了之后,方程的结果就只和以及相关,所以它是一个关于和的函数。


我们对这个函数求极大值:

图片描述


不知道这个式子看起来是不是觉得有些眼熟,因为它和我们刚才推导得出来的原问题非常相似,只是不等号的位置不同。我们为什么要列出这两个式子呢?当然不是为了好玩的,主要是为了想要得到这样一条不等式:

图片描述


我们用拉格朗日方程做过度,就可以很容易证明这个式子:

图片描述


我们想要用对偶问题代替原问题,就需要上面这个不等号取等。对于拉格朗日方程取等的条件,数学家们已经有了严谨的证明,只需要满足Karush-Kuhn-Tucker条件(简称KTT条件)。KTT的条件推导也是一个挺复杂的过程,我们不做深入研究, 只需要知道它的存在就可以了。


KTT条件有这么几条,看起来多其实并不复杂。

图片描述


我们对照KTT条件,求解的极小值,这个就是高中数学的部分了。我们首先对原式进行化简:

图片描述


再对和进行求导:

图片描述


我们通过求导得出了和之间的关系,也就是说只要我们确定了也就确定了,另外我们可以神奇地发现上面的式子当中已经没有了b,说明b已经被我们消去了。我们把上面求导得到的取极值时的和代入原式,消去和,可以得到:

图片描述


我们观察一下是这个式子,会发现x和y都是固定的值 由样本确定,唯一的变量就只有了。我们要求的是上式的极大值,唯一的变量是,求出了就可以推导得到对应的和b。



©著作权归作者所有:来自51CTO博客作者Techflow1的原创作品,如需转载,请注明出处,否则将追究法律责任