1. 程式人生 > >最優化:拉格朗日乘子法

最優化:拉格朗日乘子法

作者:桂。

時間:2017-03-27 20:26:17

宣告:歡迎被轉載,不過記得註明出處哦~

 【讀書筆記06】

前言

看到西蒙.赫金的《自適應濾波器原理》第四版第四章:最速下降演算法。最速下降法、擬牛頓法等都是求解準則函式(即無約束優化問題)的演算法,這就需要有一個前提:怎樣得到無約束準則函式?聯想到之前看維納濾波:無約束維納濾波約束維納濾波,提到了拉格朗日乘子,將有限制條件的優化問題轉化為無限制的優化問題,可見拉格朗日乘子搭建了一個橋樑:將有限制的準則函式,轉化為無限制準則函式,進而藉助最速下降法、擬牛頓法等求參演算法進行求解,在這裡彙總一下拉格朗日乘子法是有必要的,全文包括:

  1)含有等式約束的拉格朗日乘子法;

  2)拉格朗日對偶方法;

內容為自己的學習記錄,其中多有參考他人,最後一併給出連結。

一、含有等式約束拉格朗日乘子法

對於含有約束的優化問題,可以在約束域內對準則函式搜尋最優解,但如果約束較為複雜搜尋起來顯然不那麼容易,如果藉助某種方式將約束問題轉化為無約束問題,求解則更為方便一些,這也是拉格朗日乘子法的魅力所在。本段內容為維納濾波一文的開頭部分。

  A-只含一個等式約束的最優化

實函式$f\left( {\bf{w}} \right)$是引數向量${\bf{w}}$的二次函式,約束條件是:

${{{\bf{w}}^H}{\bf{s}} = g}$

其中$\bf{s}$是已知向量,$g$是復常數。例如在波束形成應用中${\bf{w}}$表示各感測器輸出的一組複數權值,$\bf{s}$是一個旋轉向量。假設該問題是一個最小化問題,令$c\left( {\bf{w}} \right) = {{\bf{w}}^H}{\bf{s}} - g = 0 + j0$可以描述為:

所謂拉格朗日乘子法,就是引入拉格朗日乘子:將上述約束最小化問題轉化為無約束問題,定義一個新的實函式:

$h\left( {\bf{w}} \right) = f\left( {\bf{w}} \right) + {\lambda _1}{\mathop{\rm Re}\nolimits} \left[ {c\left( {\bf{w}} \right)} \right] + {\lambda _2}{\mathop{\rm Im}\nolimits} \left[ {c\left( {\bf{w}} \right)} \right]$

現在定義一個復拉格朗日乘子:

$\lambda  = {\lambda _1} + {\lambda _2}$

$h({\bf{w}})$改寫為:

$h\left( {\bf{w}} \right) = f\left( {\bf{w}} \right) + {\mathop{\rm Re}\nolimits} \left[ {{\lambda ^*}c\left( {\bf{w}} \right)} \right]$

至此,無約束優化問題轉化完成,利用偏導求參即可,其實這是一個簡化的形式,分別求解$\lambda _1$、$\lambda _2$也是一樣的。

  B-包含多個等式約束的最優化

實函式$f\left( {\bf{w}} \right)$是引數向量${\bf{w}}$的二次函式,約束條件是:

${{{\bf{w}}^H}{\bf{s_k}} = g_k}$

其中$k = 1,2...K$,方法同單個約束情況相同,求解伴隨方程:

$\frac{{\partial f}}{{\partial {{\bf{w}}^*}}} + \sum\limits_{k = 1}^K {\frac{\partial }{{\partial {{\bf{w}}^*}}}\left( {{\mathop{\rm Re}\nolimits} \left[ {\lambda _k^*{c_k}\left( {\bf{w}} \right)} \right]} \right)}  = {\bf{0}}$

此時與多個等式約束聯合成方程組,這個方程組定義了${\bf{w}}$和拉格朗日乘子${\lambda _1}$、${\lambda _2}$...${\lambda _K}$的解。

如果含有不等式約束,或者說既有等式約束、又有不等式約束呢?

二、拉格朗日對偶問題(Lagrange duality)

  A-原始問題

