这两天,我翻开沉压已久的学习笔记,看到了当初总结的SVM学习心得,为了避免不小心弄丢了,就在这里重新记录一下吧,希望对初学机器学习理论并热爱公式推导的朋友有所帮助。SVM作为一种经典的机器学习算法,在处理“小样本”问题时效果非常显著。本文主要分成三大部分,第一部分介绍一些基本知识,这些知识在SVM的公式推导过程中会用到,所以最先介绍。第二部分针对数据集线性可分的情况,推导SVM的原问题和对偶问题表达式。第三部分针对数据集线性不可分的情况,推导SVM的原问题和对偶问题表达式。
基础知识
带约束优化问题的求解方法
带约束优化问题的一般式如下,
m i n f ( w ) subject to g i ( w ) ≤ 0 , i = 1 , . . . , m h i ( w ) = 0 , i = 1 , . . . , n min f(w) \\ \textit{subject to}\ \ g_{i}(w)\leq0, i=1,...,m\\ \ \ \ h_{i}(w)=0, i=1,...,n minf(w)subject to gi(w)≤0,i=1,...,m hi(w)=0,i=1,...,n
若约束条件比较复杂,则很难求解,因此我们希望把带约束的优化问题转化为无约束的优化问题。定义Lagrangian式如下,
L ( w , α , β ) = f ( w ) + ∑ i = 1 m α i × g i ( w ) + ∑ i = 1 n β i × h i ( w ) L(w, \alpha ,\beta )=f(w)+\sum_{i=1}^{m}\alpha_{i}\times g_{i}(w)+\sum_{i=1}^{n}\beta_{i}\times h_{i}(w) L(w,α,β)=f(w)+i=1∑mαi×gi(w)+i=1∑nβi×hi(w)
新的无约束表达式为 θ p ( w ) = max α , β , α i ≥ 0 L ( w , α , β ) \theta_{p}(w)=\max_{\alpha, \beta, \alpha_{i}\geq 0}L(w, \alpha, \beta) θp(w)=maxα,β,αi≥0L(w,α,β),因为
θ p ( w ) = { f ( w ) w subject to "primal constraint" + ∝ otherwise \theta_{p}(w)=\begin{cases} f(w) & \text{ w subject to "primal constraint"} \\ +\propto & \text{otherwise} \end{cases} θp(w)={
f(w)+∝ w subject to "primal constraint"otherwise
所以,对带约束原问题的求解等价于 min w θ p ( w ) = min w max α , β , α i ≥ 0 L ( w , α , β ) \min_{w}\theta_{p}(w)=\min_{w}\max_{\alpha, \beta, \alpha_{i}\geq 0}L(w, \alpha, \beta) minwθp(w)=minwmaxα,β,αi≥0L(w,α,β),实质上,此时的约束隐藏在了目标函数中。
对偶互补约束条件
“slate”条件:指严格满足不等式约束条件的点w,即 g i ( w ) < 0 , ( i = 1 , . . . , m ) g_{i}(w)<0,\ \ (i=1,...,m) gi(w)<0, (i=1,...,m),对于SVM问题,亦即要求“数据是可分的”,当数据不可分时,强对偶(strong duality)不成立。
“strong duality”:原问题是convex的,并且满足slater条件,此时 m i n m a x L ≥ m a x m i n L min\ max L\geq max \ min L min maxL≥max minL的等号成立。这里需要注意一下,QP是凸优化问题的一种特殊情况。
当“strong duality”关系成立时,一定存在 w ∗ , α ∗ , β ∗ w^{*}, \alpha^{*}, \beta^{*} w∗,α∗,β∗,使得 w ∗ w^{*} w∗是原问题的解, α ∗ , β ∗ \alpha^{*}, \beta^{*} α∗,β∗是对偶问题的解。记primal, dual分别为原问题和对偶问题, p r i m a l ∗ , d u a l ∗ primal^{*}, dual^{*} primal∗,dual∗分别为原问题和对偶问题的最优解,那么有 p r i m a l ∗ = d u a l ∗ = L ( w ∗ , α ∗ , β ∗ ) primal^{*}=dual^{*}=L(w^{*}, \alpha^{*}, \beta^{*}) primal∗=dual∗=L(w∗,α∗,β∗)成立,并且 w ∗ , α ∗ , β ∗ w^{*}, \alpha^{*}, \beta^{*} w∗,α∗,β∗满足KKT条件,
{ α i ∗ ≥ 0 i = 1 , . . . , m g i ( w ∗ ) ≤ 0 i = 1 , . . . , m α i ∗ × g i ( w ∗ ) = 0 i = 1 , . . . , m ( d u a l c o m p l e m e n t a r y c o n d i t i o n ) ∂ L ( w ∗ , α ∗ , β ∗ ) w i = 0 i = 1 , . . . , d ∂ L ( w ∗ , α ∗ , β ∗ ) β i = 0 i = 1 , . . . , n