拉格朗日乘子法(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條件。前提是 只有當目標函式為凸函式時,使用這兩種方法才保證求得的是最優解。對於無約束最優化問題,有很多...