拉格朗日對偶


本文承接上一篇 約束優化方法之拉格朗日乘子法與KKT條件,將詳解一些拉格朗日對偶的內容。都是一些在優化理論中比較簡單的問題或者一些特例,復雜的沒見過,但是簡單的剛接觸都感覺如洪水猛獸一般,所以當真是學海無涯。

在優化理論中,目標函數 $f(x)$ 會有多種形式:如果目標函數和約束條件都為變量 $x$ 的線性函數, 稱該問題為線性規划; 如果目標函數為二次函數, 約束條件為線性函數, 稱該最優化問題為二次規划; 如果目標函數或者約束條件均為非線性函數, 稱該最優化問題為非線性規划。每個線性規划問題都有一個與之對應的對偶問題,對偶問題有非常良好的性質,以下列舉幾個:

  • 對偶問題的對偶是原問題;
  • 無論原始問題是否是凸的,對偶問題都是凸優化問題;
  • 對偶問題可以給出原始問題一個下界;
  • 當滿足一定條件時,原始問題與對偶問題的解是完全等價的;

比如下邊這個例子,雖然原始問題非凸,但是對偶問題是凸的:

\begin{aligned}
&\min_x \ \left ( x^4-50x^2+100x  \right ) \\
&\ s.t.\ \ \ x \ge 4.5
\end{aligned}

1

原始問題

開始步入正題,首先給出不等式約束優化問題:

\begin{aligned}
&\min_x \  f(x)  \\
&s.t.  \ \ \ h_i(x) = 0 , \  i = 1,2,...,m \ \\
& \ \ \ \ \ \ \ \ \ \   g_j(x) \le 0, \  j = 1,2,...,n
\end{aligned}

定義 Lagrangian 如下:

\[ L(x,\alpha,\beta) =f(x) + \sum_{i=1}^m \alpha_i h_i(x) + \sum_{j=1}^n\beta_jg_j(x) \]

根據以上 Lagrangian 便可以得到一個重要結論:

\[ f(x) =\max_{\alpha \beta; \beta_i\ge 0} L(x,\alpha,\beta) > L(x,\alpha,\beta) \tag{*}\]

(*) 式很容易驗證,因為滿足約束條件的 $x$ 會使得 $h_i(x)=0$ ,因此第二項消掉了;而 $g_j(x) \le 0$ ,並且使得 $\beta_j \ge 0$,因此會有 $\beta_j g_j(x) \le 0$ ,所以最大值只能在它們都取零的時候得到,這個時候就只剩下 $f(x)$ 了。反之如果有任意一個約束條件不滿足,則只需令其相應的乘子 $\rightarrow +\infty$ ,則會得到 $L(x,\alpha,\beta) \rightarrow +\infty $,這樣將導致問題無解,因此必須滿足約束條件。經過這樣一轉變,約束都融合到了一起而得到如下的無約束的優化目標:

\[\min_x f(x)  = \min_x \max_{\alpha,\beta; \beta_i\ge 0} L(x,\alpha,\beta) \]

對偶問題

上式與原優化目標等價,將之稱作原始問題 , 將原始問題的解記做 $p^*$,如此便把帶約束問題轉化為了無約束的原始問題,其實只是一個形式上的重寫,方便找到其對應的對偶問題,首先為對偶問題定義一個對偶函數(dual function)

\[ D(\alpha,\beta) = \min_x  L(x,\alpha,\beta) \]

有了對偶函數就可給出對偶問題了,與原始問題的形式非常類似,只是把 min 和 max 交換了一下:

\[\max_{\alpha ,\beta; \beta_i\ge 0} \min_x  L(x,\alpha,\beta) \]

然后定義對偶問題的最優解即關於 $\alpha \  \beta$ 的函數:

\[ d^* = \max_{\alpha,\beta; \beta_i\ge 0} D(\alpha,\beta)\]

對偶問題和原始問題的最優解並不相等,而是滿足的如下關系:

\[d^* \le p^* \]

直觀地,可以理解為最小的里最大的那個要比最大的中最小的那個要大。具體的證明過程如下:

證明在這里,首先這里的約束要全部滿足,對偶問題與原始問題的關系如下:

