如何通俗地講解對偶問題?尤其是拉格朗日對偶lagrangian duality?
能不能給我講講對偶問題,kkt條件?為什麼存在duality gap?滿足kkt條件又能說明什麼?
我們能不能在知乎上開個optimization workshop,這樣應該比live要強。我先邀請了幾位專業人士,希望你們能不吝賜教。先謝謝了。也請大家幫忙多邀請人來回答。
我的提問也都是拋磚引玉,任何關於優化的理解,都可以寫下來,我不勝感激了。我相信很多知乎上的朋友,都會從你們的答案中得到幫助,謝謝了。
謝謝題主 @孤雲獨去閑 邀請。前段時間就看到這個問題了,現在看到很多答主都答得不錯,那我給一個基於column geometry(翻譯成列幾何?)的解釋吧。拉格朗日對偶有很多種理解和推導的方式,這一種是我比較喜歡的,幾何和代數的方法結合,也比較有intuition。關於KKT條件的幾何解釋很多答主都提了,那個也是比較經典的,我這個回答就先不涉及了。
我們考慮優化問題如下,記作問題(P)。(知乎編輯器似乎出了點問題,函數括弧圓括弧顯示不了,我就用方括弧了)
大家都知道(P)的拉格朗日對偶問題(D)寫作
其中的函數L[x,u]就是我們熟知的拉格朗日函數。
這邊先給一個小note,實際上原問題和拉格朗日對偶的代數形式就是一組max-min關係式(只有max和min的順序換一下)。具體說明如下。
引理:(P)也可以寫成 .
證明是很容易的,留作練習。那麼這裡其實我們看到所謂的拉格朗日對偶從代數上看很簡單,就是研究這一對max-min優化問題之間的關係。
好了,之前都是預熱。接下來我們來看如何通過column geometry來理解這對關係式。這一段首先介紹一些符號和定義。首先注意到給定一個 ,實際上(P)可以用一個在 里的向量來描述:
.
這樣我們把問題轉換到 定義的空間上,定義集合
.
然後我們引入「支撐」(support)的概念,我們稱一個超平面 是 的下支撐(lower support)僅當
直觀的意思就是指 在 的下方。下面給一張圖片加以解釋(黃色部分就是 ,那條線就代表超平面 )。
注意到這裡我們圖上看到 畫的是一個凸集(convex set),我們指出在凸優化的一般情況下這是一個必然的事實。
引理:如果 是凸集, 都是 上定義的凸函數,那麼 是一個凸集。
證明也很容易,利用凸函數epigraph的性質就能立即得出,這裡從略。
好了,準備工作到這裡,我們給出對偶問題(D)的column geometry解釋:拉格朗日對偶問題(D),在空間 中的幾何含義是:找到 的下支撐超平面 中與z軸交點最 「高」(即 最大)的那個超平面。注意到在 的情況下( 是二維的)我們可以知道 是直線 的斜率, 則是截距。這個intuition到高維情況也是成立的。
把上面提到的幾何含義用代數表示出來則是:
注意到我們其實只需要考慮 的情況,因為如果 存在一個coordinate是負的,那麼我們總可以找到一個無限大的 (注意 的定義,這樣的 永遠是存在的)使得 ,所以以上問題也等於
=
=
=
我們於是發現這就是問題(D)。
這就是拉格朗日對偶基於column geometry的幾何解釋。 順便說一下,如果我們考慮一個更特殊的情況, 都是線性函數,即線性規劃問題,column geometry會給出更多很有意思的幾何解釋,這邊就留給感興趣的同學自己去琢磨了。
版權聲明:這裡的內容(包括那張圖)基本都來自於Robert M. Freund和Jorge R. Vera合寫的Fundamentals of Nonlinear Optimization: a Constructive Approach的草稿(這書應該還沒出版)。
--------------------------------------------------------------------------------------------------------------------------
我的另一個相關回答:(討論更抽象的對偶優化問題,不過核心思路都是一致的,對偶的核心思想就是要找原問題的線性majorization)
線性空間的對偶空間和優化里的拉格朗日對偶有什麼關係? - 知乎拋磚引玉, 說一下(Lagrangian) duality是怎麼來的。先考慮下面的nonlinear programming:
(1)
現在的問題是如何找到問題(1) 的最優值的一個最好的下界? 首先我們知道若方程組
(2)
無解,則是問題(1)的一個下界。注意到方程組(2)有解可以推出對於任意的, 以下方程
(3)
有解。因此根據逆否命題,方程組(2)無解的充分條件是存在,讓方程(3)無解。方程(3)無解的充要條件是
(4)
因為我們要找最好的下界,所以這個時候的和 應該取
(5)
由此引入了dual problem. 證明邏輯是根據式(5)取和, 則(4)成立,從而導出(3)無解,然後可以知道(2)無解,因此是問題(1)的下界
最近也在看關於優化的東西,題主在問題補充里問了好多,我暫且以二維空間 舉例,從簡單的無約束的優化(0梯度條件),到等式約束優化(拉格朗日條件),再到不等式約束優化(KKT條件),寫點對於優化問題自己能寫的理解,權當做拋磚引玉。
1. 無約束的優化問題
其中,
注意我在圖裡畫了等高線。此時 在局部極小值點 處的梯度必然為0,比較容易理解。這個梯度為零的條件是局部極小值點的必要條件。這樣,優化問題的求解變成了對該必要條件解方程組。
2.帶等式約束的優化問題
,
s.t.
.
與無約束的問題不同。我們所要求的極小值點被限制在曲線 上,我們將 稱為可行域, 解只能在這個可行域里取。如下圖所示,曲線 (黑色實曲線)經過無約束極小值點(黑點)附近。那麼滿足約束的極小值點應該與黑點儘可能近。我們將 的等高線不斷放大,直到與曲線 相切,切點即為所求。相切是關鍵,是極小值點的必要條件。
把 沿著曲線方向參數化為 , 。必有 在紅點 的梯度方向與 的切線方向垂直,即
另外,由於 為常數,那麼也有複合函數 , 因此 在 t 的導數必為0,根據鏈式法則有
(內積為0,說明 與 垂直)
因為 垂直於 , 垂直於 ,所以 與 共線,有
若為最小值點就必須滿足上式和問題中的約束 ,這個必要條件就叫作拉格朗日條件,為了好記,定義一個拉格朗日函數
令其偏導為0,正好就得到拉格朗日條件。
如此,帶等式約束的優化問題轉化為了無約束的優化問題,只需要對拉格朗日條件解方程組即可。這裡λ就是拉格朗日乘子,有多少個等式約束就有多少個拉格朗日乘子。
3. 帶不等式約束的優化問題
,
s.t.
.
當只有一個不等式起作用時, 如我們把問題2里的等式約束 改為 ,如下圖所示,可行域變成了陰影部分,最小值點還是切點,情況和問題2完全一樣,只需要把不等號當做等號去求解即可。
當兩個不等式起作用時,那麼問題就來了
,
s.t.
,
.
如下圖,當 的等高線慢慢擴大時,等高線與可行域(陰影部分)第一次相遇的點是個頂點,2個不等式同時起作用了。滿足約束的最小值點從原來的黑點位置(切點)移動到了紅點位置,現在跟哪條約束函數曲線都不相切。這時候就需要用到kkt條件了。這裡的「條件」是指:某一個點它如果是最小值點的話,就必須滿足這個條件(在含不等式約束的優化問題里)。這是個必要條件,前面說的也全部是必要條件。
這個問題的解 應滿足的KKT(卡羅需-庫恩-塔克)條件為:
1. , ;
2. ;
3. .
其中,μ叫KKT乘子,有多少個不等式約束就有多少個KKT乘子。加上問題3中的約束部分,就是完整版的KKT條件。對於有等式的情況,你把其中一個不等式約束換成等式,可行域變成了半條曲線,最小值點還是那個紅點,和下面這種情況是一樣的。
下面看看KKT條件是怎麼來的。在問題2中我們知道了約束曲線的梯度方向與曲線垂直,我在上圖畫出了兩條約束曲線的負梯度方向(綠色箭頭)和等高線的梯度方向(紅色箭頭)。如果這個頂點是滿足約束的最小值點,那麼該點處(紅點),紅色箭頭一定在兩個綠色箭頭之間( 方向一定指向 減小的方向,即 的那一邊)。即 能被 和 線性表出( ),且係數必非負( , )。也就是kkt條件中的1和2
1. , ;
2. .
有時候,有的不等式約束實際上不起作用,如下面這個優化問題
,
s.t.
;
;
.
如下圖的 是不起作用的
對於最小值點 ,三個不等式約束的不同在於
(起作用)
(起作用)
(不起作用, 最小值點不在 上)
這時,這個問題的KKT條件1,2成了:
1. , , ;
2. .
條件2中的 這一項讓我們很苦惱啊, 的綠色箭頭跟我們的紅色箭頭沒關係。要是能令 就好了。加上條件3:
3.
恰好能使 。由於 , ,所以前兩項等於0,第三項 , 在條件3的作用下使得 . 正好滿足需求。如果再多幾項不起作用的不等式約束,比如 。要使
就只能有
同樣地, , , 只能出現 或者 和 異號的情況。但注意條件1限制了 , ,所以只能有 。因此不管加了幾個不起作用的不等式約束,條件2都能完美實現:目標函數 的梯度 被起作用的不等式約束函數 的負梯度( )線性表出且係數 全部非負(紅色箭頭被綠色箭頭夾在中間)。這樣,優化問題的求解就變成對所有KKT條件解方程組。
如果再定義一個拉格朗日函數
令它對x的偏導為0,就是KKT條件中的條件2了。
最後說明一下,以上所有都是局部極小值點的必要條件。據此求得的解不一定是局部極小值點(更別提全局了),原因是上圖中我所畫的等高線也許根本就不閉合,也就是說我們一直想要靠近的等高線中間的黑點壓根就是個鞍點或者近似鞍點!
------------------------2017.6.6--------------------------
順帶一提,李航老師《統計學習方法》第一版105頁式(7.27)中的第1,2行就是這裡的KKT條件2(我這裡把偏置b算在x里了),第3行是KKT條件3,第4行是問題中的不等式約束,第5行是KKT條件1。
這裡筆者用博弈論裡面的直觀結論解釋問題,拋磚引玉。
1. 構造Lagrangian:
對於下面的優化問題,
我們構造一個新問題,
非常易證,這個問題等同於原問題。那我們把它叫做primal problem。
2. 博弈論中的重要結論:
2.1 同時我們有Min-Max 不等式
2.2 和Minimax Theroem:當 對 為凸函數, 對 為凸函數(即對 凹 謝謝 @又紅又正 指正)時候,上述不等式取得等號。
2.3 下面我來解釋一下這兩個結論:
不等式:如果 是一個零和遊戲中的payoff函數, 目的是減小此函數值(函數值對他來說是成本), 想要增大此函數值(函數值對他來說是利潤),則上述不等式中左邊為 的「保底利潤」(最壞情況下,他也一定至少能獲得這麼多利潤),右邊為 的「保底損失」(最壞情況下他損失也就這麼多)。那麼顯而易見,上述不等式成立,不然與「保底」的概念矛盾。
Minimax定理:即說明了此函數存在saddle point,博弈雙方有了一個納什均衡(誰也無法單方面地獲得好處)。
3. 定義dual problem:
定義dual problem:
由2.中的結論, 天然對 凹,那麼只要 與 對 凸,那麼 就對 凸對 凹,於是等式成立。這個結論即是convex problem最顯著最重要的特點。
如果等式不成立,那麼差值就叫dual gap。
希望能幫助到您。
Dual problem 跟primal problem 可以看成本來是兩個問題,因為優化的順序不同而會得出兩個不一定相關的值(但是 還是成立的,直觀理解的話高中經常用的二次函數就可以了)。
兩者的差值就是duality gap,描述了我用另一種方式刻畫問題的時候所造成的誤差,強對偶的情況下最優值沒有差別。
在最優點處將會滿足KKT 條件,但是KKT條件本身並不需要問題滿足強對偶。
關於KKT條件什麼時候不滿足,有一種另外的理解是他要求各個函數的梯度張成足夠大的空間(因為KKT的最後一條本質上是一個Ax=0的問題),希望有助於理解。
建議題主閱讀Boyd Convex Optimization Chap. 5.5
換一個問題來看對偶問題吧
大家知道變分問題吧
把極小化函數變成極小化一個泛函
然後可以寫出來他的最優性條件就是Euler-Lagrange方程
我們儘可能把他化成一個Hamilton ODE(Hamilton-Jacobi方程的特徵線)
這裡我們要構造一個函數
這裡suppose
於是對於H我們有hamliton ODE寫出來就是E-L方程了
奇妙的是這裡的H 和L 就是凸優化里的對偶的關係
L=H*,H=L*
具體可以看evans
還有一個很好的幾何解釋
過兩天有空我來寫寫在
《凸優化理論》[MIT那本啊]這本書里詳細介紹了
最近還是有很多pde和優化關係的文章的都很不錯
Yu Mao, Bin Dong and Stanley Osher, A nonlinear PDE-based method for sparse deconvolution, Multiscale Modeling and Simulation: A SIAM Interdisciplinary Journal, 8(3), 965-976, 2010.
A variational perspective on accelerated methods in optimization. A. Wibisono, A. Wilson, and M. I. Jordan. Proceedings of the National Academy of Sciences, 133, E7351-E7358, 2016. [ArXiv version]
W. Su, S. Boyd and E. J. Candès. A differential equation for modeling Nesterov"s accelerated gradient method: theory and insights. Journal of Machine Learning Research 17(153), 1--43. (This is the long form or journal version of the NIPS paper.) (pdf)
Pratik Chaudhari, Adam Oberman, Stanley Osher, Stefano Soatto, and Guillame Carlier, Deep Relaxation: Partial Differential Equations for Optimizing Deep Neural Networks, April 2017
我提了workshop的想法,我自己不寫點什麼實在是有點偷懶。不過我很不擅長優化,我的背景更多是統計,概率,分布的那些東西。
在Andrew Ng 教授講解支持向量機(svm)的那篇教案(note)里,他講過svm的primal和dual的形式,我覺得是我見過的最好的svm教案。下面是鏈接:
教案
http://cs229.stanford.edu/notes/cs229-notes3.pdf視頻
http://m.open.163.com/movie?plid=M6SGF6VB4rid=M6SGJVMC6請一定要看英文的那個版本,有個中文的,比較淺,沒談到duality。一些粗淺的個人理解:有時候求原始問題是複雜的,尤其當原始問題是一個nonconvex problem時,這個時候我們便把原始問題轉化為它的對偶問題。
相比直接計算原始問題,求解對偶問題會為我們的計算帶來相當的便利,比如樓主提到的SVM引入對偶形式便是一個很好的例子。
求出對偶問題的解至少能為原始問題找到一個下界(Weak duality always holds),如果運氣好的話(滿足KKT),此時求出的便是原始問題的最優解。最近也在研究支持向量機,這學期也正在學最優化理論,上周剛剛總結了一下KKT條件並寫了一篇分享,算是一個拋磚引玉吧~
淺談最優化問題的KKT條件 https://zhuanlan.zhihu.com/p/26514613
最近再看線性規劃,涉及到對偶,恰好前段時間在學習SVM機的時候也有對偶理論,兩者對照起來學習,感覺稍微有點融會貫通了。
自身學在習的時候一直力求直觀易於理解,能夠透過數學公式看透背後的原理,希望寫出來也能通俗易懂。
線性規劃中的對偶理論:
原問題:
對偶問題:
其中,A,b,c,x,y均為向量。
用拉格朗日數乘法把原問題轉換成無約束問題: 好了,重點來了,所謂對偶就是把max和min的順序換一下,
第一次用Tex,排版不是很熟練,蛋疼ing。。。
我們把最原始的s表示成了max,min的形式,好了,現在需要做的工作就是把min,max形式的對偶問題反退回s那種形式,即從 其實只是意思是一樣的,只是表達方式不一樣。 令 代入可得
原問題中,
若滿足約束條件
則可以推出如下結論:
在加上約束條件寫成最開始的形式就是:
至此,線性規劃中的對偶問題就證明完畢。
以上證明對於數學專業的同學來說可能不夠嚴謹,對於原理講解應該已經夠了。
拋開線性規劃的形式,通過尋找原問題的最小上界(最大下界)來近似原問題解的思想對其他形式的凸優化也同樣適用。
主要參考來源:
支持向量機:Duality
感興趣的可以參考那篇,作者其他文章也很不錯
陳寶林的《最優化理論》中有一章專門講對偶問題
cost/price of constraint.
根據Rockafellar的一篇綜述論文,Lagrange對偶的思想源於von Neumann的博弈論,min_x max_y L(x,y) 轉換為 max_y min_x L(x,y)。要徹底搞明白對偶理論還得看一下Rockafellar的凸分析那本書。
誰能給解釋下對偶可行與原始可行之間的關係?
partial dirivative
哎,好好學習好好看~ 表示我可能對通俗的理解有問題
推薦閱讀:
※數學基礎不好怎麼補?
※華爾街 Quant 的工作環境是怎樣的,強度是怎麼樣的?
※數學高手在解題時,是形成了一種難以用語言表達的感覺,還是僅僅搜尋套用以前解過的題的思路?
※從數列0,1,3,6,10,15......中以可重複取方式取出4個數字,它們的和能組成所有自然數?
※數學的魅力是什麼?