一文理解拉格朗日對偶和KKT條件

一. 最優化問題求解

1. 等式約束的極值求法

$$ \begin{gather*} \underset{t}{min} f(t) \; s.t.\; h_i(t)=0,i=1,\cdots,p \end{gather*} $$算法

目標函數: $f(t)$, 引入Lagrange算子:$L(t,\beta) = f(t) + \sum_{i=1}^n\beta_ih_i(t)$函數

2. 不等式約束的極值求法

$$ \begin{gather*} \underset{t}{min}f(t) \; s.t. &g_i(t) \le 0, i=1,\cdots,p \\ &h_j(t) = 0, j=1, \cdots, q \end{gather*} $$優化

目標函數: $f(t)$
約束條件:數學

  • $g_i(t) \le 0, i=1, \cdots, p$
  • $h_j(t) \le 0, j=1, \cdots, q$

不少狀況, 不等式約束條件可引入新變量轉化爲等式約束條件, 故上述問題可簡化爲:it

$$ \underset{t}{min}f(t)\;s.t.\; g_i(t) = 0, i=1, \cdots, n $$io

3. 最優化問題分類

根據約束條件和目標函數的類型分爲3類:function

  1. 線性規劃: 目標函數和約束條件都爲變量的線性函數
  2. 二次規劃: 目標函數爲變量的二次函數, 約束條件爲線性函數
  3. 非線性規劃: 目標函數或者約束條件是非線性函數

4. KKT條件廣義定義

KKT條件指在知足某些規則條件下, 非線性規劃問題能有最優解的充要條件, 是廣義拉格朗日乘數的重要成果
通常優化問題(含等式和不等式約束約束):變量

$$ \begin{gather*} \underset{t}{min}f(t) \; s.t. &g_i(t) \le 0, i=1,\cdots,p \\ &h_j(t) = 0, j=1, \cdots, q \end{gather*} $$lambda

引入Lagrange算子$\alpha, \beta$:programming

$$ L(t, \alpha, \beta) = f(t) + \sum_{i=1}^p\alpha_i g_i(t) + \sum_{j=1}^q\beta_j h_j(t) $$

可將$\alpha和\beta$分別看作兩個約束$g_i(t) \le 0和g_j(t) \ 0$的限制條件

KKT條件指上述問題的最優勢$x^*$必須知足:
(1) 約束條件知足: $g_i(x^*) \le0, h_i(x^*)=0$
(2) $\nabla L(t,\alpha,\beta)|_{t=x^*} = \nabla f(x^*) + \sum_{i=1}^p\alpha_i\nabla g_i(x^*) + \sum_{j=1}^q \beta_j \nabla h_j(x^*) = 0$
即,
最優勢$x^*$處, $\nabla f$必須是$\nabla g_i$和$\nabla h_j$的線性組合
引入拉格朗日算子能夠求出極值的緣由:

因爲$f(t)$的$dt$變化方向受其餘不等式的約束, 且在極值$x^*$處,$f(t$)的梯度$\nabla f(x^*)$與$\nabla g(x^*)$,$\nabla h(x^*)$之間存在線性關係, 故引入拉格朗日算子能夠求出極值

(3) $\beta_j \ne 0$且$\alpha_i \ge 0,\; \alpha_i g_i(x^*) = 0$

不等式$g_i(t)\le0$的限制條件有方向性, 故$\alpha_i \ge 0$, 等式$h_j(t)=0$的限制條件無方向性, 故$\beta_j$無符號限制

5 爲何SVM用Lagrange duality來解決最大化間隔問題?

不等式約束一直是優化問題中的難題,求解對偶問題能夠將支持向量機原問題約束中的不等式約束轉化爲等式約束;

支持向量機中用到了高維映射,可是映射函數的具體形式幾乎徹底不可肯定,而求解對偶問題以後,可使用核函數來解決這個問題。

並不必定要用拉格朗日對偶。要注意用拉格朗日對偶並無改變最優解,而是改變了算法複雜度:
在原問題下,求解算法的複雜度與樣本維度(等於權值w的維度)有關;
而在對偶問題下,求解算法的複雜度與樣本數量(等於拉格朗日算子a的數量)有關。

所以,

  1. 若是你是作線性分類,且樣本維度低於樣本數量的話,在原問題下求解就行了,Liblinear之類的線性SVM默認都是這樣作的;
  2. 若是你是作非線性分類,那就會涉及到升維(好比使用高斯核作核函數,實際上是將樣本升到無窮維),升維後的樣本維度每每會遠大於樣本數量,此時顯然在對偶問題下求解會更好。

這樣:

  • 就能夠由求特徵向量w轉化爲求比例係數a,
  • 就能夠導出含有內積形式的目標函數,
  • 就能夠實現對內積後的gram矩陣使用核函數,以達到非線性分類的目的。

支持向量機實現非線性的方法的數學本質是升維,升維升到無窮維則沒法表達w, 因此仍是使用拉格朗日對偶方法更好一點。準確的說,能夠用一些優化算法直接求最小間距,可是,升維的時候核要是正定的,且升維可數,並且不是很大的時候能夠用。

