$$ \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)$函數
$$ \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)$
約束條件:數學
不少狀況, 不等式約束條件可引入新變量轉化爲等式約束條件, 故上述問題可簡化爲:it
$$ \underset{t}{min}f(t)\;s.t.\; g_i(t) = 0, i=1, \cdots, n $$io
根據約束條件和目標函數的類型分爲3類:function
- 線性規劃: 目標函數和約束條件都爲變量的線性函數
- 二次規劃: 目標函數爲變量的二次函數, 約束條件爲線性函數
- 非線性規劃: 目標函數或者約束條件是非線性函數
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$無符號限制
不等式約束一直是優化問題中的難題,求解對偶問題能夠將支持向量機原問題約束中的不等式約束轉化爲等式約束;
支持向量機中用到了高維映射,可是映射函數的具體形式幾乎徹底不可肯定,而求解對偶問題以後,可使用核函數來解決這個問題。
並不必定要用拉格朗日對偶。要注意用拉格朗日對偶並無改變最優解,而是改變了算法複雜度:
在原問題下,求解算法的複雜度與樣本維度(等於權值w的維度)有關;
而在對偶問題下,求解算法的複雜度與樣本數量(等於拉格朗日算子a的數量)有關。
所以,
這樣:
支持向量機實現非線性的方法的數學本質是升維,升維升到無窮維則沒法表達w, 因此仍是使用拉格朗日對偶方法更好一點。準確的說,能夠用一些優化算法直接求最小間距,可是,升維的時候核要是正定的,且升維可數,並且不是很大的時候能夠用。
任意一個帶約束的優化都可寫成:
$$ \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*} $$
將上述帶約束的優化問題轉化爲無約束優化問題, 定義拉格朗日(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
總結:
- 一個帶約束的優化問題都可用$minf_0(x)$表示
- 用拉格朗日函數將帶約束優化轉爲無約束優化問題
- 初始約束條件總可寫成$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)$
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 的成立.
嚴格知足約束條件的點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 $$
原始問題是convex且知足slater條件,則strong duality成立: $d^*=p^*$
特例: 對某些非convex optimization,strong duality也成立
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)$
$$ \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.
條件(2)中若$\lambda_i^*>0$必有$f_i(x^*)=0$, 反之, 若$f_i(x^*)<0$可得$\lambda_i^*=0$, 此條件在SVM中用來證實非支持向量$f_i(x^*)<0$對應的係數$\alpha_i$
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*} $$
經過dual problem可求primal problem的解: