矩陣論筆記:約束優化方法之拉格朗日乘子法與KKT條件

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


在約束最優化問題中,約束條件分爲等式約束與不等式約束,對於等式約束的優化問題,可以直接應用拉格朗日乘子法去求取最優值;對於含有不等式約束的優化問題,可以轉化爲在滿足 KKT 約束條件下應用拉格朗日乘子法求解。拉格朗日求得的並不一定是最優解,只有在凸優化的情況下,才能保證得到的是最優解,所以本文稱拉格朗日乘子法得到的爲可行解其實就是局部極小值,接下來從無約束優化開始介紹。

一、無約束優化

首先考慮一個不帶任何約束的優化問題,對於變量 xRNx \in \mathbb{R}^N 的函數 f(x)f(x) ,無約束優化問題如下:(1)minxf(x)\min_x f(x)\tag{1}
根據Fermat(費馬定理) 直接找到使目標函數得 0 的點即可 即 xf(x)=0\nabla_xf(x) = 0,如果沒有解析解的話,可以使用梯度下降或牛頓方法等迭代的手段來使 xx 沿負梯度方向逐步逼近極小值點。

注意:梯度的本意是一個向量(矢量),表示某一函數在該點處的方向導數 沿着該方向取得最大值,即函數在該點處沿着該方向(此梯度的方向)變化最快,變化率最大(爲該梯度的模)。

二、等式約束優化

