【数学基础】拉格朗日对偶
繼介紹完拉格朗日乘子法與KKT條件之后,再來講講拉格朗日對偶變換。
為接下來徹底搞清楚SVM做好鋪墊。
在優化理論中,目標函數會有多種形式:如果目標函數和約束條件都為變量的線性函數, 稱該問題為線性規劃; 如果目標函數為二次函數, 約束條件為線性函數, 稱該最優化問題為二次規劃; 如果目標函數或者約束條件均為非線性函數, 稱該最優化問題為非線性規劃。每個線性規劃問題都有一個與之對應的對偶問題,對偶問題有非常良好的性質,以下列舉幾個:
- 對偶問題的對偶是原問題;
- 無論原始問題是否是凸的,對偶問題都是凸優化問題;
- 對偶問題可以給出原始問題一個下界;
- 當滿足一定條件時,原始問題與對偶問題的解是完全等價的;
比如下邊這個例子,雖然原始問題非凸,但是對偶問題是凸的:
在這邊多插一句嘴,關于非線性規劃的問題,在matlab中大概又四種算法:內點法,SQP序列二次規劃,信賴域反射算法(針對大規模問題),active set(有效集算法)。以后有時間會再學習和撰寫相關算法的。
在開始講拉格朗日對偶問題之前,翻出了久違的運籌學書本,先直觀的介紹一下對偶問題是什么,以及它怎么由原始問題獲得,以及一些簡單的性質。
原問題與對偶問題的關系:簡單了說,如果原問題是一個在一定的約束下,最大化一個企業的生產利潤。那么它的對偶問題就是希望用最小代價把這個企業的所有資源收購過來。
原問題與對偶問題簡單例子:
原問題:
max? ?
對偶問題:
min??
原問題與對偶問題變換規則:
原問題與對偶問題的性質:
性質的具體內容在這里不做過多的介紹,畢竟理解起來也不是那么的快的。就說一下名字,有興趣的可以自行baidu,在拉格朗日對偶變換中用到的性質會在后文中詳細介紹。
開始進入正題!
原始問題
首先給出不等式約束優化問題:
定義 Lagrangian 如下:
根據以上 Lagrangian 便可以得到一個重要結論:
這段話需要多讀幾遍,確保理解。后面半句中,如果等式條件不被滿足,且等式條件為負,那就讓乘子變成負無窮大,同樣會得到L無窮大,依舊會導致問題無解。故必須滿足約束條件。
對偶問題
上式與原優化目標等價,將之稱作原始問題 , 將原始問題的解記做,如此便把帶約束問題轉化為了無約束的原始問題,其實只是一個形式上的重寫,方便找到其對應的對偶問題,首先為對偶問題定義一個對偶函數(dual function)?:
直觀地,可以理解為最小的里最大的那個要比最大的中最小的那個要大。具體的證明過程如下:
這個性質便叫做弱對偶性(weak duality),對于所有優化問題都成立,即使原始問題非凸。
弱對偶性的正常定義是原問題如果為極大,則有原問題的任何可行解小于等于對偶問題。反之則大于等于。
這里不必太過糾結,都是定義上的東西。實在不行可以舉個例子來理解。
看完這些,應該可以接受上面的定義了吧。
這里還有兩個概念:?
之前提過無論原始問題是什么形式,對偶問題總是一個凸優化的問題,這樣對于那些難以求解的原始問題 (甚至是 NP 問題),均可以通過轉化為偶問題,通過優化這個對偶問題來得到原始問題的一個下界, 與弱對偶性相對應的有一個強對偶性(strong duality)?,強對偶即滿足:
強對偶是一個非常好的性質,因為在強對偶成立的情況下,可以通過求解對偶問題來得到原始問題的解,在 SVM 中就是這樣做的。當然并不是所有的對偶問題都滿足強對偶性 ,在 SVM 中是直接假定了強對偶性的成立,其實只要滿足一些條件,強對偶性是成立的,比如說?Slater 條件與KKT條件。
Slater 條件
也就是說如果原始問題是凸優化問題并且滿足 Slater 條件的話,那么強對偶性成立。需要注意的是,這里只是指出了強對偶成立的一種情況,并不是唯一的情況。例如,對于某些非凸優化的問題,強對偶也成立。SVM 中的原始問題 是一個凸優化問題(二次規劃也屬于凸優化問題),Slater 條件在 SVM 中指的是存在一個超平面可將數據分隔開,即數據是線性可分的。當數據不可分時,強對偶是不成立的,這個時候尋找分隔平面這個問題本身也就是沒有意義了,所以對于不可分的情況預先加個 kernel 就可以了。
KKT條件
?
?
?
當原始問題為凸優化問題的時候,其對偶問題的強對偶性與KKT條件是互為充要的。
當原始問題不為凸優化問題是,利用其對偶問題也可以得到原問題最優解的下界。
參考文章:
拉格朗日對偶
max min 與 min max 的差別
Max Min of function less than Min max of function
?
?
?
總結
以上是生活随笔為你收集整理的【数学基础】拉格朗日对偶的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数学基础】拉格朗日乘子法
- 下一篇: 【机器学习】SVM线性可分