上节课把原始的优化问题改写成二次规划的形式,通过软件包来求解参数。这节课通过研究原问题的对偶问题,在一定条件下,对偶问题的最优解和解参数和原问题一致,继而得到原问题的解。

Motivation of Dual SVM

  对于非线性SVM,通常是用线性变换将变量从x域(非线性)转换到z域(线性)中(e.g.[x,x2,x3][z1,z2,z3])。此时,z域是线性的,可以使用上节课的线性SVM求解最优解(这话听着怪怪的,我说下我的理解吧)。回忆基石的课,拟合回归问题时。可以通过增加x高次方项增加模型的复杂度,继而减小Ein。同样的,对于SVM问题,也可以通过这样的方式减少Ein,并且SVM的large-margin能够减少有效的VC Dimension,相当于加了一个惩罚项。但是做变换的时候特征维度往往会变得很大,由dd^,此时求解QP问题会比较复杂。对偶问题在求解时,不依赖d^,这就是提出对偶问题的原因。(后面会讲到对偶问题依赖的是训练集大小,一般来说都是样本数量大于特征数量吧,奇怪了。这个疑惑,暂且留着吧–据说和核函数升维有关系,升维之后特征会变得特别多)。
  经过变换之后,QP问题的形式如下:
机器学习技法---(Week2)Dual Support Vector Machine

前面说过SVM相当于加了个惩罚项,基石的正则化课程讲到通过拉格朗日乘子法求解,同样的dual SVM问题也可以通过引入拉格朗日乘子的方式,把原问题转化为非条件问题。
机器学习技法---(Week2)Dual Support Vector Machine

那么如何讲条件问题转化成非条件问题呢?拉格朗日乘子法熟悉的话,应该很直观:
机器学习技法---(Week2)Dual Support Vector Machine

下面利用拉格朗日函数构造非条件问题:
机器学习技法---(Week2)Dual Support Vector Machine

为什么这样构造之后,两个问题就等价了呢?可以这样理解:
max L(b,w,α)记为f,转化之后的问题就是在(w,b)的参数空间中找一个使得f最小的值
对于f,是要找到一个α使得L(b,w,α)最大。观察拉格朗日函数,显然如果原问题的约束条件不满足,则1yn(wTzn+b)>0f趋于正无穷,那么min时,这样的参数取不到最优解。所以先对L取关于α的极小,再取关于w,b的极大和原问题是等价的。

Lagrange Dual SVM

  上一节我们找到了原问题的等价问题,已知αn>0,那么对于固定的ααn0,一定有如下不等式成立:
机器学习技法---(Week2)Dual Support Vector Machine

上式显然成立,对不等式两边同时取Max,不等式同样成立:
机器学习技法---(Week2)Dual Support Vector Machine

上式表明对等价问题的min和max做了一个对调,满足这样的关系叫做Lagrange dual problem。称为弱对偶关系,=称为强对偶关系。在二次规划QP问题中,强对偶关系需要满足下面三个条件:
1. 函数是凸的(convex primal)
2. 函数有可行解(feasible primal)
3. 条件是线性的(linear constraints)
即存在满足条件的解(b,w,α)使得等式左右都成立,这样就可以通过直接解对偶问题求原问题。
关于拉格朗日对偶性,李航的《统计学习方法》有较为完整的介绍。并且强对偶要求的是约束和目标函数都是凸函数,有点差异的。此处存疑!
  这里原问题满足这三个条件,所以我们可以直接求对偶问题,经过推导对偶问题转化为无条件形式:
机器学习技法---(Week2)Dual Support Vector Machine

先求上式括号里的部分,即对拉格朗日函数求最小值,那么必要条件是梯度为0。首先,令L(b,w,α)对参数b的偏导为0:

Lb=0n=1Nαnyn=0

把上述求偏导得到的等式带入并化简:
机器学习技法---(Week2)Dual Support Vector Machine

同样的对w求偏导:

Lw=0wn=1Nαnynzn=0w=n=1Nαnynzn

把上述求偏导得到的等式带入并化简:
机器学习技法---(Week2)Dual Support Vector Machine

这样,表达式里面消去了w,问题进一步简化。这时候的条件有3个:

  • all αn>0
  • n=1Nαnyn=0
  • w=n=1Nαnynzn

这时候我们只需要计算满足上述三个条件时,12n=1Nαnynzn2+n=1Nαn的最小值以及对应的αn
最终形式如下:
机器学习技法---(Week2)Dual Support Vector Machine

其中满足最佳化条件称为Karush-Kuhn-Tucker(KKT):
机器学习技法---(Week2)Dual Support Vector Machine

这里有个逻辑问题没搞明白,就SVM问题而言,是因为原问题和对偶问题满足一些条件所以他们有相同的最优解,然后一定会满足KKT条件,不知道是不是这个逻辑,回头再查查资料吧。

Solveing Dual SVM

  进一步简化,把MAX问题转化为Min问题,把部门条件放到约束中:
机器学习技法---(Week2)Dual Support Vector Machine

w=n=1Nαnynzn这个条件暂时不考虑,因为目标函数中没有出现w。然后改写成QP问题的形式,用软件包求解即可。
机器学习技法---(Week2)Dual Support Vector Machine

这里没有看懂,主要αn0拆到约束里怎么表达,存疑吧~
计算Q矩阵时,如果样本量特别大,计算量也会很大。所以计算Q时会采用一些特殊的方法。
得到αn之后,根据KKT条件就可以计算wb
首先w=n=1Nαn
其次根据αn(1yn(wTzn+b))=0得到b=ynwTzn
机器学习技法---(Week2)Dual Support Vector Machine

计算b时,如果αn>0成立,那么yn(wTzn+b)=1成立,那说明这个点正好在分解线上,即fat boundary上,这些点就是support vector。

Messages behind Dual SVM

前面讲到如果αn>0成立,那么yn(wTzn+b)=1成立,那说明这个点就是支持向量,但是分类线上的点不一定都是支持向量,但满足αn>0的点一定都是支持向量。
机器学习技法---(Week2)Dual Support Vector Machine

比较PLA和SVM的公式:
机器学习技法---(Week2)Dual Support Vector Machine

两者形式上十分相似,但是wSVM由fattest hyperplane边界上所有的SV决定(非支持向量点对应α为0),wPLA由所有当前分类错误的点决定。wSVMwPLA都是原始数据点yn,zn的线性组合形式,是原始数据的代表。

Summary

  比较原始问题和对偶问题:
机器学习技法---(Week2)Dual Support Vector Machine

对偶问题的引进是为了避免计算中对d^的依赖,约束由d^个条件转换成N个约束条件。但是计算Q矩阵时候已经引入了。下节课将研究探讨如何消除对d^的依赖。

存疑

有两个疑问,记录下:
1. 对偶问题QP问题的改写
2. KKT条件的逻辑,是因为对偶问题和原问题满足三个条件,所以有共同的最优解,继而满足KKT条件?

Ref

[1] 《机器学习技法》第二周课程
[2] https://blog.csdn.net/red_stone1/article/details/73822768#reply

                                2018-03-28 于杭州

相关文章: