目錄html
更新、更全的《機器學習》的更新網站,更有python、go、數據結構與算法、爬蟲、人工智能教學等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlpython
在約束最優化問題中,拉格朗日對偶性(Lagrange duality)能夠將原始問題轉換爲對偶問題,而後經過求解對偶問題的解獲得原始問題的解。算法
假設\(f(x),c_i(x),h_j(x)\)是定義在\(R^n\)上的連續可微函數,則約束最優化問題的原始問題爲
\[ \begin{align} & \underbrace{min}_{x\in{R^n}}f(x) \\ & s.t. \, c_i(x)\leq0,\quad{i=1,2,\cdots,k} \\ & h_j(x)=0,\quad{j=1,2,\cdots,l} \end{align} \]
若是不考慮約束條件,約束問題就是
\[ \underbrace{min}_{x\in{R^n}}f(x) \]
由於已經假設\(f(x),c_i(x),h_j(x)\)連續可微,直接對\(f(x)\)求導取0,便可求出最優解,可是這裏有約束條件,所以得想辦法去掉約束條件,而拉格朗日函數正是幹這個的。數據結構
爲了解決上述原始問題,引入廣義拉格朗日函數(generalized Lagrange function)
\[ L(x,\alpha,\beta)=f(x)+\sum_{i=1}^k\alpha_ic_i(x)+\sum_{j=1}^l\beta_jh_j(x) \]
其中\(x=(x^{(1)},x^{(2)},\cdots,x^{(n)})^T\in{R^n}\),\(\alpha_i\geq0,\beta_j\)是拉格朗日乘子。機器學習
若是把\(L(x,\alpha,\beta)\)看做是關於\(\alpha_i,\beta_j\)的函數,求其最大值,即
\[ \underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta) \]
因爲\(\alpha_i,\beta_j\)做爲拉格朗日乘子已經可知,所以能夠把\(L(x,\alpha,\beta)\)看做是關於\(x\)的函數
\[ \theta_P(x)=\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta) \]
其中下標\(P\)表示原始問題。函數
假設給定某個\(x\)。學習
經過對約束條件的考慮便可得
\[ \theta_P{(x)} = \begin{cases} f(x), & \text{$x$知足約束條件} \\ +\infty, & \text{其餘} \end{cases} \]
因此若是考慮極小化問題
\[ \underbrace{min}_x\theta_P{(x)}_{x} = \underbrace{min}_{x}\,\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta) = \underbrace{min}_{x}f(x) \]
它與原始問題是等價的,其中\(\underbrace{min}_{x}\,\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta)\)被稱做廣義拉格朗日函數的極小極大問題。優化
經過廣義拉格朗日函數的極小極大問題,能夠定義原始問題的最優值
\[ p^*=\underbrace{min}_x\theta_P(x) \]
這一節主要經過使用拉格朗日函數把原始約束問題轉化爲無約束問題,即將約束問題無約束化。網站
定義一個關於\(\alpha,\beta\)的函數
\[ \theta_D(\alpha,\beta)=\underbrace{min}_xL(x,\alpha,\beta) \]
其中等式右邊是關於\(x\)的函數的最小化,即肯定了\(x\)的值,最小值只與\(\alpha,\beta\)有關。
若是極大化\(\theta_D(\alpha,\beta)\),即
\[ \underbrace{max}_{\alpha,\beta}\theta_D(\alpha,\beta)=\underbrace{max}_{\alpha,\beta}\underbrace{min}_{x}L(x,\alpha,\beta) \]
上述就是原始問題的對偶問題,其中\(\underbrace{max}_{\alpha,\beta}\underbrace{min}_{x}L(x,\alpha,\beta)\)也稱爲廣義拉格朗日函數的極大極小問題。人工智能
該對偶問題的原始問題爲
\[ \underbrace{min}_x\theta_P{(x)}_{x} = \underbrace{min}_{x}\,\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta) \]
原始問題是先固定\(L(x,\alpha,\beta)\)中的\(x\),優化出參數\(\alpha,\beta\),再優化\(x\);對偶問題是先固定\(\alpha,\beta\),優化出\(x\),而後再肯定\(\alpha,\beta\)。
對偶問題的最優值爲
\[ d^*=\underbrace{max}_{\alpha,\beta}\theta_D(\alpha,\beta) \]
若是原始問題和對偶問題都有最優解,則
\[ d^* = \underbrace{max}_{\alpha,\beta}\underbrace{min}_xL(x,\alpha,\beta)\leq\underbrace{min}_x\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta)=p^* \]
由於對任意的\(\alpha,\beta,x\),都有
\[ \theta_D(\alpha,\beta)=\underbrace{min}_xL(x,\alpha,\beta)\leq{L(x,\alpha,\beta)}\leq\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta)=\theta_P(x) \]
即
\[ theta_D(\alpha,\beta)\leq\theta_P(x) \]
因爲原始問題和對偶問題都有最優值,因此
\[ \underbrace{max}_{\alpha,\beta}\theta_D(\alpha,\beta)\leq\underbrace{min}_x\theta_P(x) \]
即
\[ d^*=\underbrace{max}_{\alpha,\beta}\underbrace{min}_xL(x,\alpha,\beta)\leq\underbrace{min}_x\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta)=p^* \]
上述說明了原始問題的最優值不小於對偶問題的最優值,可是咱們要經過對偶問題來求解原始問題,就必須得使原始問題的最優值與對偶問題的最優值相等。
經過定理1能夠推出:假設\(x^*,\alpha^*,\beta^*\)分別是原始問題和對偶問題的可行解,若是\(d^*=p^*\),則\(x^*,\alpha^*,\beta^*\)分別是原始問題和對偶問題的最優解。
當原始問題和對偶問題的最優值相等\(d^*=p^*\),若是使用對偶問題比求解原始問題簡單,則能夠用對偶問題求解原始問題。
對於原始問題和對偶問題,假設函數\(f(x)\)和\(c_i(x)\)是凸函數,\(h_j(x)\)是仿射函數(注:仿射函數是一階多項式構成的函數,\(f(x)=Ax+b\),\(A\)是矩陣,\(x,b\)是向量);而且假設不等式約束\(c_i(x)\)是嚴格可行的,即存在\(x\),對全部的\(i\)有\(c_i(x)<0\),則存在\(x^*,\alpha^*,\beta^*\),使\(x^*\)是原始問題的解,\(\alpha^*,\beta^*\)是對偶問題的解,而且會有
\[ p^*=d^*=L(x^*,\alpha^*,\beta^*) \]
對於原始問題和對偶問題,假設函數\(f(x)\)和\(c_i(x)\)是凸函數,\(h_j(x)\)是仿射函數;而且假設不等式約束\(c_i(x)\)是嚴格可行的,即存在\(x\),對全部的\(i\)有\(c_i(x)<0\),則\(x^*\)是原始問題的解,\(\alpha^*,\beta^*\)是對偶問題的解的充分必要條件是\(x^*,\alpha^*,\beta^*\)知足下面的Karush-Kuhn-Tucker(KKT)條件
\[ \begin{align} & \nabla_xL(x^*,\alpha^*,\beta^*)=0 \\ & \nabla_\alpha{L(x^*,\alpha^*,\beta^*)}=0 \\ & \nabla_\beta{L(x^*,\alpha^*,\beta^*)}=0 \\ & \alpha_i^*c_i(x^*)=0,\quad{i=1,2,\cdots,k} \\ & c_i(x^*)\leq0,\quad{i=1,2,\cdots,k} \\ & \alpha_i^*\geq0,\quad{i=1,2,\cdots,k} \\ & h_j(x^*)=0,\quad{j=1,2,\cdots,l} \end{align} \]
其中\(\alpha_i^*c_i(x^*)=0,\quad{i=1,2,\cdots,k}\)是KKT的對偶互補條件,由該條件可知:若是\(\alpha_i^*>0\),則\(c_i(x^*)=0\)。