給出約束優化問題模型:

其中${h_i}\left( x \right) = 0,\;i = 1,...q$也可寫成矩陣形式:${\bf{Ax}} = {\bf{b}}$.該模型為原始問題

該模型利用拉格朗日乘子可以鬆弛為無約束優化問題:

$\min \;\;L\left( {x,\lambda ,v} \right) = {f_0}\left( x \right) + \sum\limits_{i = 1}^m {{\lambda _i}{f_i}\left( x \right) + \sum\limits_{i = 1}^q {{v_i}{h_i}\left( x \right)} } $

該模型為對偶問題。約束${{\lambda _i}} \ge 0$,則$\sum\limits_{i = 1}^m {{\lambda _i}{f_i}\left( x \right)}  \le 0$,即:

$L\left( {x,\lambda ,v} \right) \le {f_0}\left( x \right)$

 為了逼近$f_0(x)$,首先針對${\lambda ,v}$對其最大化:

但由於該問題只是對${\lambda ,v}$的約束,無法避免違反約束$f_i(x)>0$,從而導致$J_1(x)$無窮大:

可以看出將$J_1(x)$極小化即可得解:

這是原始約束極小化問題變成無約束極小化問題後的代價函式,簡稱原始代價函式。定義原始約束極小化問題的最優解:

這就是原始最優解(Optimal primal value).

給出兩點凸函式性質:

性質1:無約束凸函式$f(x)$的任何區域性極小點$x^*$都是該函式的一個全域性極小點;

性質2:如果$f(x)$是強凸函式,則極小化問題$\min f(x)$可解,且其解$x$唯一。

但這裡存在一個問題:如果$f_0(x)$不是凸函式(也非凹),便沒有性質1、性質2,即使設計了優化演算法,可以得到某個區域性極值點,但不能保證它是一個全域性極值點。

如果可以:將非凸目標函式的極小化轉換成凹目標函式的極大化,區域性極值點便是全域性極值點。實現轉換的手段便是——對偶方法。

  B-對偶方法

考慮構造另一個目標函式:

這個模型是原問題的對偶問題,根據上式:

得到對偶目標函式:

由此可見:${J_D}\left( {\lambda ,v} \right)$是$x$的凹函式,即使$f_0(x)$不是凸函式(凹函式同理,本文僅以凸為例).此時任何一個區域性極值點都是一個全域性極值點。至此:原約束極小化問題轉化為對偶目標函式的無約束極大化演算法設計,這一方法就是:拉格朗日對偶法

記對偶目標函式最優值(簡稱對偶最優值)為:

${d^*} = {J_D}\left( {{\lambda ^*},{v^*}} \right)$

給出兩點性質:$\max$為凸函式,$\min$為凹函式,與$f(.)$內部形式無關。

性質1:函式$f\left( x \right) = \max$ { ${x_1},{x_2},...,{x_n}$} 在${{\bf{R}}^n}$上是凸函式。

證明

對任意$0 \le \theta \le 1$,函式$f(x) = \max_i x_i$滿足:

性質2:函式$f\left( x \right) = \min$ { ${x_1},{x_2},...,{x_n}$} 在${{\bf{R}}^n}$上是凹函式。

證明與上同。

  C-對偶目標函式與原目標函式關係

首先寫出原最優值與對偶最優值的關係:

字面理解:瘦子裡的胖子,體重不會超過胖子裡的瘦子。分析其理論:

對於極值點$x^*$,恆有:

可以看出$\mathop {\min \;}\limits_x L\left( {x,\lambda ,v} \right)$是$p^*$的下界,而$d^*$自然是下界中最大的那個(最接近原始最優解):

事實上對任何一個非負實值函式$f(x,y)$,總有:

既然是下界,就必然有差距,定義$p^*-d^*$為對偶間隙(duality gap).我們稱${p^*} \ge {d^*}$為弱對偶性(weak duality).

  D-Slater定理

首先給出凸優化定義:

形式:

其中$h_i(x)$是形如$h_i(x) = a^{T}_ix = b_i$的仿射函式。相對上面討論的優化問題,凸優化問題有三個附加要求:

  • 目標函式必須是凸的;
  • 不等式函式約束必須是凸的;
  • 等式約束必須是仿射的;