二. 拉格朗日對偶和KKT

1. 帶約束的優化問題

任意一個帶約束的優化都可寫成:

$$ \begin{gather*} \underset{x}{min}{f_0(x)}\;s.t. &f_i(x) \le 0, i= 1,\cdots,m \\ &h_i(x)=0,i=1,\cdots,p \end{gather*} $$

  • 對於任意$f_i(x) \le 0$均有$h_i(x)=0$.
  • 一個$maxf(x)$問題能夠轉化爲$1-maxf(x)$
  • 假定$f_0,f_1,\cdots,f_m$爲凸函數,$h_1,h_2,\cdots,h_p$是仿射函數(形如$Ax+b$),則上述問題爲凸優化問題, 凸優化問題極值惟一

2. primal problem

將上述帶約束的優化問題轉化爲無約束優化問題, 定義拉格朗日(Lagrangian)函數以下:

$$ L(x,\lambda,v) = f_0(x) + \sum_{i=1}^m\lambda_if_i(x) + \sum_{i=1}^pv_ih_i(x) $$

最大化Lagrangian, 令

$$ z(x) = \underset{\lambda \ge 0,v}{max}L(x,\lambda,v) $$

z(x)知足原始約束條件的x, 其值等於$f_0(x)$:
知足初始約束, 則$h_i(x)=0$, 拉格朗日函數第三項被消去:
$$L(x,\lambda,v)=f_0(x) + \sum_{i=1}^m\lambda_if_i(x) $$
又由於$\lambda_if_i(x)\le0$, 因此$L(x,\lambda,v)$的最大值在$f_0(x)$處取得.

因此原始帶約束優化問題等價於如下無約束優化問題:

$$ \begin{gather*} min{f_0(x)}\;s.t. &f_i(x) \le 0, i= 1,\cdots,m \\ &h_i(x)=0,i=1,\cdots,p \end{gather*} $$

等價於:

$$ \underset{x}{min}z(x) = \underset{x}{min} \;\underset{\lambda \ge0,v}{max}L(x,\lambda,v) $$

上述問題稱爲primal problem
總結:

  1. 一個帶約束的優化問題都可用$minf_0(x)$表示
  2. 用拉格朗日函數將帶約束優化轉爲無約束優化問題
  3. 初始約束條件總可寫成$f_i(x)\le0$的形式, 且拉格朗日算子$\lambda_i\ge0$, 因此$maxL(x,\lambda,v)$可去掉約束條件:

去約束:
$f_0(x)\;\cdots s.t. \; f_i(x)\ge0 ,\;h_i(x)=0 \cong \underset{\lambda\ge0,v}{max}L(x,\lambda,v)$
最優化:
$\underset{x}{min}f_0(x) \cong \underset{x}{min} \; \underset{\lambda\ge0,v}{max}L(x,\lambda,v)$

3. dual problem

dual problem 只是將primal proble調換了min和max位置:

$$ \underset{\lambda \ge0,v}{max} \;\underset{x}{min}L(x,\lambda,v) $$

注意上式和$$
underset{x}{min} ;underset{lambda ge0,v}{max}L(x,lambda,v)
$$並不等價.
令:

$$ g(\lambda,v) = \underset{x}{min}L(x,\lambda,v) $$

上式中$g(\lambda,v)$爲拉格朗日對偶函數(Lagrange dual function), $g(\lambda,v)$是primal function的一個下界.
即, 若將primal proble的最小值記爲$p^*$, 則對於全部的$\lambda \ge 0和v$, 有:

$$ g(\lambda,v) \le p^* $$

證實:
對全部知足約束條件的x, 總有:

$$ \sum_{i=1}^m\lambda_i f_i(x) + \sum_{i=1}^pv_ih_i(x) \le 0 $$

所以

$$ L(x,\lambda,v) = f_0(x)+\sum_{i=1}^m\lambda_i f_i(x) + \sum_{i=1}^pv_ih_i(x) \le f_0(x) $$

假設$L(x,\lambda,v)$在$x^*$處取得極值, 則
$$minf_0(x) = f_0(x^*)$$
代入上式:

$$ L(x^*,\lambda,v) = f_0(x^*)+\sum_{i=1}^m\lambda_i f_i(x^*) + \sum_{i=1}^pv_ih_i(x^*) \le f_0(x^*) = p^* $$

因而

$$ g(\lambda,v) = \underset{x}{min}L(x,\lambda,v) \le L(x^*,\lambda,v) \le f_0(x^*) = p* $$

這樣, $g(\lambda,v)$的下界是$p^*$,因而:

$$ \underset{\lambda \ge0,v}{max}g(\lambda,v) $$

是primal problem的最大下界!
記dual problem 的最優值爲$d^*$, 獲得:

$$ d^* \le p^* $$

該性質稱爲weak duality, 對全部的優化問題都成立.
此外,
$$p^*-d^*$$稱爲duality gap.

基於weak duality的重要結論:

