1.svm定義
SVM從線性可分情況下的最優分類面發展而來 。最優分類面就是要求分類線不但能將兩類正確分開( 訓練錯誤率爲0),且使分類間隔最大。SVM 考慮尋找一個滿足分類要求的超平面,並且使訓練集中的點距離分類面儘可能的遠,也就是尋找一個分類面 使它兩側的空白區域(Margin) 最大 。如下圖所示:
左邊是一個分類超平面,但是不是最佳的,顯然右邊的分類超平面是最佳的,我們的目標就是要找到最佳的分類超平面。
2.間隔最大化
先給出一般的線性分類超平面的定義:
樣本集{xn,tn},n=1,2,...,N,xn∈Rd,tn∈{−1,1}
分類器:y(x)=wTx+b
tn={1,−1,y(xn)>0y(xn)<0
也就是如果預測值大於0則爲類別1,預測值小於0則爲類別-1。總之,有:
tny(xn)>0
樣本集任意一點xn 到分類面( 滿足 tny(xn)>0 ) 的距離爲:
tny(xn)||w||=tn(wTxn+b)||w||
這類似於點到直線的距離的求發。假設有一條直線:
x1+x2+2=0 ,我們求點
(xi,xj) 到該直線的舉例就是
xi+xj+2x21+x22√ ,只是上面的分母它用了一個向量的形式來表示所有的變量
(w1,w2,...,wm) 。
而SVM要找的分類平面是,使得離該平面最近的點(邊界點)離該平面的距離儘可能的遠,用數學公式表示就是:
argmaxw,b{1||w||minn[tn(wTx+b)]}
裏面表示距離分類面最近的點的距離,外面表示使得該距離最大。因爲距離平面最近的點對應的
tn(wT+b) 必定爲某個正數
k ,我們假設該值就是1,並不會影響參數
w,b 的取值。例如點
(2,1) 在
2x1+3x2−4 中的取值爲3,要使得該值爲1,只需要相應的
w,b 同時縮小爲原來的
13 ,即變爲
23x1+x2−43 ,但是表示的仍然是同一條直線。所以原問題就轉化爲:
argmaxw,b{1||w||}
並且上面假設了離分類面最近的點的距離爲1,那麼其他點對應的
tn(wT+b)>1 。
因爲問題轉化爲最大化||w||−1 ,等價於最小化12||w||2 ,則上述問題可以用下面的數學表達式來描述:
argminw,b12||w||2,s.t.tn(wTx+b)≥1
解這種含不等式約束的極值點要用拉格朗日乘子法,構造拉格朗日函數如下:
L(w,b,a)=12||w||2−∑n=1Nan(tn(wTx+b)−1),an>0
其中
an 是拉格朗日乘子,是一個正數。
對於上述的
L(w,b,a) ,對它的最大值進行討論。
1.當
tn(wTx+b)>=1 時:
顯然有
(wTx+b)−1≥0 ,又
an 是一個正數,所以
∑n=1Nan(tn(wTx+b)−1)≥0
所以:
L(w,b,a)=12||w||2−∑n=1Nan(tn(wTx+b)−1)=12||w||2−非負數
所以,很顯然這種情況下
maxL(w,b,a)=12||w||2
2.當tn(wTx+b)<1 時:
顯然有(wTx+b)−1≥0 ,又an 是一個正數,所以該累加項趨近於負無窮,即∑Nn=1an(tn(wTx+b)−1) 趨於−∞ ,所以maxL(w,b,a) 值是趨近於+∞
總結之後就是:
maxL(w,b,a)={12||w||2,+∞,tn(wTx+b)>=1tn(wTx+b)<1
又前面假設中已經有任意點都滿足
tn(wTx+b)>=1 ,所以
maxL(w,b,a) =
12||w||2 。
然後我們再回到原始的優化問題:
argminw,b12||w||2,s.t.tn(wTx+b)≥1
因爲
maxL(w,b,a) =
12||w||2 ,用
L(w,b,a) 替換
w ,所以該問題就等價於:
argminw,bmaxaL(w,b,a),s.t.tn(wTx+b)≥1
但是這樣不容易求解,我們需要考慮它的對偶問題。
3.拉格朗日對偶性
求下面極值:
minwf(w)
在等式約束下的極值問題
s.t.hi(w)=1,...,l
L(w,β)=f(w)+∑i=1lβihi(w)
在不等式約束下的極值問題
s.t.gi(w)≤0,i=1,...,k;hi(w)=1,...,l
L(w,α,β)=f(w)+∑i=1kαigi(w)+∑j=1lβjhj(w)
定義θP(w)=maxα,βL(w,α,β),s.t.αi≥0 ,只有滿足基本約束條件時,θP 纔會有最大值,基本約束條件就是上面不等式約束下的那些約束條件:
θP(w)={f(w),+∞,if w satisfies premal constraintsotherwise
原問題minwf(w) 轉化爲minwθP(w)=minwmaxα,βL(w,α,β) ,記爲p∗ ,直接求解不容易,需要轉向另一個問題θD(w)=minwL(w,α,β) ,先固定α,β ,然後再求拉格朗日函數關於w 的最小值,之後再求θD(w) 的最大值。即:
maxα,βθD(w)=maxα,βminwL(w,α,β)
該問題是原問題的對偶問題,記爲
d∗ ,很容易推出有下面大小關係:
d∗=maxα,βminwL(w,α,β)≤minwmaxα,βL(w,α,β)=p∗
即最小值的最大取值一定要小於等於最大值的最小取值。
爲了使得原問題的解和對偶問題的解相等,即p∗=d∗ ,必須使得它們的解(w∗,α∗,β∗) 滿足KKT條件,即:
∂∂wiL(w∗,α∗,β∗)=0,i=1,...,n
∂∂βiL(w∗,α∗,β∗)=0,i=1,...,l
α∗igi(w∗)=0,i=1,...,k稱爲KKT對偶互補條件
gi(w∗)≤0,i=1,...,k
a∗≥0,i=1,...,k
如果(w∗,α∗,β∗) 都滿足KKT條件,那麼它們就是原問題和對偶問題的解。
補充條件隱含如果 a∗>0 ,那麼gi(w∗)=0 , 即w 處於可行域的邊界上,是起作用的(Active) 約束 ,而位於可行域內部的點都是不起作用的約束,其 a∗=0 。
4.最優間隔分類器
接到第2小節,該優化問題:
argminw,bmaxaL(w,b,a),s.t.tn(wTx+b)≥1
轉化爲對偶問題就是:
argmaxaminw,bL(w,b,a),s.t.tn(wTx+b)≥1
該對偶問題表示,先求L(w,b,a) 關於參數w,b 的最小值,然後再求關於參數a 的最大值。關於參數w,b 的最小值,直接求導,找到極值點。
L(w,b,a)=12||w||2−∑Nn=1an(tn(wTx+b)−1),an≥0
∂∂wL(w,b,a)=0⇒w−∑n=1Nantnxn=0
∂∂bL(w,b,a)=0⇒∑n=1Nantn=0
將
w=∑Nn=1antnxn 和
∑Nn=1antn=0 帶入原
L(w,b,a) ,可以求得
L(w,b,a)=∑n=1Nan−12∑i=1N∑j=1NaiajtitjxTixj
s.t.ai≥0,∑Ni=1aiti=0
推導過程爲:
注意變換過的L(w,b,a) 式子中,xi 表示第i個樣本,是已知的;ti 表示第i個樣本對應的類別值,爲1或-1,也是已知的;所以該式子中僅有一個參數a 是未知的。所以進一步的優化就是找到某一組a ,讓L(w,b,a) 取得最大值,而只要找到一組a ,它能夠使得所有的樣本都滿足KKT條件時,便能夠取得最大值。具體的實現算法參考SMO算法。