最佳化問題存在於生活中的方方面面,大到一個公司對某個區域的物資調配,小到個人旅遊的最佳路線,都涉及到最佳化方面的知識。最佳化問題通常分為凸最佳化問題與非凸最佳化問題。什麼是凸問題呢?如果一個問題的最優解是其全域性最優解,那麼我們就說這個問題是全域性最優解。很明顯,凸問題有個最大的優點就是:一旦我們找到一個區域性最優解,那麼我們不必再去尋找更優的解,因為這個解一定是全域性最優解。然而這種情況只存在於理想狀態,現實生活中的問題往往有很多限制條件,比如物資調配,事實上沒有那麼多資源去運輸物資,也就是說需要在有限的運輸條件下完成整個物資的調配,同時儘量節省成本(詳見transportation problem)。限制條件的引入有些時候會使得問題變成一個非凸的問題,這時候就需要想一些別的辦法來解決問題,比如利用拉格朗日對偶性將原問題轉化為對偶問題進行求解。
這裡將從三個部分展開討論,再結合一個例項給出具體的應用:
廣義拉格朗日函式
對偶問題
Slater條件與KKT條件
SVM
1、廣義拉格朗日函式
首先有這樣一個問題:
對於一個連續可微的函式
,求:
如果
是凸函式,可以很容易對
求導,令其為0,解得
,再代入原函式得到
就是我們所求的最優解;
如果是下面這樣的問題呢?
仍連續可微且為凸函式,求:
這個問題的求解就比上一個問題複雜許多了,上一個問題中x的取值是沒有限制,沒有約束的,所以我們可以直接求導,這一個問題中,x要滿足
且
,也就是說x的取值範圍受到了限制,有了約束,其定義域不再是原函式的定義域,所以直接求導是不可取的。為了求解這樣一個問題,我們可以想:怎樣把這個有約束的問題轉化為無約束的問題呢?如果能轉化成無約束的問題,x沒有取值限制,那麼我們又可以簡單求導就能求解了。大神拉格朗日想了一個十分巧妙的辦法,把約束條件整合到原來求解的函數里面,並且給每個約束條件分配一個權重因子(拉格朗日乘子),於是乎,拉格朗日函式誕生:
在定義拉格朗日函式的時候,並沒有對
的具體形式要求,也就是說對任意
都可以寫成這樣的形勢,因此稱它為廣義拉格朗日函式。
可以看到,這個函式
已經沒有關於x的限制條件
了,但是它和我們要求解的問題有什麼關聯呢?我們要求的是
對吧。別急,咱們一步一步來。
現在我們已經有了拉格朗日函式,要想辦法把拉格朗日函式與原問題對等起來,為此構建一個新的函式:
這個函式是關於變數x的函式,即對於每一個給定的x,去尋找合適的引數
,使得找到的
使拉格朗日函式的值最大。具體的,針對x的不同取值,我們觀察一下這個函式的結果。
1、如果x滿足約束條件,即
且
,則
,因為
,所以
;
2、如果x不滿足約束條件,即
或
,如果要maxmize函式,
可以取得無窮大,所以
。
綜合1和2,
所以
,這樣一來,我們成功的用拉格朗日函式表示了原始問題,並且將原始問題取值的限制條件去掉了,最終原始問題的表達形式如下:
有的時候,這個問題的求解仍然比較複雜,比如在約束多變數少的時候,直接求解會很麻煩,這個時候需要考慮對偶問題。
2、對偶問題
什麼是對偶呢?通俗的說就是
轉化成
。怎樣轉化呢?
定義一個新的函式
,易知對任意的
都有:
即對任意的
都有
,那麼:
我們稱
為原始問題(primal problem),
為對偶問題(當然要滿足條件
)。對偶問題的最優解總是小於等於原始問題的最優解,稱之為
弱對偶性
。得到這個性質有什麼用呢,就算求出對偶問題的最優解,仍然不知道原始問題的最優解對吧,所以我們要把不等號去掉。不等號去掉是有一定條件的,好在這個條件大部分情況下我們都能滿足,不然轉化為對偶問題也沒什麼意義了。
3、Slater條件和KKT條件
Slater條件如下:
這裡的
分別為對偶問題與原始問題的最優解。也就是說,原函式以及不等式約束的函式必須是凸函式,等式約束函式是線性函式,以及不等式條件是嚴格不等式,這樣對偶問題的最優解就是原始問題的最優解。取得最優解的
滿足下面的關係:
以上就是著名的KKT(Karush-Kuhn-Tucker)條件,用這個條件可以很方便的求解引數。其中第二個是KKT中非常重要的對偶互補條件。這個條件有兩層含義:1)如果
,意味著這個條件不是嚴格的約束條件,可以省略掉;2)如果
,意味著
,那麼最優解
的取值落在約束條件的邊界上,因此演算法可以直接從邊界尋找最優解,比如單純形演算法。
以上就是對於一個約束的最佳化問題轉換成無約束的對偶問題的全部過程,比較注重公式推導,下面用一個機器學習中十分常用的演算法SVM,看如何用對偶問題求原問題的解。
4、SVM
SVM示意圖如下:
分離超平面為
,支援向量之間的間隔為
,因此目標函式可以寫成:
其中
,轉化為最小問題:
寫出對應的拉格朗日函式:
由之前的推導可以寫出
原始問題
形式為:
其
對偶問題
為:
由於原問題中目標函式與約束條件均滿足slater條件,所以對偶問題的最優解就是原問題的最優解。我們把對偶問題對
求導然後等於0,可以求解
,對b求導等於0得到
,再將
帶入對偶問題的目標函式,得到:
其中
。
以上就是對偶問題最終的表達形式,可以看到明顯將原問題較為複雜的最佳化條件變成
這樣十分簡單的約束。同時,透過對偶形式,我們發現了另外一個有意思的現象,由於
,因此分離超平面
就等於
,這意味著分類邊界只依賴於輸入的例項與訓練樣本資料間的內積,因此對於線性不可分資料,我們可以將資料特徵對映到高維,然而不用具體的計算這種對映關係,只需要計算對映到高維空間後特徵向量的內積就行了,所以就有了核函式這種十分強大的技巧去隱式的計算對映到高維空間後向量的內積。這就是轉換成對偶問題後帶來的發現。
以上是對拉格朗日函式與對偶性的小結,凸最佳化這塊內容很多,以後有時間可以好好看一下Boyd的convex optimization這本書。
參考資料:
[1]。 李航,《統計學習方法》第二版