不管 primal problem 是什麼形式,dual problem 老是一個 convex optimization 的問題——它的極值是惟一的(若是存在的話). 對於那些難以求解的 primal problem (甚至能夠是 NP 問題),咱們能夠經過找出它的 dual problem ,經過優化這個 dual problem 來獲得原始問題的一個下界估計。


$$d^* = p^*$$成立時,稱爲strong duality.

strong duality 成立的狀況下,咱們能夠經過求解 dual problem 來優化 primal problem, 例如SVM 的時候咱們直接假定了 strong duality 的成立.

4. KKT條件

4.1 slater條件

嚴格知足約束條件的點x, 指$f_i(x)\le0$嚴格到$f_i(x)<0$, 即存在x知足:

$$ f_i(x) <0\;i=1,\cdots,m\\ h_i(x)=0\;i=1,\cdots,p $$

4.2 strong duality

原始問題是convex且知足slater條件,則strong duality成立: $d^*=p^*$
特例: 對某些非convex optimization,strong duality也成立

4.3 SVM中的strong duality

  • SVM是一種convex optimization, SVM中經過QP(quadratic programming凸二次規劃)求解, QP是凸優化問題的特殊狀況
  • slater條件在SVM中等價於存在超平面能將數據分隔開來

4.4 strong duality成立時的性質

  1. 回顧primal problem和dual problem

primal problem: $\underset{x}{min}\;\underset{\lambda \ge 0,v}{max}L(x,\lambda,v)$
dual problem: $\underset{\lambda \ge 0,v}{max}\;\underset{x}{min}L(x,\lambda,v)$

  1. dual problem極值$d^*$在$(\lambda^*,v^*)$處取得, primal problem極值$p^*$在$x^*$處取得
  2. strong duality成立, 則$d^*=p^*$, duality gap爲0
  3. $f_0(x^*)\le f_0(x^*)$成立:

$$ \begin{align*} f_0(x^*) &=g(\lambda^*,v^*) \\ &=\underset{x}{min} \left( f_0(x)+\sum_{i=1}^m\lambda_i^*f_i(x)+\sum_{i=1}^pv_i^*h_i(x) \right) \\ &\le f_0(x^*)+\sum_{i=1}^m\lambda_i^*f_i(x^*)+\sum_{i=1}^pv_i^*h_i(x^*) \\ &\le f_0(x^*) \end{align*} $$

$$ f_0(x^*) \le f_0(x) + \sum_{i=1}^m\lambda_if_i(x) + \sum_{i=1}^pv_ih_i(x) $$

得:

$$ f_0(x^*) \le L(x^*,\lambda^*,v^*) $$

因此$x^*$是$L(x,\lambda^*,v^*)$的一個極值點, 因此:

$$ \nabla f_0(x^*) + \sum_{i=1}^m\lambda_i^*\nabla f_i(x^*) + \sum_{i=1}^pv_i^*\nabla h_i(x^*)=0 \;(條件1) $$

又由

$$ f_0(x^*) \le f_0(x^*)+\sum_{i=1}^m\lambda_i^*f_i(x^*)+\sum_{i=1}^pv_i^*h_i(x^*) $$

得:

$$ \lambda_i^*f_i(x^*) \le 0 $$

故極值點$x^*$處:

$$ \lambda_i^*f_i(x^*)=0,\;i=1,\cdots,m\;(條件2) $$

條件(1)(2)合起來稱爲complementary slackness.

4.5 complementary slacknes條件分析

條件(2)中若$\lambda_i^*>0$必有$f_i(x^*)=0$, 反之, 若$f_i(x^*)<0$可得$\lambda_i^*=0$, 此條件在SVM中用來證實非支持向量$f_i(x^*)<0$對應的係數$\alpha_i$

4.6 引入KKT條件

complementary slacknes加上其餘約束條件即爲KKT條件:

$$ \begin{align*} \nabla f_0(x^*) + \sum_{i=1}^m\lambda_i^*\nabla f_i(x^*) + \sum_{i=1}^pv_i^*\nabla h_i(x^*)&=0 &(條件1) \\ \lambda_i^*f_i(x^*)&=0,\; i=1,\cdots,m&(條件2) \\ f_i(x^*) &\le 0,\; i=1,\cdots,m&(條件3) \\ \lambda_i^* &\ge0,\;i=1,\cdots,m&(條件4) \\ h_i(x^*) &= 0,\; i=1,\cdots,p&(條件5) \end{align*} $$

  • 任何知足strong duality的問題都知足KKT條件
  • primal problem是convex optimization problem是, KKT升級爲充要條件, 經過KKT條件可求得$x^*$,$(\lambda^*,v^*)$分別是primal problem和dual problem的極值點,且strong duality成立

總結

經過dual problem可求primal problem的解:

  1. 只有weak duality成立時, 至少可獲得一個(primal problem的)下界
  2. strong duality成立,則直接求解dual problem
    dual problem可能比primal problem更易求解
    dual problem可能有一些優良的結構(SVM經過dual problem將問題轉化爲內積以使用kernel trick)
  3. 迭代求解中, 會同事求解dual和primal problem, 經過duality gap來early stopping
相關文章
相關標籤/搜索