拉格朗日乘子法 KKT條件 拉格朗日對偶性

2021-08-28 09:52:01 字數 3906 閱讀 9502

拉格朗日乘子法(lagrange multiplier)

拉格朗日乘子法是一種尋找有等式約束條件的函式的最優值(最大或者最小)的最優化方法.在求取函式最優值的過程中,約束條件通常會給求取最優值帶來困難,而拉格朗日乘子法就是解決這類問題的一種強有力的工具.

單約束問題

考慮以下的二維單約束優化問題:

maximize f(x,y)f(x,y)

subject to g(x,y)=0g(x,y)=0

把f(x,y)f(x,y)繪製成等高圖,當沿著曲線g(x,y)=0g(x,y)=0尋找最大值時,函式最大值的點應該是在f(x,y)=maximumf(x,y)=maximum與g(x,y)=0g(x,y)=0相切的位置,但是有時候也會遇到沿著g(x,y)=0g(x,y)=0尋找的過程中,f(x,y)f(x,y)在某一段保持不變,這個時候也有可能這段點集就是我們要尋找的最優解.有兩種可能會出現這種情況:1) ff和gg是」平行」的,也就是我們在約束曲線上尋找的同時也是在f(x,y)=df(x,y)=d上移動; 2) 遇到了ff的level part,意思就是,ff在任何方向都不會改變.

在以上兩種情況中都存在λλ滿足下式:

∇x,yf=−λ∇x,yg,

總結上述所有公式,我們有:

l(x,y,λ)=f(x,y)+λg(x,y)

解:∇x,y,λl(x,y,λ)=0

這種方法就是拉格朗日乘子法,其中λλ就是拉格朗日乘子,當第二種情況出現時λ=0λ=0.

類似地,針對多變數問題,我們可通過解下式獲得最優解:

∇x1,…,xn,λl(x1,…,xn,λ)=0

多約束問題

考慮乙個簡單的約束問題:兩個約束曲線僅相交於一點,那麼很顯然,這一點就是最優點.再考慮一下更一般的情況,ff的level set並不平行於所有的約束曲線,這時候應該怎麼辦呢?線性組合!!!拉格朗日乘子法所尋找的點對應的梯度並不是ff任意某個約束的梯度的倍數,而是所有約束梯度的線性組合!

用aa表示可尋找的向量空間,ss表示約束梯度的張量空間,就有:a=s⊥a=s⊥,向量空間垂直與ss中的每乙個元素.

與單約束問題類似,我們仍然考慮在沿著向量空間尋找過程中那些使ff不變的點,因為這些點可能就是最優值.

也就是說,我們需要尋找那些xx使得其移動方向垂直於∇f(x)∇f(x),因為這個時候ff才是不發生變化的,則有:∇f(x)∈a⊥=s∇f(x)∈a⊥=s,因此,存在實數λ1,λ2,…,λmλ1,λ2,…,λm滿足:

∇f(x)=−∑k=1mλk∇gk(x)

其中,那些實數就是拉格朗日乘子,相應的拉格朗日函式式如下:

l(x1,…,xn,λ1,…,λm)=f(x1,…,xn)−∑k=1mλkgk(x1,…,xn),

解:∇x1,…,xn,λ1,…,λml(x1,…,xn,λ1,…,λm)=0

以上就是拉格朗日乘子法針對多約束問題的求解辦法.

kkt條件(karush–kuhn–tucker conditions)

kkt條件是拉格朗日乘子法的拓展,是一種求取含不等式約束條件的函式最優值的方法.

考慮以下非線性優化問題:

maxmize f(x)

subject to gi(x)≤0,hj(x)=0

其中xx就是優化變數,ff是目標函式,gi (i=1,2,…,m)gi (i=1,2,…,m)是不等式約束函式,hj (j=1,2,…,l)hj (j=1,2,…,l)是等式約束函式.

針對該問題,kkt條件就是指最優點x∗x∗滿足以下條件:

∇f(x∗)=∑i=1mμi∇gi(x∗)+∑j=1lλj∇hj(x∗)

gi(x∗)≤0, for all i=1,2,…,m

hj(x∗)=0, for all j=1,2,…,l

μi≥0, for all i=1,2,…,m

μigi(x∗)=0, for all i=1,2,…,m

拉格朗日對偶性(lagrange duality)

在約束最優化問題中,常常利用拉格朗日對偶性將原始問題轉化為對偶問題。通過解對偶問題而得到原始問題的解.

原始問題(primal problem)

假設f(x),ci(x),hj(x)f(x),ci(x),hj(x)是定義在rnrn上的連續可微函式。考慮如下最優化問題:

minx∈rnf(x) (1)

s.t. ci(x)≤0, i=1,2,…,k (2)

hj(x)=0, j=1,2,…,l (3)

稱此約束最優化問題為原始最優化問題或原始問題.

