最優化:拉格朗日乘子法


作者:桂。

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

鏈接:http://www.cnblogs.com/xingshansi/p/6628785.html 

聲明:歡迎被轉載,不過記得注明出處哦~


 【讀書筆記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 成立。

證明可以參考:pluskid大神的文章

總結一下:

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

參考:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM