參考李航統計學習方法第7章。
支持向量機學習的基本想法是求解能夠正確劃分訓練數據集並且幾何間隔最大的分離超平面。
對訓練數據集找到幾何間隔最大的超平面意味着以充分大的確信度對訓練數據進行分類。也就是說,不僅將正負實例點分開,而且對最難分的實例點(離超平面最近的點)也有足夠大的確信度將它們分開。這樣的超平面應該對未知的新實例有很好的分類預測能力。
可以通過求解對偶問題而得到原始問題的解,進而確定分離超平面和決策函數。
①從原始問題到對偶問題
SVM的原始優化問題:
w,bmin21∣∣w∣∣2s.t.yi(w⋅xi+b)−1≥0,i=1,2,...,N
⇔化成常見的約束爲小於號的形式
w,bmin21∣∣w∣∣2s.t.−yi(w⋅xi+b)+1≤0,i=1,2,...,N
拉格朗日對偶Lagrange duality
-
原始約束最優化問題
x∈Rnminf(x)s.t. ci(x)≤0,i=1,2,...,k hj(x)=0,j=1,2,...,l
-
拉格朗日函數
L(x,α,β)=f(x)+i=1∑kαici(x)+j=1∑lβjhj(x)
其中αi≥0
-
關於約束參數α,β的最大化優化函數是f(x)的等價形式
θP(x)=α,β:αi⩾0maxL(x,α,β)
給定x,當存在某個i不滿足約束條件 ci(x)≤0時,αi→+∞使得θP(x)=+∞;當存在某個j不滿足約束條件 hj(x)=0時,βjhj(x)→+∞使得θP(x)=+∞;故只有同時滿足兩類約束條件,才能使得最優化L(x,α,β)得到最大值=f(x)
-
廣義拉格朗日函數的極小極大問題
xminθP(x)=xminα,β:αi⩾0maxL(x,α,β)
-
對偶問題/廣義拉格朗日函數的極大極小問題
α,β:αi⩾0maxθD(x)=α,β:αi⩾0maxxminL(x,α,β)
其中
θD(x)=xminL(x,α,β)
拉格朗日函數
L(w,b,α)=21∥w∥2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi
在svm中,根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題:
αmaxw,bminL(w,b,α)
②對偶問題的解的形式化簡
以下步驟先把原問題化成對偶問題(對偶變量的)的形式,然後通過解對偶問題,我們可以間接獲得原問題的解。
(1)求 w,bminL(w,b,α)
∇wL(w,b,α)∇bL(w,b,α)⇒=w−i=1∑Nαiyixi=0=−i=1∑Nαiyi=0w=i=1∑Nαiyixii=1∑Nαiyi=0
求的結果代回L的表達式有
w,bminL(w,b,α)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
(2)w,bminL(w,b,α)求對α的極大
αmax s.t. −21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
(3)再將對目標函數求極大轉換爲求極小,最終得到下面與原始優化問題等價的對偶最優化問題:
αmin s.t. 21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
所以存在w∗,α∗,b∗,使w∗, b∗是原始問題的解,α∗是對偶問題的解。
③從對偶問題的解到原問題的解
假設求得對偶最優化問題對α的解爲α∗,那麼我們可以由按照下式α∗求得原始最優化問題的解w∗,b∗:
w∗=∑i=1Nαi∗yixib∗=yj−∑i=1Nαi∗yi(xi⋅xj)
證明:
針對對偶問題和原始問題共同的最優解w∗,b∗,α∗,對目標函數
L(w,b,α)=21∥w∥2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi
(原問題)根據KKT條件,
∇wL(w∗,b∗,α∗)=w∗−∑i=1Nαi∗yixi=0∇bL(w∗,b∗,α∗)=−∑i=1Nαi∗yi=0αi∗(−yi(w∗⋅xi+b∗)+1)=0,i=1,2,⋯,N−yi(w∗⋅xi+b∗)+1⩽0,i=1,2,⋯,Nαi∗⩾0,i=1,2,⋯,N
由第一個式子得 w∗=∑i=1Nαi∗yixi
至少有一個(不是要求的,是求解問題的時候,發現至少一個非零纔是合理的,否則都爲0,根據第一個式子w也爲0)αj∗>0,任選其一,所以yj(w∗⋅xj+b∗)−1=0
注意到yj2=1,聯立上述二式得
b∗=yj1−w∗⋅xj=yj−∑i=1Nαi∗yixixj
證畢。
④從原問題的解到分離超平面和決策函數、支撐向量
進一步,分離超平面可以寫成
i=1∑Nαi∗yi(x⋅xi)+b∗=0
分類決策函數可以寫成
f(x)=sign(i=1∑Nαi∗yi(x⋅xi)+b∗)
可以看到,w∗,b∗只依賴於那些αj∗>0的樣本,這樣的對應的訓練樣本我們就稱之爲支撐向量。
對於支撐向量,
αi∗(−yi(w∗⋅xi+b∗)+1)=0,αi∗>0⇒yi(w∗⋅xi+b∗)+1=0⇒w∗⋅xi+b∗=1 or−1
即它一定在邊界上!
- SVM的分類結果僅依賴於支持向量,這也是它擁有極高運行效率的關鍵之一