1. 程式人生 > >機器學習 --- 拉格朗日乘子法和KTT條件

機器學習 --- 拉格朗日乘子法和KTT條件

本篇文章主要為之後的支援向量機打下數學基礎

 

一、拉格朗日乘子法的目的

拉格朗日乘子法原始的約束問題轉換成求解無約束優化問題

對形如:

\min  \limits_{x\epsilon R^{n}} \ f(x)

s.t \qquad h_{i}=0,\ i=1,2,...,k

\qquad \quad  \  g_{j}(x) \leq0,\ j=1,2,...,l

通過拉格朗日乘子法轉化成:

\min \limits_{x} \max \limits_{\lambda,\mu}L(x,\lambda,\mu)

通俗地說就是轉換目標函式把約束條件去掉。

 

二、等式約束條件下的拉格朗日乘子法

約束條件是等式的情況下,引用深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件對拉格朗日乘子法的直觀理解。

設想我們的目標函式  z=f(x),  z 取不同的值,相當於投影在  x
 構成的平面(曲面)上,即成為等高線。如下圖所示,目標函式是  f(x,y) ,這裡  x 是標量,虛線是等高線。假設約束函式  g(x)=0 ,在  x 構成的平面或者曲面上是一條曲線。現假設  g(x) 與等高線相交,這裡的交點就是既滿足了等式約束條件和目標函式可行域的值,但一定不是最優值。因為相交就意味著還存在其他的等高線在該條等高線的內部或外部,使得新的等交線與目標函式的交點的值更大或者更小。只有等高線與目標函式的曲線相切的時候,可能取得最優值,如下圖所示,即等高線和目標函式得曲線在該點得法向量必須有相同得方向

 

有上面的理解,設最優點 x^{*} ,則有 \lambda\ne0 使得:

\nabla f(x^{*})=\lambda\ \nabla g(x^{*}) \qquad \qquad (1)

在約束條件是等式的情況下,定義拉格朗日函式:

L(x,\lambda)=f(x)+\lambda\ g(x) \qquad \qquad (2)

觀察(2)式可以發現對 x 的偏導數並置零,得到(1)式。因此可以將有等式約束的優化問題,通過(2)式改寫成無約束優化問題。

 

三、不等式約束下的KKT條件

現在考慮含有不等式約束的優化條件

當不等式約束 g(x)\leq 0 ,此時的最優點 x^{*} 要麼在 g(x)<0 區域內,要麼在 g(x)=0上。對於 g(x)<0 的情形下,約束條件不起作用,此時是一個無約束的優化問題,可以直接通過 \nabla f(x)=0

 來獲取最優點。對於 g(x)=0 的情況下,這就相當於一個等式約束,但此時的 \nabla f(x^{*}) 方向與 \nabla g(x^{*}) 的方向相反,否則將會突破 g(x)<0 的約束。即存在 \lambda >0 使得 \nabla f(x^{*})+\lambda \ \nabla g(x^{*})=0。所以在 g(x)\leq0 情況下,考慮之前提到的兩種情況,推匯出拉格朗日函式的KKT條件

\left\{ \begin{aligned}  &g(x)\leq0  \\ & \lambda\geq0 \\ & \lambda \ g(x)=0\  \end{aligned} \right.

 

四、對偶問題

在滿足KKT的條件下後,通過求解對偶問題來替代求解的原問題,這樣可以避免求解複雜的原問題。

在這種情況下,將目標函式,等式約束,不等式約束寫成一個方程式,若有 k 個等式約束和 l 個不等式約束,則定義拉格朗日函式:

L(x,\lambda,\mu)=f(x)+ \sum_{i=1}^{k}{\mu_{i} h_{i}(x)} + \sum_{j=1}^{l}{\lambda_{j} g_{j}(x)}\qquad \qquad(3)

回顧目標函式,需要 \min  \limits_{x\epsilon R^{n}} \ f(x) ,由拉格朗日函式,在KKT條件下, \max  \limits_{\lambda,\mu} \ L(x,\lambda,\mu) 就是 f(x) 這是因為,在KKT條件下,在 h(x)=0 , \lambda \ g(x)=0 時。觀察(3)式,此時 \max  \limits_{\lambda,\mu} \ L(x,\lambda,\mu) 等價於 f(x) 。

因此在滿足約束條件的情況下,原問題的最優值 p^{*} :

p^{*}=\min \limits_{x} \theta_{P}(x)=\min \limits_{x}\max  \limits_{\lambda,\mu} \ L(x,\lambda,\mu)

則對偶問題的最優值 d^{*} :

d^{*}=\max \limits_{\lambda,\mu} \theta_{D}(\lambda,\mu)=\max  \limits_{\lambda,\mu} \min \limits_{x} L(x,\lambda,\mu)

形式上觀察,原問題先固定 x ,優化引數 \lambda,\mu ,再優化出 x ,而對偶問題則是先固定 \lambda,\mu,優化引數 x ,再優化出 \lambda,\mu 。

分別求出原始問題的最優值 p^{*} 和對偶問題的最優值 d^{*} 後,二者間的關係有:

d^{*}\leq p^{*}

 

證明:
\theta_{D}(\lambda,\mu)=\min \limits_{x}L(x,\lambda,\mu)\leq L(x,\lambda,\mu)\leq \max \limits_{\lambda,\mu}L(x,\lambda,\mu)=\theta_{P}(x) 
\theta_{D}(\lambda,\mu)\leq \theta_{P}(x) 
又因為原始問題與對偶問題都有最優值:
\max \limits_{\lambda,\mu} \theta_{D}(\lambda,\mu) \leq \min \limits_{x} \theta_{P}(x) 
所以  d^{*}\leq p^{*}

 

因此,對偶問題相當於給出了原問題一個下界。這個下界就確定了 \lambda,\mu 的值。在滿足KKT的條件下, d^{*}=p^{*} ,這就說明求解對偶問題就相當於求解了原問題。

 

這裡說明以下,對原始問題和對偶問題,設 f(x) 和 g_{j}(x) 都是凸函式, h_{i}(x) 使仿射函式(一階多項式),不等式約束 g_{j}(x) 嚴格可行的,即存在 x 對所有 g_{j}(x)<0 成立。則原問題和對偶問題最優解的充分必要條件是:

\nabla_{x} L(x^{*},\lambda^{*},\mu^{*})=0

\nabla_{\lambda} L(x^{*},\lambda^{*},\mu^{*})=0

\nabla_{\mu} L(x^{*},\lambda^{*},\mu^{*})=0

\lambda^{*}_{j}g_{j}(x)=0

g_j(x)\leq0

\lambda^{*}_{j}\geq 0

h_{i}(x^{*})=0

首先,前三個約束條件保證了原問題存在鞍點。而求解原問題的最優值就是通過求解這些鞍點得到,但是函式的鞍點可能會有很多個,而最優值是在這些中的某個鞍點。在KKT約束條件下,相當於在這些鞍點中施加約束,最終能得到一個全域性最優值。

 

 

參考文獻:

1.支援向量機通俗導論(理解SVM的三層境界) - Mac Track - CSDN部落格

2.拉格朗日對偶問題(Lagrange duality)

3.深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件

4.周志華. 機器學習[M]. 清華大學出版社, 2016