凹凸可以轉化:對於凹函式$f$,$-f$即為凸函式。

 與weak duality對應的是strong duality(強對偶性):${p^*} = {d^*}$,給出Slater定理:

如果原不等式優化問題為凸優化問題,且滿足Slater條件:

  • $f_i(x) < 0$,$i=1,2,...,m$;
  • $h_i(x) = 0$,$i=1,2,...,q$;

則${p^*} = {d^*}$。

  E-KKT條件

 首先給出KKT(Karush-Kuth-Tucker,KKT)條件:

1)、2)、3)都容易理解,對於4)主要是防止$f_i(x)>0$的出現,從而設定一個障礙;5)因為$x^*$是最優值,只要偏導存在,該式成立——平穩點存在。

可以得出:

對於一般性優化問題

  • KKT是原問題轉化為對偶優化問題的必要條件(區域性極小解一階必要條件);
  • 如果約束條件滿足凸優化定義,僅僅$f_0(x)$為一般函式,則 原問題準則函式 和 對偶準則函式 的極值點通常不一致。

對於凸優化問題

  • 滿足KKT條件的店,那麼它們分別是 原問題準則函式對偶準則函式 的極值點並且 strong duality 成立。

總結一下:

  1. 對偶問題可以將準則函式轉化為凸函式;
  2. KKT為凸優化判定提供了依據;
  3. 對偶轉化、KKT以及Slater並不限於凸優化問題。

參考:

相關推薦

最優化

作者:桂。 時間:2017-03-27 20:26:17 宣告:歡迎被轉載,不過記得註明出處哦~  【讀書筆記06】 前言 看到西蒙.赫金的《自適應濾波器原理》第四版第四章:最速下降演算法。最速下降法、擬牛頓法等都是求解準則函式(即無約束優化問題)的演算法,這就需要有一個前提:怎樣得

約束極值問題、KKT條件與對偶理論

1 等式約束極值問題 考慮非線性規劃 min⁡f(x)x∈Rns.t.φi(x)=0,i=1,⋯&ThinSpace;,m\begin{aligned} \min &amp;\quad f(\bm{x}) \quad \bm{x}\in\R^

最優化問題求解之+KKT條件

因SVM-- 拉格朗日對偶(Lagrange duality)問題而學習 https://blog.csdn.net/u011067360/article/details/25215465 這篇博文不錯,整理了筆記,順便收藏在這 KKT條件:對一般的任意問題而言,是使一組解成為最優解

解密SVM系列(一)關於和KKT條件

寫在之前 支援向量機(SVM),一個神祕而眾知的名字,在其出來就受到了莫大的追捧,號稱最優秀的分類演算法之一,以其簡單的理論構造了複雜的演算法,又以其簡單的用法實現了複雜的問題,不得不說確實完美。 本系列旨在以基礎化的過程,例項化的形式一探S

的幾何解釋

