拉格朗日乘子法(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
其中,那些实数就是拉格朗日乘子,相应的拉格朗日函数式如下:
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)
在约束最优化问题中,常常利用拉格朗日对偶性将原始问题转化为对偶问题。通过解对偶问题而得到原始问题的解.
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)不符。
本文来自 MeJnCode 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/sinat_17496535/article/details/52103852?utm_source=copy