上节课我们主要介绍了线性支持向量机(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̂ 的依赖。