font nbsp 幾何 lam 極值 而在 相交 排除 最大 問題:函數f(x,y,z)在 g(x,y,z)=0 的約束下取極值(最大或最小) f(x,y,z)=c c取定義域中的任意值時形成空間中一系列曲面 S_f,這些曲面互相平行(不允許相交--等位面|線

深入理解(Lagrange Multiplier) 和KKT條件

比較 log lan 條件 出了 net csdn art blank 這篇將拉格朗日函數比較全面,其中明確給出了拉格朗日函數,拉格朗日乘子的定義 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件深入理解拉格朗日乘子法(Lagrange Mu

和KKT條件

數值 想象 radi 如果 ont inf 解決 tex spa 1. 拉格朗日乘子(Lagrange Multiplier)法 假設函數z=f(x,y),求該函數的最小值,如果沒有約束條件,則可以表示為minf(x,y),要求出minf(x,y)很簡單,根據Fermat

及KKT條件證明

一、簡介 在取有約束條件的優化問題時,拉格朗日乘子法(Lagrange Multiplier) 和KKT條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值;如果含有不等式約束,可以應用KKT條件去求取。當然,這兩個方法求得的結果只是必要條件,只有

機器學習 --- 和KTT條件

本篇文章主要為之後的支援向量機打下數學基礎   一、拉格朗日乘子法的目的 拉格朗日乘子法將原始的約束問題轉換成求解無約束優化問題。 對形如: 通過拉格朗日乘子法轉化成: 通俗地說就是轉換目標函式,把約束條件去掉。  

與KKT的理解

在求解最優化問題中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)條件是兩種最常用的方法。在有等式約束時使用拉格朗日乘子法,在有不等約束時使用KKT條件。   我們這裡提到的最優化問題通常是指對於給定的某一函式,求其在指定作用域上的全域性

【機器學習筆記16】

【參考資料】 【1】《統計學習方法》 【2】《凸優化》 【3】小象學院 《凸優化》 凸集 直線和線段的表達 設x1≠x2x_1 \ne x_2x1​̸​=x2​是RnR^nRn空間上的兩個點,具有存在下列定義的點: y=θx1+(1−θ)x2y = \thet

約束優化方法之與KKT條件

引言 本篇文章將詳解帶有約束條件的最優化問題,約束條件分為等式約束與不等式約束,對於等式約束的優化問題,可以直接應用拉格朗日乘子法去求取最優值;對於含有不等式約束的優化問題,可以轉化為在滿足 KKT 約束條件下應用拉格朗日乘子法求解。拉格朗日求得的並不一定是最優解,只有在凸

(有約束優化問題)

                     拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)條件是求解約束優化問題的重要方法,在有等式約束時使用拉格朗日乘子法,在有不等約束時使用KKT條件。前提是:只有當目標函式為凸函式時,使用這兩種方法才保證求得的是最優

數學基礎-學習資料

最近學習支援SVM,其中目標函式是一個有約束條件下的最優化問題。 這個問題要用拉格朗日乘子法進行推導。個人本來打算寫一篇文章來解釋這個。後來通過查詢,發現網上有很多資料,把這些讀了一遍,發現疑問都解決了。所以在這裡把資料彙總一下,與大家分享。 學習資料 數學掃盲----拉格朗日乘子法 拉

機器學習數學原理(5)——廣泛

機器學習數學原理(5)——廣泛拉格朗日乘子法 這一篇部落格針對的是有約束的凸優化問題,主要是為後面的最優間隔分類器以及其演化的SVM(支援向量機,Support Vector Machine)演算法作鋪墊。Andrew Ng在講解最優間隔分類器時運用了廣泛拉格朗日乘子法但並沒有講的十

基礎數學知識(一)——

  這幾天一直在看支援向量機,然後就是大量大量的數學公式,一直迷迷糊糊的,然後一直遇到拉格朗日,拉格朗日,原來數學基礎也不好,沒怎麼學過,於是下定決心要把拉格朗日乘子法搞懂,花了幾天,看了一些文章,算是對拉格朗日乘子法有了簡單的瞭解,下面就和大家簡單的分享分享啦

、罰函式罰函式

本文簡單總結一些相關概念,具體證明以後再補充; 1. 拉格朗日乘子法 2. 罰函式法:外罰函式與內罰函式法 3. 廣義乘子法 1. 拉格朗日乘子法 1.1 無約束問題 無約束問題,定義為 minf(x)minf(x)

深入理解(Lagrange Multiplier) 和KKT條件 (約束優化問題)

在求解最優化問題中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)條件是兩種最常用的方法。在有等式約束時使用拉格朗日乘子法,在有不等約束時使用KKT條件。  我們這裡提到的最優化問題通常是指對於給定的某一函式,求其在指

真正理解和KKT條件

 這篇博文中直觀上講解了拉格朗日乘子法和 KKT 條件,對偶問題等內容。 首先從無約束的優化問題講起,一般就是要使一個表示式取到最小值: minf(x)minf(x)  如果問題是 maxf(x)maxf(x) 也可以通過取反轉化為求最小值min−f(x

與KKT條件

1. 一般約束優化問題 一般約束優化問題的形式為:   定義拉格朗日函式為:   則一般約束優化問題的最優性條件(KKT條件):   2. 對偶問題 一個優化問題可以從兩個角度來考慮,一是被優化的原