當目標函數加上約束條件之後,問題就變成如下形式:
(2)minx f(x)s.t.   hi(x)=0,i=1,2,...,m\begin{aligned} &\min_{x } \ f(x) \\ &s.t. \ \ \ h_i(x) = 0 , i = 1,2,...,m \\ \end{aligned} \tag{2}
約束條件會將解的範圍限定在一個可行域,此時不一定能找到使得 xf(x)=0\nabla_xf(x)=0的點,只需找到在可行域內使得 f(x)f(x)爲 最小的值即可,常用的方法即爲拉格朗日乘子法,該方法首先引入 Lagrange Multiplier(拉格朗日乘子) αRm\alpha \in \mathbb{R}^m,構建 Lagrangian 如下:
(3)L(x,α)=f(x)+i=1mαihi(x)L(x,\alpha) = f(x) + \sum_{i=1}^m \alpha_i h_i(x)\tag{3}
求解方法如下:首先對 Lagrangian 關於 ααxx 求偏導數,並且令值爲 0 :
(4){xL(x,α)=0αL(x,α)=0\left \{ \begin{aligned} \nabla_x L(x,\alpha)= 0 \\ \nabla_{ \alpha } L(x,\alpha)= 0 \end{aligned} \right.\tag{4}
求得 xαx 、α 的值後,將 xx 帶入f(x)f(x) 即爲在約束條件 hi(x)h_{i}(x) 下的可行解,這樣做的意義是什麼呢? 接下來看一個直觀的示例:

  • 對於二維情況下的目標函數是 f(x,y)f(x,y),在平面中畫出f(x,y)f(x,y) 的等高線,如下圖的虛線所示:
    並只給出一個約束等式 h(x,y)=0h(x,y)=0 , 如下圖的綠線所示,目標函數 f(x,y)f(x,y) 與約束 h(x,y)=0h(x,y)=0 只有三種情況,相交、相切或者沒有交集,沒交集肯定不是解,只有相交或者相切可能是解,但相交得到的一定不是最優值,因爲相交意味着肯定還存在其它的等高線在該條等高線的內部或者外部,使得新的等高線與目標函數的交點的值更大或者更小,
  • 這就意味着只有等高線與目標函數的曲線相切的時候,纔可能得到可行解.在這裏插入圖片描述
  • 因此給出結論:拉格朗日乘子法取得極值的必要條件是目標函數與約束函數相切,這時兩者的法向量是平行的,即:
    (5)xf(x)αxh(x)=0\nabla _xf(x) – \alpha \nabla_xh(x) = 0\tag{5}

所以只要滿足上述等式,且滿足之前的約束 hi(x)=0,i=1,2,,mh_i(x) = 0 , i = 1,2,…,m;即可得到解,聯立起來,正好得到就是拉格朗日乘子法。這裏只是直觀展示了一下拉格朗日乘子法的幾何推導 ,並沒有給出詳細的證明。

三、不等式約束優化

當約束加上不等式之後,情況變得更加複雜,首先來看一個簡單的情況,給定如下不等式約束問題:
(6)minx f(x) s.t.  g(x)0\begin{aligned} &\min_x \ f(x) \\ & \ s.t. \ \ g(x) \le 0 \end{aligned}\tag{6}
對應的 Lagrangian 與圖形分別如下所示:
(7)L(x,λ)=f(x)+λg(x)L(x, \lambda) = f(x) + \lambda g(x)\tag{7}
這時的可行解必須落在約束區域 g(x)g(x) 之內,下圖給出了目標函數的等高線(iso-contours)與約束:
'iso-contours of f(x)'
由圖可見可行解 xx 只能在 g(x)<0g(x)<0 或者 g(x)=0g(x)=0 的區域裏取得:

  • 當可行解 xx 落在 g(x)<0g(x)<0 的區域內,此時直接極小化 f(x)f(x) 即可;

  • 當可行解 xx 落在 g(x)=0g(x)=0 即邊界上,此時等價於等式約束優化問題.

  • 當約束區域包含目標函數原有的的可行解時,此時加上約束可行解扔落在約束區域內部,對應 g(x)<0g(x)<0 的情況,這時約束條件不起作用;

  • 當約束區域不包含目標函數原有的可行解時,此時加上約束後可行解落在邊界 g(x)=0g(x)=0 上。下圖分別描述了兩種情況,右圖表示加上約束可行解會落在約束區域的邊界上。
    在這裏插入圖片描述

  • 以上兩種情況就是說,要麼可行解落在約束邊界上即得 g(x)=0g(x)=0(等式約束) ,要麼可行解落在約束區域內部,此時約束不起作用,另 λ=0λ=0 消去約束即可,所以無論哪種情況都會得到:
    (8)λg(x)=0\lambda g(x) = 0\tag{8}
    還有一個問題是 λλ 的取值,在等式約束優化中,約束函數與目標函數的梯度只要滿足平行即可,而在不等式約束中則不然,若 λ0λ≠0,這便說明 可行解 xx 是落在約束區域的邊界上的,這時可行解應儘量靠近無約束時的解,所以在約束邊界上,目標函數的負梯度方向應該遠離約束區域朝向無約束時的解,此時正好可得約束函數的梯度方向與目標函數的負梯度方向應相同
    (9)xf(x)=λxg(x)-\nabla_x f(x) = \lambda \nabla_xg(x)\tag{9}

  • 上式需要滿足的要求是拉格朗日乘子 λ>0λ>0 ,這個問題可以舉一個形象的例子,假設你去爬山,目標是山頂,但有一個障礙擋住了通向山頂的路,所以只能沿着障礙爬到儘可能靠近山頂的位置,然後望着山頂嘆嘆氣,這裏山頂便是目標函數的可行解,障礙便是約束函數的邊界,此時的梯度方向一定是指向山頂的,與障礙的梯度同向,下圖描述了這種情況 :
    在這裏插入圖片描述

可見對於不等式約束,只要滿足一定的條件,依然可以使用拉格朗日乘子法解決,這裏的條件便是 KKTKKT 條件。接下來給出形式化的 KKTKKT 條件 首先給出形式化的不等式約束優化問題:
(10)minx f(x)s.t.   hi(x)=0, i=1,2,...,m           gj(x)0, j=1,2,...,n\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}\tag{10}
列出 Lagrangian 得到無約束優化問題:
(11)L(x,α,β)=f(x)+i=1mαihi(x)+j=1nβigi(x)L(x,\alpha,\beta) =f(x) + \sum_{i=1}^m \alpha_i h_i(x) + \sum_{j=1}^n\beta_ig_i(x)\tag{11}
經過之前的分析,便得知加上不等式約束後可行解 xx 需要滿足的就是以下的 KKTKKT 條件:5個

(12)xL(x,α,β)=0βjgj(x)=0,j=1,2,,nhi(x)=0,i=1,2,,mgj(x)0,j=1,2,,nβj0,j=1,2,,n \begin{aligned} \nabla_{x} L(x, \alpha, \beta) &=0 \\ \beta_{j} g_{j}(x) &=0, j=1,2, \ldots, n \\ h_{i}(x) &=0, i=1,2, \ldots, m \\ g_{j}(x) & \leq 0, j=1,2, \ldots, n \\ \beta_{j} & \geq 0, j=1,2, \ldots, n \end{aligned}\tag{12}

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

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

  • (3) ∼ (4) :初始的約束條件;

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

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

四、參考文獻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章