機器學習:線性SVM轉換拉格朗日對偶函數和決策函數

拉格朗日函數轉換爲拉格朗日對偶函數

Why need

求極值,最簡單的方法還是對參數求導後讓一階導數等於0。先來試試對拉格朗日函數求極值,在這裏對參數向量和截距分別求偏導並且讓他們等於0。這個求導過程比較簡單:
在這裏插入圖片描述
在這裏插入圖片描述
由於兩個求偏導結果中都帶有未知的拉格朗日乘數αi,因此還是無法求解出ω和b,必須想出一種方法來求解拉格朗日乘數αi。幸運地是,拉格朗日函數可以被轉換成一種只帶αi,不帶ω和b的形式,這種形式被稱爲拉格朗日對偶函數。在對偶函數下,就可以求解出拉格朗日乘數,
然後帶入到上面推導出的(1)和(2)式中來求解ω和b。

Why can

對於任何一個拉格朗日函數L(x,α)=f(x)+i=1qαihi(x)L(x,α)=f(x)+\sum_{i=1}^qα_ih_i(x),都存在一個與它對應的對偶函數g(α),只帶有拉格朗日乘數α作爲唯一參數。如果L(x,α)的最優解存在並可以表示爲minxL(x,α),並且對偶函數的最優解也存在並可以表示爲maxαg(α),則可以定義對偶差異(dual gap),即拉格朗日函數的最優解與其對偶函數的最優解之間的差值
Δ=minxL(x,α)maxαg(α)\Delta=min_xL(x,α)-max_αg(α)
如果Δ=0,則稱L(x,α)與其對偶函數g(α)之間存在強對偶關係(strong duality property),可以通過求解其對偶函數的最優解來替代求解原始函數的最優解。強對偶關係存在的條件:這個拉格朗日函數必須滿足KKT(Karush-Kuhn-Tucker)條件(在優化理論中,KKT條件是非線性規劃(nonlinear programming)最佳解的必要條件):
在這裏插入圖片描述
這裏的條件其實都比較好理解。首先是所有參數的一階導數必須爲0,然後約束條件中的函數本身需要小於等於0,拉格朗日乘數需要大於等於0,以及約束條件乘以拉格朗日乘數必須等於0,即不同的取值下,兩者之中至少有一個爲0。當所有限制都被滿足,則拉格朗日函數L(x,α)的最優解與其對偶函數的最優解相等,就可以將原始的最優化問題轉換成爲對偶函數的最優化問題。
不難注意到,對於損失函數L(ω,b,α)而言,KKT條件都是可以操作的。如果能夠人爲讓KKT條件全部成立,就可以求解出L(ω,b,α)的對偶函數來解出α。
之前我們已經讓拉格朗日函數上對參數w和b的求導爲0,得到了式子:
i=1Nαiyixi=ω1\sum_{i=1}^Nα_iy_i\boldsymbol{x_i=ω}\quad (1)
i=1Nαiyi=02\sum_{i=1}^Nα_iy_i=0\quad (2)
並且在函數中,通過先求解最大值再求解最小值的方法使得函數天然滿足:
(yi(ωxi+b)1)0(3)αi0(4)-(y_i(\boldsymbol{ω\cdot x_i+b})-1) \leqslant 0\quad (3),\quad α_i\geqslant 0 \quad (4)
所以接下來,我們只需要再滿足一個條件:
αi(yi(ωxi+b)1)=0(5)α_i(y_i(\boldsymbol{ω\cdot x_i+b})-1) =0\quad (5)
這個條件其實很容易滿足,能夠讓yi(ωxi+b)1=0y_i(\boldsymbol{ω\cdot x_i+b})-1 =0的就是落在虛線的超平面上的樣本點,即支持向量。所有不是支持向量的樣本點則必須滿足αi=0。滿足這個式子說明,求解的參數ω和b以及求解的超平面的存在,只與支持向量相關,與其他樣本點都無關。現在KKT的五個條件都得到了滿足,就可以使用L(ω,b,α)的對偶函數來求解α了。

How

首先讓拉格朗日函數對參數ω和b求導後的結果爲0,本質是在探索拉格朗日函數的最小值。然後:
在這裏插入圖片描述
代入式(1)和式(2)有:
在這裏插入圖片描述
再次帶入式(1)則有:
在這裏插入圖片描述
令這兩個ω源於不同的特徵矩陣和標籤:
在這裏插入圖片描述
將矩陣相乘轉換爲內積形式:
在這裏插入圖片描述
函數Ld就是對偶函數(拉格朗日函數對參數ω和b求導後的結果爲0(即:L(ω,b,α)最小值)對應的函數)。對所有存在對偶函數的拉格朗日函數我們有對偶差異如下表示:
Δ=minxL(x,α)maxαg(α)\Delta=min_xL(x,α)-max_αg(α)
則對於L(ω,b,α)和Ld,我們則有:
Δ=minω,bmaxαi0L(ω,b,α)maxαi0Ld\Delta=min_{ω,b}max_{α_i\geqslant 0}L(ω,b,α)-max_{α_i\geqslant 0}L_d
推導Ld的第一步是對L(ω,b,α)求偏導並讓偏導數都爲0,所以求解對偶函數的過程其實是在求解L(ω,b,α)的最小值,所以公式又可以寫成:
Δ=minω,bmaxαi0L(ω,b,α)maxαi0minω,bL(ω,b,α)\Delta=min_{ω,b}max_{α_i\geqslant 0}L(ω,b,α)-max_{α_i\geqslant 0}min_{ω,b}L(ω,b,α)
這就是對偶函數與原始函數的轉化過程的由來。如此,只需要求解對偶函數的最大值,就可以求出α。最終,目標函數變化爲:
在這裏插入圖片描述

決策函數

到了這一步,我們就需要使用梯度下降,序列最小優化(SMO,Sequential minimal optimization)或者二次規劃(QP,quadratic programming)來求解α,數學的難度又進一步上升。考慮到這一過程對數學的要求已經遠遠超出了我們需要的程度,更是遠遠超出我們在使用sklearn時需要掌握的程度,如何求解對偶函數中的在這裏就不做講解了。
但需要知道,一旦求得了α值,我們就可以使用求導後得到的(1)式求解ω,並可以使用(1)式和決策邊界的表達式結合,得到下面的式子來求解b:
i=1Nαiyixix+b=0\sum_{i=1}^Nα_iy_i\boldsymbol x_i*x+b=0
當求得特徵向量ω和b,就得到了決策邊界的表達式,也就可以利用決策邊界和其有關的超平面來進行分類了,決策函數就可以被寫作:
在這裏插入圖片描述
其中xtest是任意測試樣本, sign(h)是h>0時返回1,h<0時返回-1的符號函數。到這裏,完成了對SVM的第二層理解的大部分內容,瞭解了線性SVM的四種相關函數:損失函數的初始形態,拉格朗日函數,拉格朗日對偶函數以及最後的決策函數。熟練掌握以上的推導過程,對理解支持向量機會有極大的助益,也是對數學能力的一種完善。

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