約束優化方法之拉格朗日乘子法與KKT條件

引言html

本篇文章將詳解帶有約束條件的最優化問題,約束條件分爲等式約束與不等式約束,對於等式約束的優化問題,能夠直接應用拉格朗日乘子法去求取最優值;對於含有不等式約束的優化問題,能夠轉化爲在知足 KKT 約束條件下應用拉格朗日乘子法求解。拉格朗日求得的並不必定是最優解,只有在凸優化的狀況下,才能保證獲得的是最優解,因此本文稱拉格朗日乘子法獲得的爲可行解,其實就是局部極小值,接下來從無約束優化開始一一講解。機器學習

無約束優化函數

首先考慮一個不帶任何約束的優化問題,對於變量 $ x \in \mathbb{R}^N $ 的函數 $f(x)$ ,無約束優化問題以下:學習

\[\min_x  f(x) \]優化

該問題很好解,根據 Fermat 定理,直接找到使目標函數得 0 的點便可 即 $\nabla_xf(x) = 0$ ,若是沒有解析解的話,可使用梯度降低或牛頓方法等迭代的手段來使 $x$ 沿負梯度方向逐步逼近極小值點。spa

等式約束優化.net

當目標函數加上約束條件以後,問題就變成以下形式:3d

\begin{aligned}
&\min_{x } \  f(x)  \\
&s.t.  \ \ \ h_i(x) = 0 , i = 1,2,...,m \\
\end{aligned}
htm

約束條件會將解的範圍限定在一個可行域,此時不必定能找到使得 $\nabla_xf(x)$ 爲 0 的點,只需找到在可行域內使得 $f(x)$ 最小的值便可,經常使用的方法即爲拉格朗日乘子法,該方法首先引入 Lagrange Multiplier $\alpha \in \mathbb{R}^m$ ,構建 Lagrangian 以下:blog

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

求解方法以下:首先對 Lagrangian  關於 $\alpha$ 與 $x$ 求 :