\[ D(\alpha,\beta) =\min_x  L(x,\alpha,\beta) \le L(x,\alpha,\beta) \le \max_{\alpha,\beta,\beta_i \ge 0}L(x,\alpha,\beta) =f(x)\]

即 $D(\alpha,\beta) \le f(x)$,所以自然而然可得:

\[d^*= \max_{\alpha,\beta;\beta_i \ge 0} D(\alpha,\beta) \le \min_x f(x) =p^* \]

即現在通過對偶性,為原始問題引入一個下界,$d^* \le p^*$ .

這個性質便叫做弱對偶性(weak duality),對於所有優化問題都成立,即使原始問題非凸。這里還有兩個概念: $f(x) – D(\alpha,\beta)$ 叫做對偶間隔(duality gap), $p^* –d^*$ 叫做最優對偶間隔(optimal duality gap)。

之前提過無論原始問題是什么形式,對偶問題總是一個凸優化的問題,這樣對於那些難以求解的原始問題 (甚至是 NP 問題),均可以通過轉化為偶問題,通過優化這個對偶問題來得到原始問題的一個下界, 與弱對偶性相對應的有一個強對偶性(strong duality) ,強對偶即滿足:

\[d^* = p^*\]

強對偶是一個非常好的性質,因為在強對偶成立的情況下,可以通過求解對偶問題來得到原始問題的解,在 SVM 中就是這樣做的。當然並不是所有的對偶問題都滿足強對偶性 ,在 SVM 中是直接假定了強對偶性的成立,其實只要滿足一些條件,強對偶性是成立的,比如說 Slater 條件與KKT條件。

Slater 條件

若原始問題為凸優化問題,且存在嚴格滿足約束條件的點 $x$ ,這里的“嚴格”是指 $g_i(x)≤0$ 中的“$\le$”嚴格取到“$<$”,即存在 $x$ 滿足 $g_i(x)<0$ ,$i = 1,2,…,n$ ,則存在 $x^*,\alpha^* ,\beta^*$ 使得 $x^*$ 是原始問題的解, $\alpha^* ,\beta^*$ 是對偶問題的解,且滿足:

\[p^* = d^* = L(x^*,\alpha^* ,\beta^*)\]

也就是說如果原始問題是凸優化問題並且滿足 Slater 條件的話,那么強對偶性成立。需要注意的是,這里只是指出了強對偶成立的一種情況,並不是唯一的情況。例如,對於某些非凸優化的問題,強對偶也成立。SVM 中的原始問題 是一個凸優化問題(二次規划也屬於凸優化問題),Slater 條件在 SVM 中指的是存在一個超平面可將數據分隔開,即數據是線性可分的。當數據不可分時,強對偶是不成立的,這個時候尋找分隔平面這個問題本身也就是沒有意義了,所以對於不可分的情況預先加個 kernel 就可以了。

KKT條件

假設 $x^*$ 與 $\alpha^*,\beta^*$ 分別是原始問題(並不一定是凸的)和對偶問題的最優解,且滿足強對偶性,則相應的極值的關系滿足:

\begin{aligned}
f(x^*) &= d^* = p^* =D(\alpha^*,\beta^*)  \\
&=\min_x f(x)+ \sum_{i = 1}^m \alpha_i^*h_i(x) + \sum_{j=1}^n\beta_j^*g_j(x) \\
& \le f(x^*)+ \sum_{i = 1}^m \alpha_i^*h_i(x^*) + \sum_{j=1}^n\beta_j^*g_j(x^*) \\
&\le f(x^*)
\end{aligned}

這里第一個不等式成立是因為 $x^*$ 為 $L(x,\alpha^*,\beta^*)$ 的一個極大值點,最后一個不等式成立是因為 $h_i(x^*) = 0$ ,且 $g_j(x^*) \le 0 ,\beta_j \ge 0$,($\beta_j \ge 0$ 是之前 (*) 式的約束條件)因此這一系列的式子里的不等號全部都可以換成等號。根據公式還可以得到兩個結論:

1)第一個不等式成立是因為 $x^*$ 為 $L(x,\alpha^*,\beta^*)$ 的一個極大值點,由此可得:

\[\nabla_{x^*} L(x,\alpha^*,\beta^*) = 0\]

