本文从便于理解的角度介绍对偶上升法,略去大部分数学推导,目的是帮助大家看懂论文中的相关部分。
阅读本文前,请先参看这篇博客《共轭函数超简说明》。
对偶函数1
也称为拉格朗日对偶函数(Lagrange dual function)。
拉格朗日量
考虑定义域
D
D
D上的最小化问题:
m
i
n
i
m
i
z
e
f
0
(
x
)
,
x
∈
D
minimize\ f_0(x), x\in D
minimize f0(x),x∈D
有
m
m
m个不等式约束,以及
p
p
p个等式约束:
f
i
(
x
)
≤
0
,
i
=
1
,
2...
m
f_i(x)\leq0, i=1,2...m
fi(x)≤0,i=1,2...m
h i ( x ) = 0 , i = 1 , 2... p h_i(x)=0, i=1,2...p hi(x)=0,i=1,2...p
这个最优化问题的拉格朗日量(Lagrangian)为:
L
(
x
,
λ
,
ν
)
=
f
0
(
x
)
+
∑
i
=
1
m
λ
i
f
i
(
x
)
+
∑
i
=
1
p
ν
i
h
i
(
x
)
L(x,\lambda,\nu)=f_0(x)+\sum_{i=1}^m\lambda_if_i(x) + \sum_{i=1}^p\nu_ih_i(x)
L(x,λ,ν)=f0(x)+i=1∑mλifi(x)+i=1∑pνihi(x)
其物理意义参见这篇博客《拉格朗日乘子法超简说明》。
其中 λ , ν \lambda, \nu λ,ν称为拉格朗日乘子(Lagrange multiplier)或者对偶变量(dual variable), x x x称为原变量(primal variable)。
拉格朗日量是关于 x , λ , ν x,\lambda, \nu x,λ,ν的函数。
拉格朗日对偶函数
对于定义域
D
D
D上
x
x
x的所有取值,拉格朗日量的最小值即为拉格朗日对偶函数(dual function):
g
(
λ
,
ν
)
=
inf
x
∈
D
L
(
x
,
λ
,
ν
)
g(\lambda, \nu)=\inf_{x\in D}L(x,\lambda, \nu)
g(λ,ν)=x∈DinfL(x,λ,ν)
拉格朗日对偶函数是关于对偶变量 λ , ν \lambda, \nu λ,ν的函数
拉格朗日对偶函数可以看做是
x
x
x取不同值时一族曲线的下界(绿线)。
当
λ
≥
0
\lambda\geq0
λ≥0时,对于最优化问题的解
x
ˉ
\bar x
xˉ,两个约束条件都非正:
λ
i
f
i
(
x
ˉ
)
<
=
0
,
ν
i
h
i
(
x
ˉ
)
=
0
\lambda_i f_i(\bar x)<=0, \ \nu_i h_i(\bar x)=0
λifi(xˉ)<=0, νihi(xˉ)=0
于是,该解对应的曲线不超过原问题最优解:
L
(
x
ˉ
,
λ
,
ν
)
≤
f
0
(
x
ˉ
)
L(\bar x,\lambda,\nu)\leq f_0(\bar x)
L(xˉ,λ,ν)≤f0(xˉ)
进一步,所有曲线的下界不超过原问题最优解:
g
(
λ
,
ν
)
≤
f
0
(
x
ˉ
)
g(\lambda, \nu)\leq f_0(\bar x)
g(λ,ν)≤f0(xˉ)
换言之
λ > 0 \lambda>0 λ>0时,拉格朗日对偶函数是最优化值的下界。
对偶函数与共轭函数
考虑线性约束下的最优化问题
m
i
n
i
m
i
z
e
f
0
(
x
)
,
x
∈
D
minimize\ f_0(x), x\in D
minimize f0(x),x∈D
A x ≤ b , C x = d Ax\leq b,Cx=d Ax≤b,Cx=d
其对偶函数:
g
(
λ
,
ν
)
=
inf
x
(
f
0
(
x
)
+
λ
T
(
A
x
−
b
)
+
ν
T
(
C
x
−
d
)
)
g(\lambda, \nu)=\inf_x \left( f_0(x)+\lambda^T(Ax-b) + \nu^T(Cx-d)\right)
g(λ,ν)=xinf(f0(x)+λT(Ax−b)+νT(Cx−d))
提取和
x
x
x无关的项,凑出共轭函数形式:
g
(
λ
,
ν
)
=
−
λ
T
b
−
ν
T
d
+
inf
x
(
f
0
(
x
)
+
λ
T
A
x
+
ν
T
C
x
)
g(\lambda, \nu)=-\lambda^Tb - \nu^Td + \inf_x \left( f_0(x)+\lambda^TAx + \nu^TCx\right)
g(λ,ν)=−λTb−νTd+xinf(f0(x)+λTAx+νTCx)
= − λ T b − ν T d − sup x ( ( − A T λ − C T ν ) T x − f 0 ( x ) ) =-\lambda^Tb - \nu^Td - \sup_x \left( (-A^T\lambda-C^T\nu)^Tx - f_0(x)\right) =−λTb−νTd−xsup((−ATλ−CTν)Tx−f0(x))
= − λ T b − ν T d − f ∗ ( − A T λ − C T ν ) =-\lambda^Tb - \nu^Td - f^*(-A^T\lambda-C^T\nu) =−λTb−νTd−f∗(−ATλ−CTν)
线性约束下的对偶函数可以用共轭函数表示。
其自变量为拉格朗日乘子的线性组合。
对偶问题2
上图绿线上的最高点,是对于最优化值下界的最好估计:
m
a
x
i
m
i
z
e
g
(
λ
,
ν
)
maximize\ g(\lambda,\nu)
maximize g(λ,ν)
s
u
b
j
e
c
t
t
o
λ
≥
0
subject\ to\ \lambda \geq0
subject to λ≥0
这个问题称为原优化问题的拉格朗日对偶问题(dual problem)。
如果
- 强对偶条件成立3
- 对偶问题存在最优解 λ ˉ , ν ˉ \bar \lambda,\bar \nu λˉ,νˉ
则:原问题 f 0 ( x ) f_0(x) f0(x)的最优解 x ˉ \bar x xˉ也是 L ( x , λ ˉ , ν ˉ ) L(x,\bar \lambda,\bar \nu) L(x,λˉ,νˉ)的最优解3
L ( x , λ ˉ , ν ˉ ) L(x,\bar \lambda,\bar \nu) L(x,λˉ,νˉ)是关于 x x x的函数,相当于在图中 [ λ , ν ] = [ λ ˉ , ν ˉ ] [\lambda,\nu] = [\bar \lambda,\bar \nu] [λ,ν]=[λˉ,νˉ]对应的竖线上,查找值最小曲线对应的 x x x。
换言之:
原问题和对偶问题通过拉格朗日量联系了起来。
如果 f ( x ) f(x) f(x)复杂,而 g ( λ , ν ) g(\lambda, \nu) g(λ,ν)简单, 可以通过如下方式求解原问题:
- 求解 max g ( λ , ν ) \max g(\lambda, \nu) maxg(λ,ν)得到 λ ˉ , ν ˉ \bar \lambda, \bar \nu λˉ,νˉ
- 求解 min L ( x , λ ˉ , ν ˉ ) \min L(x,\bar \lambda, \bar \nu) minL(x,λˉ,νˉ)得到 x ˉ \bar x xˉ
对偶上升法4
利用原问题和对偶问题的上述关系,有如下推论:
设第 k k k次迭代得到原问题解 x k x^k xk,对偶问题解 λ k , ν k \lambda^k,\nu^k λk,νk
- 假设 λ k , ν k \lambda^k,\nu^k λk,νk已经为对偶问题最优解
- 根据上述等价性,最小化
L
(
x
,
λ
k
,
ν
k
)
L(x,\lambda^k,\nu^k)
L(x,λk,νk)能得到原问题最优解
x
k
+
1
x^{k+1}
xk+1
x k + 1 = arg min x L ( x , λ k , ν k ) x^{k+1}=\arg \min_xL(x,\lambda^k,\nu^k) xk+1=argxminL(x,λk,νk) - L ( x , λ k , ν k ) L(x,\lambda^k,\nu^k) L(x,λk,νk)是 λ k , ν k \lambda^k,\nu^k λk,νk位置上,不同 x x x对应的 L L L取值
- 所以, x = x k + 1 x=x^{k+1} x=xk+1的曲线处于所有曲线最下面。即 g ( λ k , ν k ) = L ( x k + 1 , λ k , ν k ) g(\lambda^k,\nu^k)=L(x^{k+1},\lambda^k,\nu^k) g(λk,νk)=L(xk+1,λk,νk)
- 在该位置使用梯度上升法更新对偶问题解
λ k + 1 = λ k + α ⋅ ∂ L ( x , λ , ν ) ∂ λ ∣ x = x k + 1 , λ = λ k , ν = ν k \lambda^{k+1}=\lambda^k + \alpha \cdot \frac{\partial L(x,\lambda,\nu)}{\partial \lambda} |_{x=x^{k+1},\lambda=\lambda^{k}, \nu=\nu^{k}} λk+1=λk+α⋅∂λ∂L(x,λ,ν)∣x=xk+1,λ=λk,ν=νk
ν k + 1 = λ k + α ⋅ ∂ L ( x , λ , ν ) ∂ ν ∣ x = x k + 1 , λ = λ k , ν = ν k \nu^{k+1}=\lambda^k + \alpha \cdot \frac{\partial L(x,\lambda,\nu)}{\partial \nu} |_{x=x^{k+1},\lambda=\lambda^{k}, \nu=\nu^{k}} νk+1=λk+α⋅∂ν∂L(x,λ,ν)∣x=xk+1,λ=λk,ν=νk
这一方法称为对偶上升法。下图的灰线示出解的变化:
S. Boyd and L. Vandenberghe, Convex Optimization. Cambridge University Press, 2004. KaTeX parse error: Undefined control sequence: \S at position 1: \̲S̲ 5.1 ↩︎
S. Boyd and L. Vandenberghe, Convex Optimization. Cambridge University Press, 2004. KaTeX parse error: Undefined control sequence: \S at position 1: \̲S̲ 5.2 ↩︎
S. Boyd and L. Vandenberghe, Convex Optimization. Cambridge University Press, 2004. KaTeX parse error: Undefined control sequence: \S at position 1: \̲S̲ 5.5.5 ↩︎ ↩︎
S. Boyd, N. Parikh, E. Chu, B. Peleato, and J. Eckstein. Distributed optimization and statistical learning via the alternating direction method of multipliers. Foundations and Trends in Machine Learning, 2011. KaTeX parse error: Undefined control sequence: \S at position 1: \̲S̲ 2.1 ↩︎