十大機器學習算法之支持向量機(二)

3、拉格朗日對偶

先拋開上面的二次規劃問題,先來看看存在等式約束的極值問題求法,比如下面的最優化問題:
這裏寫圖片描述
目標函數是f(w),下面是等式約束。通常解法是引入拉格朗日算子,這裏使用β來表示算子,得到拉格朗日公式爲
這裏寫圖片描述
L是等式約束的個數。
然後分別對w和β求偏導,使得偏導數等於0,然後解出w和β。至於爲什麼引入拉格朗日算子可以求出極值,原因是f(w)的dw變化方向受其他不等式的約束,dw的變化方向與f(w)的梯度垂直時才能獲得極值,而且在極值處,f(w)的梯度與其他等式梯度的線性組合平行,因此他們之間存在線性關係。(參考《最優化與KKT條件》)
然後我們探討有不等式約束的極值問題求法,問題如下:
這裏寫圖片描述
我們定義一般化的拉格朗日公式
這裏寫圖片描述
這裏的這裏寫圖片描述這裏寫圖片描述都是拉格朗日算子。如果按這個公式求解,會出現問題,因爲我們求解的是最小值,而這裏的這裏寫圖片描述已經不是0了,我們可以將這裏寫圖片描述調整成很大的正值,來使最後的函數結果是負無窮。因此我們需要排除這種情況,我們定義下面的函數:
這裏寫圖片描述
這裏的P代表primal。假設這裏寫圖片描述或者這裏寫圖片描述,那麼我們總是可以調整這裏寫圖片描述這裏寫圖片描述來使得這裏寫圖片描述有最大值爲正無窮。而只有g和h滿足約束時,這裏寫圖片描述爲f(w)。這個函數的精妙之處在於這裏寫圖片描述,而且求極大值。
因此我們可以寫作
這裏寫圖片描述
這樣我們原來要求的min f(w)可以轉換成求這裏寫圖片描述了。
這裏寫圖片描述
我們使用這裏寫圖片描述來表示這裏寫圖片描述。如果直接求解,首先面對的是兩個參數,而這裏寫圖片描述也是不等式約束,然後再在w上求最小值。這個過程不容易做,那麼怎麼辦呢?
我們先考慮另外一個問題這裏寫圖片描述
D的意思是對偶,這裏寫圖片描述將問題轉化爲先求拉格朗日關於w的最小值,將α和β看作是固定值。之後在這裏寫圖片描述求最大值的話:
這裏寫圖片描述
這個問題是原問題的對偶問題,相對於原問題只是更換了min和max的順序,而一般更換順序的結果是Max Min(X) <= MinMax(X)。然而在這裏兩者相等。用d*來表示對偶問題如下:
這裏寫圖片描述
下面解釋在什麼條件下兩者會等價。假設f和g都是凸函數,h是仿射的(affine,there exists 這裏寫圖片描述,這裏寫圖片描述 ,so that 這裏寫圖片描述)。並且存在w使得對於所有的i,這裏寫圖片描述。在這種假設下,一定存在這裏寫圖片描述,這裏寫圖片描述,這裏寫圖片描述使得這裏寫圖片描述是原問題的解,這裏寫圖片描述,這裏寫圖片描述是對偶問題的解。還有這裏寫圖片描述另外,這裏寫圖片描述,這裏寫圖片描述,這裏寫圖片描述滿足庫恩-塔克條件(Karush-Kuhn-Tucker, KKT condition),該條件如下:
這裏寫圖片描述
所以如果這裏寫圖片描述,這裏寫圖片描述,這裏寫圖片描述滿足了庫恩-塔克條件,那麼他們就是原問題和對偶問題的解。讓我們再次審視公式(5),這個條件稱作是KKT dual complementarity條件。這個條件隱含了如果這裏寫圖片描述>0,那麼這裏寫圖片描述。也就是說,這裏寫圖片描述時,w處於可行域的邊界上,這時纔是起作用的約束。而其他位於可行域內部(這裏寫圖片描述)點都是不起作用的約束,其這裏寫圖片描述=0。這個KKT雙重補足條件會用來解釋支持向量和SMO的收斂測試。
這部分內容思路比較凌亂,還需要先研究下《非線性規劃》中的約束極值問題,再回頭看看。KKT的總體思想是將極值會在可行域邊界上取得,也就是不等式爲0或等式約束裏取得,而最優下降方向一般是這些等式的線性組合,其中每個元素要麼是不等式爲0的約束,要麼是等式約束。對於在可行域邊界內的點,對最優解不起作用,因此前面的係數爲0。

