拉格朗日乘數法和KKT條件的直觀解釋

拉格朗日乘數法和KKT條件的直觀解釋

標籤(空格分隔): 機器學習

linbin 2018-05-10


Abstract

在SVM的推導中,最優化問題是其中的核心,這裏我們簡單介紹下最優化問題,特別是帶有約束的最優化問題,並且引入拉格朗日乘數法和廣義拉格朗日乘數法,介紹並且直觀解釋了KKT條件,用於解決帶約束的最優化問題。

最優化問題

我們在高中,包括在高數中都會經常遇到求解一個函數的最小值,最大值之類的問題,這類問題就是屬於最優化問題。比如給出下列一個不帶有約束的最優化問題:
(1.1)
其中的

3x2+4x+5
我們稱爲目標函數(objective function)。這樣的問題,直接利用羅爾定理(Rolle’s theorem)求出其鞍點,又因爲其爲凸函數而且可行域是整個R,求出的鞍點便是最值點,這個是對於無約束最優化問題的解題套路。
如果問題帶有約束條件,那麼就變得不一樣了,如:
(1.2)

因爲此時的約束條件是仿射函數(affine function),所以可以利用換元法將x表示爲y的函數,從而將目標函數變爲無約束的形式,然後利用羅爾定理便可以求出最值點了。
然而如果約束條件一般化爲g(x,y)=c,那麼x就不一定可以用其他變量表示出來了,這個時候就要利用拉格朗日乘數法(Lagrange multipliers )了。

拉格朗日乘數法(Lagrange multipliers)

我們先一般化一個二元最優化問題爲(2.1)形式:

(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
也不會有任何影響,我們仍然用λi表示,因此式子(2.8)變成:

這就是多約束拉格朗日乘數法的函數表達形式

一個計算例子

讓我們舉一個單約束的拉格朗日乘數法的計算例子,例子來源於引用3。
給出一個最大化任務:

圖像如:

廣義拉格朗日乘數法(Generalized Lagrange multipliers)



爲了接下來的討論方便,我們將N設爲3,並且去掉等式約束,這樣我們的最小化問題的廣義拉格朗日函數就變成了:

繪製出來的示意圖如下所示:

引用

  1. 拉格朗日乘子法如何理解? 知乎
  2. 《統計學習方法》 豆瓣
  3. 《【直觀詳解】拉格朗日乘法和KKT條件》 微信公衆號
  4. 《解密SVM系列(一):關於拉格朗日乘子法和KKT條件》 CSDN
  5. Karush–Kuhn–Tucker conditions wikipedia
  6. 拉格朗日乘數法和KKT條件的直觀解釋
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章