拉格朗日乘子法、KKT条件、拉格朗日对偶性
拉格朗日乘子法、KKT條件、拉格朗日對偶性
轉載于http://blog.csdn.net/sinat_17496535/article/details/52103852
筆記主要來源于維基百科和《統計學習方法》
拉格朗日乘子法(Lagrange Multiplier)
拉格朗日乘子法是一種尋找有等式約束條件的函數的最優值(最大或者最小)的最優化方法.在求取函數最優值的過程中,約束條件通常會給求取最優值帶來困難,而拉格朗日乘子法就是解決這類問題的一種強有力的工具.
考慮以下的二維單約束優化問題:
maximize f(x,y)
subject to g(x,y)=0
把f(x,y)繪制成等高圖,當沿著曲線g(x,y)=0尋找最大值時,函數最大值的點應該是在f(x,y)=maximum與g(x,y)=0相切的位置,但是有時候也會遇到沿著g(x,y)=0尋找的過程中,f(x,y)在某一段保持不變,這個時候也有可能這段點集就是我們要尋找的最優解.有兩種可能會出現這種情況:1) f和g是”平行”的,也就是我們在約束曲線上尋找的同時也是在f(x,y)=d上移動; 2) 遇到了f的level part,意思就是,f在任何方向都不會改變.
在以上兩種情況中都存在λ滿足下式:
?x,yf=?λ?x,yg,
總結上述所有公式,我們有:
L(x,y,λ)=f(x,y)+λg(x,y)
解:
?x,y,λL(x,y,λ)=0
這種方法就是拉格朗日乘子法,其中λ就是拉格朗日乘子,當第二種情況出現時λ=0.
類似地,針對多變量問題,我們可通過解下式獲得最優解:
?x1,…,xn,λL(x1,…,xn,λ)=0
2. 多約束問題
考慮一個簡單的約束問題:兩個約束曲線僅相交于一點,那么很顯然,這一點就是最優點.再考慮一下更一般的情況,f的level set并不平行于所有的約束曲線,這時候應該怎么辦呢?線性組合!!!拉格朗日乘子法所尋找的點對應的梯度并不是f任意某個約束的梯度的倍數,而是所有約束梯度的線性組合!
用A表示可尋找的向量空間,S表示約束梯度的張量空間,就有:A=S⊥,向量空間垂直與S中的每一個元素.
與單約束問題類似,我們仍然考慮在沿著向量空間尋找過程中那些使f不變的點,因為這些點可能就是最優值.
也就是說,我們需要尋找那些x使得其移動方向垂直于?f(x),因為這個時候f才是不發生變化的,則有:?f(x)∈A⊥=S,因此,存在實數λ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
其中x就是優化變量,f是目標函數,gi (i=1,2,…,m)是不等式約束函數,hj (j=1,2,…,l)是等式約束函數.
針對該問題,KKT條件就是指最優點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)
在約束最優化問題中,常常利用拉格朗日對偶性將原始問題轉化為對偶問題。通過解對偶問題而得到原始問題的解.
1. 原始問題(primal problem)
假設f(x),ci(x),hj(x)是定義在Rn上的連續可微函數。考慮如下最優化問題:
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≥0. 考慮x的函數:
θP(x)=maxα,β;αi≥0L(x,α,β) (5)
這里下標P表示原始問題.
容易得到:當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α,βθ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?和α?,β?分別是原始問題(公式1~3)和對偶問題(公式10~11)的可行解,并且d?=p?,則 x?和α?,β?分別是原始問題和對偶問題的最優解.
定理2 考慮原始問題(公式1~3)和對偶問題(公式10~11). 假設函數f(x)和ci(x)是凸函數, hj(x)是仿射函數1; 并且假設不等式約束ci(x)是嚴格可行的, 即存在x, 對所有i有ci(x)<0, 則存在x?,α?,β?,使x?是原始問題的解, α?,β?是對偶問題的解,并且
p?=d?=L(x?,α?,β?)
定理3 對原始問題(公式1~3)和對偶問題(公式10~11), 假設函數f(x)和ci(x)是凸函數,hj(x)是仿射函數,并且不等式約束ci(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,…,k,顯然廣義上的拉格朗日函數變成了原始的拉格朗日函數,與原始問題(公式2)不符。
f(x)稱為仿射函數,如果它滿足f(x)=ax+b,a∈Rn,b∈R,x∈Rn ?
總結
以上是生活随笔為你收集整理的拉格朗日乘子法、KKT条件、拉格朗日对偶性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原创:Eclipse 上网代理设置(亲测
- 下一篇: Error LNK2005:_main