阅读本文前,请先了解拉格朗日乘数法和KKT最优化条件(拉格朗日乘数法的推广)。本文讨论的内容“拉格朗日对偶问题”在关于“凸优化”的相关书籍中可以找到。
参考:
http://cbio.ensmp.fr/~jvert/teaching/2006insead/slides/4_duality/duality.pdf
《统计学习方法,李航著》
这里讨论的问题就是KKT最优化条件所适用的含不等式约束条件的最优化问题。
原始问题为:
假设 f(x),gi(x),hi(x) 是定义在 Rn 上的连续可微函数。考虑下面最优化问题:
minimizef(x)subject togi(x)≤0,i=1,2,⋯,mhj(x)=0,j=1,2,⋯,n
“KKT最优化条件”指出当 f(x) 取最小值时, x 满足下面的方程组:
{∇f(x)+∑i=1mμi∇gi(x)+∑j=1nλj∇hj(x)=0gi(x)≤0,∀i=1,⋯,mhj(x)=0,∀j=1,⋯,nμi≥0,∀i=1,⋯,mμigi(x)=0,∀j=1,⋯,m
求解上面方程组,可以得到原问题的解。
但我们还有其它的办法——先求解这个问题的对偶问题(有时求解对偶问题比求解上面方程组更加容易),从而由对偶问题的解得到原问题的解。
引入广义拉格朗日函数:
L(x,λ,μ)=f(x)+∑i=1mμigi(x)+∑j=1nλjhj(x)
定义关于 x 的函数:
ϕ(x)=maxλ,μ;μi≥0L(x,λ,μ)
下面分析一下函数 ϕ(x) :
(1) 如果 x 满足原问题约束条件 gi(x)≤0,i=1,2,⋯,m 及 hj(x)=0,j=1,2,⋯,n ,则有:
L(x,λ,μ)=f(x)+∑i=1mμigi(x)⏟≤0+∑j=1nλjhj(x)⏟=0≤f(x)
从而:
ϕ(x)=maxλ,μ;μi≥0L(x,λ,μ)=f(x)
(2) 如果 x 不满足原问题的约束条件,则可得: ϕ(x)=maxL(x,λ,μ)→+∞ ,这是因为:
(2.1) 如果存在某个 i 使得 gi(x)>0 ,则可以令 μi→+∞ ,从而 ϕ(x)=maxL(x,λ,μ)→+∞
(2.2) 如果存在某个 j 使得 hj(x)≠0 ,则可令 λjhj(x)→+∞ ,从而 ϕ(x)=maxL(x,λ,μ)→+∞
综上所述,有:
满足原始问题的约束条件ϕ(x)=maxλ,μ;μi≥0L(x,λ,μ)={f(x),x满足原始问题的约束条件+∞,otherwise
由上式可知,如果我们考虑 ϕ(x) 的最小化问题,那么它显然和原问题是等价的。即原问题等价于下面优化问题:
minimizexmaxλ,μ;μi≥0L(x,λ,μ)
上面问题还不是原问题对偶问题,再考虑上面优化问题的变换形式(把“先求最大值再求最小”值转换成了“先求最小值再求最大值”):
maximizeλ,μminxL(x,λ,μ)subject toμi≥0,i=1,2,⋯,m
我们定义这个问题为 原问题的拉格朗日对偶问题(Lagrangian dual problem)。
2.1.1 对偶问题总结
对前面介绍知识简单总结如下:
和原问题等价的优化问题Primal problem和原问题等价的优化问题Lagrangian Dual problemminimizexf(x)minimizexmaxλ,μ;μi≥0L(x,λ,μ)maximizeλ,μminxL(x,λ,μ)subject to:gi(x)≤0,i=1,2,⋯,msubject to:μi≥0,i=1,2,⋯,mhj(x)=0,j=1,2,⋯,n
其中, L(x,λ,μ)=f(x)+∑i=1mμigi(x)+∑j=1nλjhj(x)
说明:对偶问题中的目标函数称为 对偶函数 ,即对偶函数定义为: Θ(λ,μ)=minxL(x,λ,μ)
弱对偶定理:
如果原问题和其对偶问题都存在最优值,设原问题的最优值(最小值)为 p∗ ,对偶问题的最优值(最大值)为 d∗ ,则
d∗≤p∗
证明如下:
设原问题取最小值时: x=x¯ ,即有 p∗=f(x¯) ;对偶问题取最大值时: λ=λ¯,μ=μ¯ ,即有 d∗=minxL(x,λ¯,μ¯)
推导如下:
d∗=minxL(x,λ¯,μ¯)≤L(x¯,λ¯,μ¯)=f(x¯)+∑i=1mμigi(x¯)⏟≤0+∑j=1nλjhj(x¯)⏟=0≤f(x¯)=p∗
证毕。
说明: 弱对偶定理说明“对偶函数在其约束条件下的最大值”比“原函数在其约束条件下的最小值”还小(或相等)。这样,极大化对偶函数可以逼近原函数最优解。
如果原问题是个求最大值的优化问题,那么类似地有:“对偶函数在其约束条件下的最小值”比“原函数在其约束条件下的最大值”还大(或相等)。
Figure 1: 对偶问题和原问题的最优值的关系
强对偶定理(这里仅给出结论,其证明从略):
如果:
(1) 函数 f(x) 和 gi(x) 是凸函数,函数 hj(x) 是仿射函数;
(2) 满足 Slater条件 ,即存在一个 x ,对所有 i 有 gi(x)<0,hi(x)=0 (这时称不等式约束条件 gi(x) 为严格可行的);
则存在 x¯,λ¯,μ¯ ,使 x¯ 是原问题的解, λ¯,μ¯ 是对偶问题的解,并且有:
d∗=p∗=L(x¯,λ¯,μ¯)
注:函数 h(x) 称为仿射函数(affine function),如果它满足 h(x)=a⋅x+b,a∈Rn,b∈R,x∈Rn 。
设 w=(w(1),w(2))T,‖w‖=w(1)2+w(2)2 ,求解下面最优化问题:
minimizew,b12‖w‖2subject to3w(1)+3w(2)+b≥14w(1)+3w(2)+b≥1−w(1)−w(2)−b≥1
注:这个优化问题摘自《统计学习方法,李航著,例7.1》,其背景来源于支持向量机(SVM)。
下面将用两种方法(直接求解和通过对偶问题求解)来解决这个最优化问题。
我们记:
f(w,b)=12‖w‖2=12(w(1)2+w(2)2)
广义拉格朗日函数为:
L(w,b,α)=12(w(1)2+w(2)2)+α1(−3w(1)−3w(2)−b+1)+α2(−4w(1)−3w(2)−b+1)+α3(w(1)+w(2)+b+1)
我们用KKT最优化条件直接求解这个问题。
原问题的解满足KKT条件:
{∂L∂w(1)=w(1)−3α1−4α2+α3=0∂L∂w(2)=w(2)−3α1−3α2+α3=0∂L∂b=−α1−α2+α3=0−3w(1)−3w(2)−b+1≤0−4w(1)−3w(2)−b+1≤0w(1)+w(2)+b+1≤0α1≥0α2≥0α3≥0α1(−3w(1)−3w(2)−b+1)=0α2(−4w(1)−3w(2)−b+1)=0α3(w(1)+w(2)+b+1)=0
求解上面方程组比较麻烦,可以按照下面的思路分情况讨论:
case 1: α1=0,α2=0,α3=0 ,可得到 w(1)=w(2)=0 ,但这和方程组中第5、6式矛盾;
case 2: α1=0,α2=0,α3>0 ,和方程组中第3式矛盾;
case 3: α1=0,α2>0,α3=0 ,和方程组中第3式矛盾;
case 4: α1=0,α2>0,α3>0 ,方程组无解(推导细节略);
case 5: α1>0,α2=0,α3=0 ,和方程组中第3式矛盾;
case 6: α1>0,α2=0,α3>0 ,得 α1=α4=14,w(1)=w(2)=12,b=−2
case 7: α1>0,α2>0,α3=0 ,和方程组中第3式矛盾;
case 8: α1>0,α2>0,α3>0 ,从方程组中最后3个式子可推出矛盾。
综上所述,有:
当 w(1)=w(2)=12,b=−2 时, f(w,b)=12‖w‖2 取约束条件下的最小值。
原问题的拉格朗日对偶问题为:
maximizeαminw,bL(w,b,α)subject toαi≥0,i=1,2,3
要求对偶问题的解,需要先求 L(w,b,α) 对 w,b 的极小,再求对 α 的极大。
第一步:求 minw,bL(w,b,α)
这是一个普通的多元函数极值问题。极值点处偏导数为0。所以有:
{∂L∂w(1)=w(1)−3α1−4α2+α3=0∂L∂w(2)=w(2)−3α1−3α2+α3=0∂L∂b=−α1−α2+α3=0
得:
{w(1)=3α1+4α2−α3w(2)=3α1+3α2−α3α1+α2−α3=0
把上面方程组中第1、2式代入到广义拉格朗日函数 L(w,b,α) 中,再尽可能利用方程组中第3式简化得到的结果,最后可以得到:
minw,bL(w,b,α)=−12(18α12+25α22+2α12+42α1α2−12α1α3−14α2α3)+α1+α2+α3
第二步:求 minw,bL(w,b,α) 对 α 的极大。
由上面计算的结果知,对偶问题为:
maximizeα−12(18α12+25α22+2α12+42α1α2−12α1α3−14α2α3)+α1+α2+α3subject toα1+α2−α3=0αi≥0,i=1,2,3
显然,它等价于:
minimizeα12(18α12+25α22+2α12+42α1α2−12α1α3−14α2α3)−α1−α2−α3subject toα1+α2−α3=0αi≥0,i=1,2,3
容易求解这个问题(详细过程略)的解为: α1=14,α2=0,α3=14
第三步:由对偶问题的解得到原问题的解。
原问题满足“强对偶定理”的条件,利用“强对偶定理”知,对偶问题的解 α1=14,α2=0,α3=14 就是原问题取得最小值时广义拉格朗日函数 L(w,b,α) 中 α 的值。有了这个信息,原问题的KKT最优化条件迎刃而解,原问题也迎刃而解。得原问题的解为: w(1)=w(2)=12,b=−2 ,这和直接求解原问题得到的结果一致。