\[\left \{
\begin{aligned}
\nabla_x L(x,\alpha)= 0  \\
\nabla_{ \alpha } L(x,\alpha)= 0
\end{aligned} \right.\]

令導數爲 0 ,求得 $x$ 、$\alpha$  的值後,將 $x$ 帶入 $f(x)$ 即爲在約束條件 $h_i(x)$ 下的可行解。這樣作的意義是什麼呢? 接下來看一個直觀的示例,對於二維狀況下的目標函數是 $f(x, y)$,在平面中畫出 $f(x, y)$ 的等高線,以下圖的虛線所示, 並只給出一個約束等式 $h(x,y) = 0$ ,以下圖的綠線所示,目標函數 $f(x,y)$ 與約束 $g(x,y)$ 只有三種狀況,相交、相切或者沒有交集,沒交集確定不是解,只有相交或者相切多是解,但相交獲得的必定不是最優值,由於相交意味着確定還存在其它的等高線在該條等高線的內部或者外部,使得新的等高線與目標函數的交點的值更大或者更小,這就意味着只有等高線與目標函數的曲線相切的時候,纔可能獲得可行解.

1

所以給出結論:拉格朗日乘子法取得極值的必要條件是目標函數與約束函數相切,這時二者的法向量是平行的,即

\[ \nabla _xf(x) – \alpha \nabla_xh(x) = 0\]

因此只要知足上述等式,且知足以前的約束 $h_i(x) = 0 , i = 1,2,…,m$ ,便可獲得解,聯立起來,正好獲得就是拉格朗日乘子法。這裏只是直觀展現了一下拉格朗日乘子法的幾何推導 ,並無給出詳細的證實。

不等式約束優化

當約束加上不等式以後,狀況變得更加複雜,首先來看一個簡單的狀況,給定以下不等式約束問題:

\begin{aligned}
&\min_x \ f(x) \\
& \ s.t. \ \  g(x) \le 0
\end{aligned}

對應的 Lagrangian 與圖形分別以下所示:

\[L(x, \lambda) = f(x) + \lambda g(x)\]

這時的可行解必須落在約束區域 $g(x)$ 以內,下圖給出了目標函數的等高線與約束:

1

由圖可見可行解 $x$ 只能在 $g(x) < 0$ 或者 $g(x) = 0$  的區域裏取得:

  • 當可行解 $x$ 落在 $g(x) < 0$ 的區域內,此時直接極小化 $f(x)$ 便可;
  • 當可行解 $x$ 落在 $g(x) = 0$ 即邊界上,此時等價於等式約束優化問題.

當約束區域包含目標函數原有的的可行解時,此時加上約束可行解扔落在約束區域內部,對應 $g(x) < 0$ 的狀況,這時約束條件不起做用;當約束區域不包含目標函數原有的可行解時,此時加上約束後可行解落在邊界 $g(x) = 0$ 上。下圖分別描述了兩種狀況,右圖表示加上約束可行解會落在約束區域的邊界上。

743682-20160731123535997-311672087

以上兩種狀況就是說,要麼可行解落在約束邊界上即得 $g(x) = 0$ ,要麼可行解落在約束區域內部,此時約束不起做用,另 $\lambda = 0$ 消去約束便可,因此不管哪一種狀況都會獲得

\[\lambda g(x) = 0\]

還有一個問題是 $\lambda$ 的取值,在等式約束優化中,約束函數與目標函數的梯度只要知足平行便可,而在不等式約束中則否則,若 $\lambda \ne 0$,這便說明 可行解 $x$ 是落在約束區域的邊界上的,這時可行解應儘可能靠近無約束時的解,因此在約束邊界上,目標函數的負梯度方向應該遠離約束區域朝向無約束時的解,此時正好可得約束函數的梯度方向與目標函數的負梯度方向應相同:

\[ -\nabla_x f(x) = \lambda  \nabla_xg(x) \]

上式須要知足的要求是拉格朗日乘子 $\lambda > 0$ ,這個問題能夠舉一個形象的例子,假設你去登山,目標是山頂,但有一個障礙擋住了通向山頂的路,因此只能沿着障礙爬到儘量靠近山頂的位置,而後望着山頂嘆嘆氣,這裏山頂即是目標函數的可行解,障礙即是約束函數的邊界,此時的梯度方向必定是指向山頂的,與障礙的梯度同向,下圖描述了這種狀況 :

2

可見對於不等式約束,只要知足必定的條件,依然可使用拉格朗日乘子法解決,這裏的條件即是 KKT 條件接下來給出形式化的 KKT 條件 首先給出形式化的不等式約束優化問題:

\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_ig_i(x) \]

通過以前的分析,便得知加上不等式約束後可行解 $x$ 須要知足的就是如下的 KKT 條件:

\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 條件後極小化 Lagrangian 便可獲得在不等式約束條件下的可行解。 KKT 條件看起來不少,其實很好理解:

(1) :拉格朗日取得可行解的必要條件;

(2) :這就是以上分析的一個比較有意思的約束,稱做鬆弛互補條件;

(3) $\sim$ (4) :初始的約束條件;

(5) :不等式約束的 Lagrange Multiplier 需知足的條件。

主要的KKT條件即是 (3) 和 (5) ,只要知足這倆個條件即可直接用拉格朗日乘子法, SVM 中的支持向量即是來自於此,須要注意的是 KKT 條件與對偶問題也有很大的聯繫,下一篇文章就是拉格朗日對偶。

 

參考文獻:

1. 書:PRML | 《機器學習方法》-李航 |《機器學習》-周志華

2. http://blog.csdn.net/xianlingmao/article/details/7919597

3. http://blog.csdn.net/timingspace/article/details/50966105

4. http://blog.csdn.net/loadstar_kun/article/details/25369017

5. http://blog.csdn.net/johnnyconstantine/article/details/46335763

6. http://www.csc.kth.se/utbildning/kth/kurser/DD3364/Lectures/KKT.pdf nice PPT

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

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

相關文章
相關標籤/搜索