拉格朗日乘子法、KKT条件、拉格朗日对偶性
@20160718
笔记主要来源于维基百科和《统计学习方法》
拉格朗日乘子法(Lagrange Multiplier)
拉格朗日乘子法是一种寻找有等式约束条件的函数的最优值(最大或者最小)的最优化方法.在求取函数最优值的过程中,约束条件通常会给求取最优值带来困难,而拉格朗日乘子法就是解决这类问题的一种强有力的工具.
1. 单约束问题
考虑以下的二维单约束优化问题:
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)不符。