4、 最優間隔分類器(optimal margin classifier)

重新回到SVM的優化問題:
這裏寫圖片描述
我們將約束條件改寫爲:
這裏寫圖片描述
從KKT條件得知只有函數間隔是1(離超平面最近的點)的線性約束式前面的係數這裏寫圖片描述>0,也就是說這些約束式這裏寫圖片描述,對於其他的不在線上的點(這裏寫圖片描述),極值不會在他們所在的範圍內取得,因此前面的係數這裏寫圖片描述=0.注意每一個約束式實際就是一個訓練樣本。
看下面的圖:
這裏寫圖片描述
實線是最大間隔超平面,假設×號的是正例,圓圈的是負例。在虛線上的點就是函數間隔是1的點,那麼他們前面的係數這裏寫圖片描述>0,其他點都是這裏寫圖片描述=0。這三個點稱作支持向量。構造拉格朗日函數如下:
這裏寫圖片描述
注意到這裏只有這裏寫圖片描述沒有這裏寫圖片描述是因爲原問題中沒有等式約束,只有不等式約束。
下面我們按照對偶問題的求解步驟來一步步進行,
這裏寫圖片描述
首先求解這裏寫圖片描述的最小值,對於固定的這裏寫圖片描述這裏寫圖片描述的最小值只與w和b有關。對w和b分別求偏導數。
這裏寫圖片描述
這裏寫圖片描述
並得到
這裏寫圖片描述
將上式帶回到拉格朗日函數中得到,此時得到的是該函數的最小值(目標函數是凸函數)
代入後,化簡過程如下:
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
最後得到
這裏寫圖片描述
由於最後一項是0,因此簡化爲
這裏寫圖片描述
這裏我們將向量內積這裏寫圖片描述表示爲這裏寫圖片描述
此時的拉格朗日函數只包含了變量這裏寫圖片描述。然而我們求出了這裏寫圖片描述才能得到w和b。
接着是極大化的過程這裏寫圖片描述
clip_image078[6]
前面提到過對偶問題和原問題滿足的幾個條件,首先由於目標函數和線性約束都是凸函數,而且這裏不存在等式約束h。存在w使得對於所有的i,這裏寫圖片描述。因此,一定存在這裏寫圖片描述,這裏寫圖片描述使得這裏寫圖片描述是原問題的解,這裏寫圖片描述是對偶問題的解。在這裏,求這裏寫圖片描述就是求這裏寫圖片描述了。
如果求出了這裏寫圖片描述,根據這裏寫圖片描述即可求出w(也是這裏寫圖片描述,原問題的解)。然後
這裏寫圖片描述
即可求出b。即離超平面最近的正的函數間隔要等於離超平面最近的負的函數間隔。
關於上面的對偶問題如何求解,將留給下一篇中的SMO算法來闡明。
這裏考慮另外一個問題,由於前面求解中得到
這裏寫圖片描述
我們通篇考慮問題的出發點是這裏寫圖片描述,根據求解得到的這裏寫圖片描述,我們代入前式得到
這裏寫圖片描述
也就是說,以前新來的要分類的樣本首先根據w和b做一次線性運算,然後看求的結果是大於0還是小於0,來判斷正例還是負例。現在有了clip_image010[61],我們不需要求出w,只需將新來的樣本和訓練數據中的所有樣本做內積和即可。那有人會說,與前面所有的樣本都做運算是不是太耗時了?其實不然,我們從KKT條件中得到,只有支持向量的這裏寫圖片描述=0,其他情況這裏寫圖片描述>0。因此,我們只需求新來的樣本和支持向量的內積,然後運算即可。這種寫法爲下面要提到的核函數(kernel)做了很好的鋪墊。後面還有幾篇關於SVM的,大家期待吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章