2)第二個不等式其實就是之前的 (*)  式,$\beta_j^*g_j(x^*)$ 都是非正的,所以這里有:

\[\beta_j^* g_j(x^*)=0,  \  i=1,2,…,m\]

也就是說如果 $\beta_j^*>0$,那么必定有 $g_j(x^*)=0$ ;反過來,如果 $g_j(x^*)<0$ 那么可以得到 $\beta_j^*=0$ ,即:

\[\left \{ \begin{aligned}\beta^*_j >0 \Rightarrow g^*_j(x) = 0 \\ g^*_j(x) < 0 \Rightarrow\beta_j^*=0\end{aligned}\right .\]

這些條件都似曾相識,把它們寫到一起,哎?不就是傳說中的 KKT (Karush-Kuhn-Tucker) 條件么:

\begin{align}  \nabla_x L(x,\alpha,\beta) &= 0   \\ \beta_jg_j(x) &= 0  , \ j=1,2,...,n\\ h_i(x)&= 0 , \ i=1,2,...,m  \\ g_j(x) &\le 0  , \  j=1,2,...,n  \\ \beta_j &\ge  0 , \ j=1,2,...,n  \\ \end{align}

總結來說就是說任何滿足強對偶性的優化問題,只要其目標函數與約束函數可微,任一對原始問題與對偶問題的解都是滿足 KKT 條件的。即滿足強對偶性的優化問題中,若 $x^*$ 為原始問題的最優解,$\alpha^*,\beta^*$ 為對偶問題的最優解,則可得 $x^*,\alpha^*,\beta^*$ 滿足 KKT 條件。不知道夠不夠清楚,書中原話(P243)是這樣的$^{7.1}$

1

上面只是說明了必要性,當滿足原始問題為凸優化問題時,必要性也是滿足的,也就是說當原始問題是凸優化問題,且存在 $x^*,\alpha^*,\beta^*$ 滿足 KKT 條件,那么它們分別是原始問題和對偶問題的極值點並且強對偶性成立,證明如下:

首先原始問題是凸優化問題,固定 $\alpha^*,\beta^*$ 之后對偶問題 $D(\alpha^*,\beta^*)$ 也是一個凸優化問題,$x^*$ 是 $L(x,\alpha^*,\beta^*)$ 的極值點:

\begin{aligned}
D(\alpha^*,\beta^*)
&= \min_x L(x,\alpha^*,\beta^*) \\
&= L(x^*,\alpha^*,\beta^*) \\
& = f(x^*)+\sum_{i=1}^m\alpha_i^*h_i(x^*)+\sum_{j=1}^n\beta_j^*g_j(x^*) \\
&= f(x^*)
\end{aligned}

最后一個式子是根據 KKT 條件中的 $h_i(x) = 0$ 與 $\beta_jg_j(x) = 0$ 得到的。這樣一來,就證明了對偶間隔為零,也就是說,強對偶成立。 所以當原始問題為凸優化問題時,書中的原話(P244)如下$^{7.1}$

1

關於對偶的問題到此為止,其實都是很優化方法中比較簡單的內容。總結一下。本文介紹了對偶的基本概念,對於一個約束優化問題,找到其對偶問題,當弱對偶成立時,可以得到原始問題的一個下界。而如果強對偶成立,則可以直接求解對偶問題來解決原始問題。 SVM 就是這樣的。對偶問題由於性質良好一般比原始問題更容易求解,在 SVM 中通過引入對偶問題可以將問題表示成數據的內積形式從而使得 kernel trick 的應用更加自然)。此外,還有一些情況會同時求解對偶問題與原始問題 ,比如在迭代求解的過程中,通過判斷對偶間隔的大小,可以得出一個有效的迭代停止條件。

 

參考文獻

1. https://www.cs.cmu.edu/~ggordon/10725-F12/slides/15-duality.pdf

   https://www.cs.cmu.edu/~ggordon/10725-F12/slides/16-kkt.pdf

2. http://www.csc.kth.se/utbildning/kth/kurser/DD3364/Lectures/Duality.pdf

4. http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982684.html

5. http://blog.pluskid.org/?p=702

6. http://blog.pluskid.org/?p=702

7.書籍 Convex Optimization Cambridge版 (7.1)|  統計學習方法 李航(7.2)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM