標籤(空格分隔): 機器學習
linbin 2018-05-10
在svm的推導中,最優化問題是其中的核心,這裡我們簡單介紹下最優化問題,特別是帶有約束的最優化問題,並且引入拉格朗日乘數法和廣義拉格朗日乘數法,介紹並且直觀解釋了kkt條件,用於解決帶約束的最優化問題。
我們在高中,包括在高數中都會經常遇到求解乙個函式的最小值,最大值之類的問題,這類問題就是屬於最優化問題。比如給出下列乙個不帶有約束的最優化問題:
其中的3x2
+4x+
5 3x2
+4x+
5我們稱為目標函式(objective function)。這樣的問題,直接利用羅爾定理(rolle』s theorem)求出其鞍點,又因為其為凸函式而且可行域是整個r,求出的鞍點便是最值點,這個是對於無約束最優化問題的解題套路。
如果問題帶有約束條件,那麼就變得不一樣了,如:
因為此時的約束條件是仿射函式(affine function),所以可以利用換元法將x表示為y的函式,從而將目標函式變為無約束的形式,然後利用羅爾定理便可以求出最值點了。
然而如果約束條件一般化為g(x,y)=c,那麼x就不一定可以用其他變數表示出來了,這個時候就要利用拉格朗日乘數法(lagrange multipliers )了。
我們先一般化乙個二元最優化問題為(2.1)形式:
將目標函式f(x,y)和等式約束條件g(x,y)=c畫出來就如下圖所示:
其中的f(x,y)虛線為等高線,而紅線為g(x,y)=c這個約束函式曲線與f(x,y)的交點的連線在x−y平面的對映。其中,假設有d3>d2>d1, d1點為最小值點(最優值點)。從直觀上可以發現,在g(x,y)=c與f(x,y)的非最優化交點a,b,c,d上,其f(x,y)和g(x,y)的法線方向並不是共線的,注意,這個相當關鍵,因為如果不是共線的,說明g(x,y)=c與f(x,y)的交點中,還存在可以取得更小值的點存在。對於a點來說,b點就是更為小的存在。因此,我們從直覺上推論出只有當g(x,y)=c與f(x,y)的法線共線時,才是最小值點的候選點(鞍點)。推論到多元變數的問題的時候,法線便用梯度表示。於是,我們有原問題取得最優值的必要條件:
(2.2)其中的λ表示兩個梯度共線。
可以簡單的變形為
讓我們去掉梯度運算元,得出
這個時候λ取個負號也是不影響的,所以式子(2.4)通常寫作:
看!我們得出了我們高數中經常見到的等式約束下的拉格朗日乘數函式的表示方法。
以上,我們討論的都是單約束的拉格朗日乘數法,當存在多個等式約束時(其實不等式約束也是一樣的),我們進行一些推廣。先一般化乙個二元多約束最小化問題:
對於每個目標函式和約束配對,我們有:
將上式相加有:
定義多約束的拉格朗日函式為:
因為λi是常數,表示共線的含義而已,所以乘上乙個常數1n
1
n也不會有任何影響,我們仍然用λ
i表示,因此式子(2.8)變成:
這就是多約束拉格朗日乘數法的函式表達形式。
讓我們舉乙個單約束的拉格朗日乘數法的計算例子,例子**於引用3。
給出乙個最大化任務:
影象如:
為了接下來的討論方便,我們將n設為3,並且去掉等式約束,這樣我們的最小化問題的廣義拉格朗日函式就變成了:
繪製出來的示意圖如下所示:
拉格朗日乘子法如何理解? 知乎
《統計學習方法》 豆瓣
《解密svm系列(一):關於拉格朗日乘子法和kkt條件》 csdn
karush–kuhn–tucker conditions wikipedia
拉格朗日乘數法和kkt條件的直觀解釋
拉格朗日乘數法及KKT條件 通俗理解
在數學最優問題中,拉格朗日乘數法 以數學家約瑟夫 路易斯 拉格朗日命名 是一種尋找變數受乙個或多個條件所限制的多元函式的極值的方法。這種方法將乙個有n 個變數與k 個約束條件的最優化問題轉換為乙個有n k個變數的方程組的極值問題,其變數不受任何約束。這種方法引入了一種新的標量未知數,即拉格朗日乘數 ...
拉格朗日乘數法
在求取有約束條件的優化問題時,拉格朗日乘子法 lagrange multiplier 和kkt條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值 如果含有不等式約束,可以應用kkt條件去求取。當然,這兩個方法求得的結果只是必要條件,只有當是凸函式的情況下,才能保...
拉格朗日乘數法
在求取有約束條件的優化問題時,拉格朗日乘子法 lagrange multiplier 和kkt條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值 如果含有不等式約束,可以應用kkt條件去求取。當然,這兩個方法求得的結果只是必要條件,只有當是凸函式的情況下,才能保...