上节课我们主要介绍了线性支持向量机(Linear Support Vector Machine)。Linear SVM的目标是找出最“胖”的分割线进行正负类的分离,方法是使用二次规划来求出分类线。本节课将从另一个方面入手,研究对偶支持向量机(Dual Support Vector Machine),尝试从新的角度计算得出分类线,推广SVM的应用范围。
大纲
Motivation of Dual SVM
1 Non-Linear Support Vector Machine Revisited
上一节提到过我们想用非线性的支持向量机,一方面使用支持向量机可以减少算法的VC维。另一方面使用特征转换,使模型更加复杂,减少Ein.非线性支持向量机同时结合了这两个方面。
我们注意到,在特征转换之后,求解QP问题在z域中的维度设为d̂ +1,如果模型越复杂,则d̂ +1越大,相应求解这个QP问题也变得很困难。当d̂ 无限大的时候,问题将会变得难以求解,那么有没有什么办法可以解决这个问题呢?一种方法就是使SVM的求解过程不依赖d̂ ,这就是我们本节课所要讨论的主要内容。
2 Todo
我们下文介绍一种方法,把原问题,即包含d̂ +1个变量和N个约束的QP问题,转化为对偶问题,即包含
3 Key Tool : Lagrange Multipliers
转化为对偶问题的关键工具是拉格朗日乘子
Regularization中,在最小化Ein的过程中,也添加了限制条件:wTw≤C。我们的求解方法是引入拉格朗日因子λ,将有条件的最小化问题转换为无条件的最小化问题:minEaug(w)=Ein(w)+λNwTw,最终转化为求解等价问题:
在Regularization问题中,我们把λ当做一个已知变量,这样问题就变得很好求解
在Dual SVM中,我们把\lambda视为未知变量,并且每一个约束对应一个λ
4 Starting Point:Constrained to Unconstrained
我们可以通过构造拉格朗日函数把约束的问题转化为非约束的问题
首先我们通过原问题构造拉格朗日函数
这里αn是拉格朗日乘子
然后我们构造非约束问题
为什么可以这样转化呢?
- 当(w.b)违反约束条件时,里面的最大化问题会趋向于正无穷
- 当(w,b)满足约束条件时,里面的最大化问题等价于12wTw
Lagrange Dual SVM
1 Lagrange Dual SVM
我们称
为原始问题
对于任意给定的α′,我们都有
对于最好的α′,我们有
所以我们导出来对偶问题
已知≥是一种弱对偶关系,在二次规划QP问题中,如果满足以下三个条件:
原始问题的目标函数是凸的
原始问题有可行解
原始问题的约束是线性约束
那么,上述不等式关系就变成强对偶关系,≥变成=,即一定存在满足条件的解(b,w,α),使等式左边和右边都成立,SVM的解就转化为右边的形式。即
2 Solve Lagrange Dual
我们先求解里面这个无约束问题,那么根据梯度下降算法思想:最小值位置满足梯度为零。首先,令L(b,w,α)对参数b的梯度为零:
我们将∑Nn=1αnyn=0带入对偶问题,并且化简,我们就消去了b
我们继续对里面的问题求最优,对w求导。我们可以导出
带入对偶问题,并化简,可得
3 KKT Optimality Conditions
原始问题和对偶问题的最优解(w,b,α),一定满足一下几个条件
- 原始问题可行,即yn(wTzn+b)≥1
- 对偶问题可行 αn>0
- 对偶问题的里面的问题最优 ∑ynαn=0,w=∑αnynzn
- 原始问题的里面的问题最优αn(1−yn(wTzn+b))=0
当我们解出了α之后,可以利用KKT条件,解出(b,w)
4 Dual Formulation of Support Vector Machine
因为目标函数中没有关于w的项,所以我们把关于w的约束去掉,其实已经隐含的目标函数中了。那么可以整理为以下形式
这就是标准的hard-margin SVM dual形式,它是一个包含N个变量,N+1个约束的QP问题
Solving Dual SVM
1 Dual SVM with QP Solver
我们可以利用现有的QP工具包求解上述的QP问题
2 Optimal (b,w)
我们可以通过KKT条件求解(b,w)
- w=∑αnynzn
- 通过原始里面最优问题的条件,我们可以推出,当αn>0时,我们可以求解b=yn−wTzn,其实,αn>0,对应的点称为支持向量,在分离边界上
Messages behind Dual SVM
1 Support Vector Revisited
回忆一下,上一节课中,我们把位于分类线边界上的点称为support vector(candidates)。本节课前面介绍了α>0的点一定落在分类线边界上,这些点称之为support vector(注意没有candidates)。也就是说分类线上的点不一定都是支持向量,但是满足α>0的点,一定是支持向量。
根据上一部分推导的w和b的计算公式,我们发现,w和b仅由SV即α>0的点决定,简化了计算量。这跟我们上一节课介绍的分类线只由“胖”边界上的点所决定是一个道理。也就是说,样本点可以分成两类:一类是support vectors,通过support vectors可以求得fattest hyperplane;另一类不是support vectors,对我们求得fattest hyperplane没有影响。
2 Representation of Fattest Hyperplane
我们发现,二者在形式上是相似的。wSVM由fattest hyperplane边界上所有的SV决定,wPLA由所有当前分类错误的点决定。wSVM和wPLA都是原始数据点ynzn的线性组合形式,是原始数据的代表。
3 Summary: Two Forms of Hard-Margin SVM
总结一下,本节课和上节课主要介绍了两种形式的SVM,一种是Primal Hard-Margin SVM,另一种是Dual Hard_Margin SVM。Primal Hard-Margin SVM有d̂ +1个参数,有N个限制条件。当d̂ +1很大时,求解困难。而Dual Hard_Margin SVM有N个参数,有N+1个限制条件。当数据量N很大时,也同样会增大计算难度。两种形式都能得到w和b,求得fattest hyperplane。通常情况下,如果N不是很大,一般使用Dual SVM来解决问题。
Are We Done Yet?
到了这里我们看起来已经消除了对d̂ 的影响
但是,Dual SVM是否真的消除了对d̂ 的依赖呢?其实并没有。因为在计算qn,m=ynymzTnzm的过程中,由z向量引入了d̂ ,实际上复杂度已经隐藏在计算过程中了。所以,我们的目标并没有实现。下一节课我们将继续研究探讨如何消除对d̂ 的依赖。