上一講我們介紹了最優化問題的兩種形式,無約束的和等式約束條件下的,這一講,我們主要介紹不等式約束條件下的最優化問題,并介紹一下我們的KKT條件。
1、不等式約束條件
設目標函數f(x),不等式約束為g(x),有的教程還會添加上等式約束條件h(x)。此時的約束優化問題描述如下:
則我們定義不等式約束下的拉格朗日函數L,則L表達式為:
求解上面的問題,我們同樣可以使用等式約束條件的求解思路,對所有的參數進行求導,但是對于求解出的最優解,必須滿足KKT條件(Karush-Kuhn-Tucker ):
1)L(a, b, x)對x求導為零;
2)h(x) =0;
3)a*g(x) = 0;
求取這些等式之后就能得到候選最優值。其中第三個式子非常有趣,因為g(x)<=0,如果要滿足這個等式,必須a=0或者g(x)=0. 這是SVM的很多重要性質的來源,如支持向量的概念。
2、KKT條件推導
2.1 對偶問題轉換
接下來我們介紹一下KKT條件的推導:首先讓我們針對針對 λ 和 ν 最大化,令:
這里 λ?0 理解為向量 λ 的每一個元素都非負即可。這個函數 z(x) 對于滿足原始問題約束條件的那些 x 來說,其值等于 f0(x) ,這很容易驗證,因為滿足約束條件的 x 會使得 hi(x)=0 ,因此最后一項消掉了,而 fi(x)≤0 ,并且我們要求了 λ?0 ,因此 λifi(x)≤0 ,所以最大值只能在它們都取零的時候得到,這個時候就只剩下 f0(x) 了。因此,對于滿足約束條件的那些 x 來說,f0(x)=z(x) 。這樣一來,原始的帶約束的優化問題其實等價于如下的無約束優化問題:
到這里,我們成功把帶約束問題轉化為了無約束問題,不過這其實只是一個形式上的重寫,并沒有什么本質上的改變。我們只是把原來的問題通過 拉格朗日寫作了如下形式:
我們把上面的形式稱為原始問題,之前了解過SVM的同學肯定知道,如果我們把min和max對換一下位置,就得到這個問題的對偶問題:
2.2 對偶問題的最優解是原始問題最優解的下界
交換之后的對偶問題與原始問題的解并不相等,直觀的可以這么理解,別墅中最便宜的房子的價格也要比普通樓房的最貴的價格高。當然這是很不嚴格的說法,我們需要嚴格的證明這一點,和剛才的z(x)類似,我們再定一個公式:
g 有一個很好的性質就是它是 primal problem 的一個下界。換句話說,如果 primal problem 的最小值記為 p? ,那么對于所有的 λ?0 和 ν ,我們有:
證明過程如下圖:
上面這個性質叫做弱對偶性,對于所有的優化問題都成立。既然有弱對偶性,那必然有強對偶性,前對偶性指的原始問題和對偶問題的最優解嚴格相等,即:
在強對偶性成立的情況下,我們就可以通過對原始問題的對偶問題的求解來得到最優解(SVM就是這么做的),但并不是所有情況下強對偶性都成立,它會有一定的前提。
2.3 Slater 條件
如果你不是專門研究規劃問題的同學,咱們還是直接看結論吧。首先我們介紹一下Slater 條件,Slater 條件是指存在嚴格滿足約束條件的點 x ,這里的“嚴格”是指 fi(x)≤0 中的“小于或等于號”要嚴格取到“小于號”,亦即,存在 x 滿足:
我們有:如果原始問題是凸優化問題(很慶幸,SVM的規劃問題是一個凸優化問題)的并且滿足 Slater 條件的話,那么 strong duality 成立。需要注意的是,這里只是指出了 strong duality 成立的一種情況,而并不是唯一情況,不過研究SVM的話 ,知道這種情況足夠了。
2.4 KKT條件
讓我們回到 duality 的話題。來看看 strong duality 成立的時候的一些性質。
假設 x? 和 (λ?,ν?) 分別是 primal problem 和 dual problem 的極值點,相應的極值為 p? 和 d? ,首先 p?=d? ,此時我們可以得到:
因為左右兩端其實是相等的,所以上面的小于等于號可以替換為等于號,我們一共替換了兩次,這兩次替換我們都能得到一個重要的性質:
再將其他一些顯而易見的條件寫到一起,就是傳說中的 KKT (Karush-Kuhn-Tucker) 條件:
任何滿足強對偶性(不一定要求是通過 Slater 條件得到,也不一定要求是凸優化問題)的問題都滿足 KKT 條件,換句話說,這是 強對偶性 的一個必要條件。不過,當原始問題是凸優化問題的時候(當然還要求一應函數是可微的,否則 KKT 條件的最后一個式子就沒有意義了),KKT 就可以升級為充要條件。換句話說,如果 原始問題是一個凸優化問題,且存在 x? 和 (λ?,ν?) 滿足 KKT 條件,那么它們分別是 原始問題 和 對偶問題 的極值點并且強對偶性成立。