【机器学习基础】对偶支持向量机

作者: JasonDing | 来源:发表于2015-04-20 00:32 被阅读2424次

引言

在上一小节中,我们介绍,用二次规划的方法来求解支持向量机的问题。如果用非线性的特征转化的方式,可以在一个更复杂的Z空间里做二次规划。这种思想是希望通过最大间隔的方式来控制模型的复杂度,通过特征转换来实现复杂的边界。
但是这引入了新的问题:在进行特征转换之后,在新的高维空间中,求解二次规划问题就会变得很困难。甚至在无限大的维度上求解最佳化的问题就变得不可能了。
所以,这一小节,我们要解答的是,通过非常复杂的特征转换,甚至无限维的特征转换,该如何移除在Z空间上对高维度的依赖。

对偶问题

对于原始的SVM问题,进行特征转换之后,问题有d+1个变量(d为Z空间的维度),N个限制条件。我们要转化为一个对等的问题,在这种情况下,问题只有N个变量,N+1个限制条件。
所以,不管是变量的数量也好,条件的数量也好,都只有和数据量有关系,和转换到什么维度的空间中没有关系。变量的数量不会随着特征转换有所变化。

第一步:引入拉格朗日函数

SVM和正则化的思想有些类似,是求解一个有条件的最佳化问题。


由上面这个图可以知道,左侧是原始的有条件的最佳化问题,右侧是使用拉格朗日乘数αn >= 0将条件加入到表达式中去。
于是,我们得到了下面这个SVM表达式:

这个式子的意思是,当b和w向量固定的时候,调整α使得拉格朗日函数的值最大,然后再求一个最小值的问题。
下面再解释一下这里的max的过程:
当b和w是违反约束条件的,那么造成αn与一个正数相乘,对其求解一个最大值问题,只能得到一个无限大的值,这样再求解一个最小化的问题,就可以将这些违反条件的b和w排除掉
当b和w是符合约束条件的,那么造成αn与一个非正数相乘,就能得到一个有边界的最大值。

这一步,我们就可以将一个有条件的最佳化问题,通过拉格朗日乘数转换成一个表达式,从而方便后面的求解。

第二步:拉格朗日对偶问题的转化

对于一个给定的α,对拉格朗日函数的最大化的值总是大于任意一个拉格朗日函数的值,如下:


任何一个给定的α都会有上图的结果,于是我们对右边的式子去一个最大值的动作,就得到了下面的不等式:

这样看上去是将原来的式子的最大化和最小化作了一个交换,这被称为拉格朗日对偶问题。这样就得到了原来问题解法的下限。

强对偶关系需要满足条件

凸函数(convex primal)
原来的问题是有解的,在Z空间中可分(feasible primal)
线性条件(linear constraints)

如果满足上述强对偶关系的话,那么不等式的左右就是等价相等的了。于是,我们就可以来求解右边的问题。
右边的式子有个好处,本来,我们将约束条件通过拉格朗日乘数加入到求解问题中,但这样我们没有办法求解,现在对于max{min[L(b,w,α)]}来说,求解里面的最小化问题时α是固定的(可以看做一个常数),那么这就是一个凸二次规划问题,于是我们就可以用二次规划的方法来求解了。

第三步:化简


这是上面我们得到的式子进行展开的结果,接下来,我们要对其进行化简。

首先我们将拉格朗日函数L对b求偏微分,得到一个条件,化简了待求解的式子:




然后我们再将拉格朗日函数L对w求偏微分,得到另外一个条件,继续化简式子:




可以看到我们的化简结果,我们几乎将b和w都消去了,同时min也去掉了。最终得到了一个只有α的最佳化问题(拉格朗日对偶问题的简化版)!

KKT条件(b、w、α之间需要满足的条件):

第四步:求解

基于上面的化简,我们得到了标准的硬间隔svm对偶问题:


使用一般的二次规划的形式,来求解最佳解:



虽然,按照上面的二次规划形式去套用这个方法貌似很简单,但是对于数据量很大的情况,求解这个问题就需要很大的内存,所以需要特殊的专用方法来求解。

最后我们可以通过KKT条件和α来求解b和w:


得到w之后,通过KKT的这个条件,计算得到w:


αn > 0 的情况就对应于在边界上的支持向量。

对偶SVM传递的信息

通过上面的求解,我们将α和原始的SVM的支持向量关联上,即αn > 0 对应支持向量。



这样,我们只需要计算使用支持向量来计算w和b就可以了。


这里我们比较一下SVM和PLA算法,我们把SVM的w表示成数据yn*zn和αn的线性组合形式,其中αn是由对偶问题算出来的。
我们可以看出SVM和PLA最后得到的w都是原始数据的线性组合,这种情况我们可以说w可以被数据表示出来,而SVM不同的是,w只需要SVM中的支持向量表示出来就可以了。

小结

回到最初我们要解决的问题,我们通过对偶问题将待求解的问题的难度只依赖数据的数量N,但是其实我们发现在高维空间中,其维度隐藏在二次规划问题中的矩阵中去了。
那么我们该如何才能避开这个计算的难度呢?在下一节中,我们通过核技巧的方法来避免这个内积的计算。

转载请注明作者Jason Ding及其出处
Github博客主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)
百度搜索jasonding1354进入我的博客主页

相关文章

  • 【机器学习基础】对偶支持向量机

    引言 在上一小节中,我们介绍,用二次规划的方法来求解支持向量机的问题。如果用非线性的特征转化的方式,可以在一个更复...

  • 机器学习6-支持向量机求解算法

    上一讲中支持向量机的原问题转化为对偶问题 这一讲讲解如何求解这个对偶问题,同时基于对偶问题的支持向量机算法的同意流...

  • 问题list

    一、机器学习相关 1、 基本概念 2、 经典机器学习 特征工程 基础算法原理和推倒 Knn 支持向量机 朴素贝叶斯...

  • 支持向量机(SVM)入门理解与推导

    首先推荐:机器学习实战教程(八):支持向量机原理篇之手撕线性SVM机器学习实战教程(九):支持向量机实战篇之再撕非...

  • 支持向量机优化2020-03-19

    1、拉格朗日对偶问题求解 2、支持向量机优化求解 通过拉格朗日对偶问题求解得到支持向量机的最优解 导数代表的是变化...

  • svm

    支持向量机是建立在统计学习理论基础之上的新一代机器学习算法,支持向量机的优势主要体现在解决线性不可分问题,它通过引...

  • 机器学习实战:基于Scikit-Learn和TensorFlow

    机器学习实战:基于Scikit-Learn和TensorFlow---第五章笔记 支持向量机 支持向量机(简称SV...

  • 机器学习笔记(10):支持向量机

    本文来自之前在Udacity上自学机器学习的系列笔记。这是第10篇,介绍了监督学习中的支持向量机。 支持向量机支持...

  • 【机器学习基础】核支持向量机

    引言 在上一小节中,我们介绍了SVM的对偶形式,该形式也可以使用二次规划的方式来求解。这个对偶形式告诉我们SVM背...

  • [机器学习入门] 李宏毅机器学习笔记-23(Support Ve

    [机器学习入门] 李宏毅机器学习笔记-23(Support Vector Machine;支持向量机) Suppo...

网友评论

    本文标题:【机器学习基础】对偶支持向量机

    本文链接:https://www.haomeiwen.com/subject/denyfttx.html