引入廣義拉格朗日函式

l(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x) (4)

這裡, αi,βjαi,βj是拉格朗日乘子,αi≥0αi≥0. 考慮xx的函式:

θp(x)=maxα,β;αi≥0l(x,α,β) (5)

這裡下標pp表示原始問題.

容易得到:當xx滿足原始問題約束時,θp(x)=f(x)θp(x)=f(x),則可得到與原始優化問題想等價的極小化問題如下:

minxθp(x)=minxmaxα,β;αi≥0l(x,α,β) (6)

此問題稱為廣義拉格朗日函式的極小極大問題. 定義原始問題的最優值

p∗=minxθp(x) (7)

稱為原始問題的值.

2. 對偶問題(dual problem)

定義θd(α,β)=minxl(x,α,β) (8)

再考慮極大化上式,即

maxα,β;αi≥0θd(α,β)=maxα,β;αi≥0minxl(x,α,β) (9)

問題maxα,β;α≥0minxl(x,α,β)maxα,β;α≥0minxl(x,α,β)稱為廣義拉格朗日函式的極大極小問題.

可將廣義拉格朗日函式的極大極小問題表示為約束最優化問題:

maxα,βθd(α,β)=maxα,βminxl(x,α,β) (10)

s.t. αi≥0, i=1,2,…,k (11)

稱為原使問題的對偶問題. 定義對偶問題的最優值

d∗=maxα,β;αi≥0θd(α,β) (12)

稱為對偶問題的值.

3. 原始問題和對偶問題的關係

這裡直接列出《統計學習方法》中的幾個定理和推論.

定理1 若原始問題和對偶問題都有最大值,則

d∗=maxα,β;αi≥0minxl(x,α,β)≤minxmaxα,β;αi≥0l(x,α,β)=p∗

推論1 設x∗x∗和α∗,β∗α∗,β∗分別是原始問題(公式1~3)和對偶問題(公式10~11)的可行解,並且d∗=p∗d∗=p∗,則 x∗x∗和α∗,β∗α∗,β∗分別是原始問題和對偶問題的最優解.

定理2 考慮原始問題(公式1~3)和對偶問題(公式10~11). 假設函式f(x)f(x)和ci(x)ci(x)是凸函式, hj(x)hj(x)是仿射函式1; 並且假設不等式約束ci(x)ci(x)是嚴格可行的, 即存在xx, 對所有ii有ci(x)<0ci(x)<0, 則存在x∗,α∗,β∗x∗,α∗,β∗,使x∗x∗是原始問題的解, α∗,β∗α∗,β∗是對偶問題的解,並且

p∗=d∗=l(x∗,α∗,β∗)

定理3 對原始問題(公式1~3)和對偶問題(公式10~11), 假設函式f(x)f(x)和ci(x)ci(x)是凸函式,hj(x)hj(x)是仿射函式,並且不等式約束ci(x)ci(x)是嚴格可行的, 則x∗x∗和α∗,β∗α∗,β∗分別是原始問題和對偶問題的解的充分必要條件是x∗,α∗,β∗x∗,α∗,β∗滿足kkt條件:

∇xl(x∗,α∗,β∗)=0

α∗ici(x∗)=0, i=1,2,…,k

ci(x∗)≤0, i=1,2,…,k

α∗i≥0, i=1,2,…,k

hj(x∗)=0, j=1,2,…,l

注:在該定理中,書中還給出以下兩個條件

∇αl(x∗,α∗,β∗)=0

∇βl(x∗,α∗,β∗)=0

我認為是錯誤的,如果滿足的話,那麼ci(x∗)=0,i=1,2,…,kci(x∗)=0,i=1,2,…,k,顯然廣義上的拉格朗日函式變成了原始的拉格朗日函式,與原始問題(公式2)不符。

拉格朗日乘子法和KKT條件

深入理解拉格朗日乘子法 lagrange multiplier 和kkt條件 在求取有約束條件的優化問題時,拉格朗日乘子法 lagrange multiplier 和kkt 條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值 如果含有不等式約束,可以應用 kkt...

拉格朗日乘子法和KKT條件

拉格朗日乘子法 lagrange multiplier 和kkt karush kuhn tucker 條件是求解約束優化問題的重要方法,在有等式約束時使用拉格朗日乘子法,在有不等約束時使用kkt條件。前提是 只有當目標函式為凸函式時,使用這兩種方法才保證求得的是最優解。對於無約束最優化問題,有很多...

拉格朗日乘子法和KKT條件

拉格朗日乘子法 lagrange multiplier 和kkt karush kuhn tucker 條件是求解約束優化問題的重要方法,在有等式約束時使用拉格朗日乘子法,在有不等約束時使用kkt條件。前提是 只有當目標函式為凸函式時,使用這兩種方法才保證求得的是最優解。對於無約束最優化問題,有很多...