Lagrangian乘子法
考虑等式约束的凸优化问题:
min
f
(
x
)
s
.
t
.
A
x
=
b
(1)
\min f(x) \ s.t.\ Ax=b \tag{1}
minf(x) s.t. Ax=b(1)
其中向量
x
∈
R
n
x\in\mathbb{R}^n
x∈Rn,矩阵
A
∈
R
m
×
n
A\in \mathbb{R}^{m\times n}
A∈Rm×n,函数
f
(
x
)
:
R
n
→
R
f(x):\mathbb{R}^n→\mathbb{R}
f(x):Rn→R是凸函数。
Lagrangian乘子法将其变为无约束最小化问题,其Lagrangian目标函数为:
L
(
x
,
λ
)
=
f
(
x
)
+
λ
T
(
A
x
−
b
)
L(x,\lambda)=f(x)+\lambda^T(Ax-b)
L(x,λ)=f(x)+λT(Ax−b)
注意,到这里Lagrangian乘子法就算是结束了。到这一步之后,可以令
L
(
x
,
λ
)
=
0
L(x,\lambda)=0
L(x,λ)=0,求出一些
x
x
x,然后取使得
f
(
x
)
f(x)
f(x)最小的
x
x
x值作为最终解,因为一阶导为0是一个必要条件而非充要条件,可以参见这篇文章
对偶上升法
对于
L
(
x
,
λ
)
=
0
L(x,\lambda)=0
L(x,λ)=0难以解出等的情况,可以用对偶上升法来做优化。
原始优化问题的对偶目标函数为:
g
(
λ
)
=
inf
x
L
(
x
,
λ
)
=
−
f
∗
(
−
A
T
λ
)
−
b
T
λ
g(\lambda)=\inf_x L(x,\lambda)=-f^*(-A^T\lambda)-b^T\lambda
g(λ)=xinfL(x,λ)=−f∗(−ATλ)−bTλ
这里的对偶目标函数就是我们一般讲的对偶问题,是一个关于Lagrangian乘子的问题,
inf
\inf
inf表示最大下界,正是对偶问题的最优化目标。而第二个等号成立的原因是,线性约束下凸函数的对偶函数可以用其共轭函数表示。
f
(
x
)
的
f(x)的
f(x)的共轭函数
f
∗
(
y
)
f^*(y)
f∗(y)定义为:
f
∗
(
y
)
=
sup
x
∈
D
(
y
T
x
−
f
(
x
)
)
f^*(y)=\sup_{x\in D}(y^Tx-f(x))
f∗(y)=x∈Dsup(yTx−f(x))
其中
y
∈
R
n
y\in \mathbb{R}^n
y∈Rn,
sup
\sup
sup表示最小上界。下面证明
g
(
λ
)
=
−
f
∗
(
−
A
T
λ
)
−
b
T
λ
g(\lambda)=-f^*(-A^T\lambda)-b^T\lambda
g(λ)=−f∗(−ATλ)−bTλ:
g
(
λ
)
=
inf
x
L
(
x
,
λ
)
=
inf
x
(
f
(
x
)
+
λ
T
(
A
x
−
b
)
)
=
−
λ
T
b
+
inf
x
(
f
(
x
)
+
λ
T
A
x
)
(
将
与
x
无
关
的
项
提
取
出
)
=
−
λ
T
b
−
sup
x
(
−
f
(
x
)
−
λ
T
A
x
)
(
函
数
最
大
下
界
等
于
取
反
之
后
的
最
小
上
界
)
=
−
λ
T
b
−
f
∗
(
−
A
T
λ
)
(
共
轭
函
数
的
定
义
)
=
−
b
T
λ
−
f
∗
(
−
A
T
λ
)
(
得
证
)
g(\lambda)=\inf_x L(x,\lambda)=\inf_x (f(x)+\lambda^T(Ax-b))\\ =-\lambda^Tb+\inf_x(f(x)+\lambda^TAx)(将与x无关的项提取出)\\ =-\lambda^Tb-\sup_x(-f(x)-\lambda^TAx)(函数最大下界等于取反之后的最小上界)\\ =-\lambda^Tb-f^*(-A^T\lambda)(共轭函数的定义)\\ =-b^T\lambda-f^*(-A^T\lambda)(得证)
g(λ)=xinfL(x,λ)=xinf(f(x)+λT(Ax−b))=−λTb+xinf(f(x)+λTAx)(将与x无关的项提取出)=−λTb−xsup(−f(x)−λTAx)(函数最大下界等于取反之后的最小上界)=−λTb−f∗(−ATλ)(共轭函数的定义)=−bTλ−f∗(−ATλ)(得证)
因此借助Lagrangian乘子法,原始等式约束极小化问题变成了对偶极大化问题:
max
λ
g
(
λ
)
=
−
f
∗
(
−
A
T
λ
)
−
b
T
λ
(2)
\max_{\lambda}g(\lambda)=-f^*(-A^T\lambda)-b^T\lambda \tag{2}
λmaxg(λ)=−f∗(−ATλ)−bTλ(2)
对偶上升法采用了梯度上升法来求解公式
(
2
)
(2)
(2)。假设强对偶性满足,则原问题最优解与对偶问题最优解相同。此时公式
(
1
)
(1)
(1)的最优解点
x
∗
x^*
x∗可以由下式恢复:
x
∗
=
arg min
x
L
(
x
,
λ
∗
)
x^*=\argmin_xL(x,\lambda^*)
x∗=xargminL(x,λ∗)
对偶上升法主要由两个步骤组成:
x
k
+
1
=
arg min
x
L
(
x
,
λ
k
)
λ
k
+
1
=
λ
k
+
μ
k
∂
L
(
x
,
λ
)
∂
λ
∣
x
=
x
k
+
1
,
λ
=
λ
k
=
λ
k
+
μ
k
(
A
x
k
+
1
−
b
)
x_{k+1}=\argmin_xL(x,\lambda_k)\\ \lambda_{k+1}=\lambda_k+\mu_k\frac{\partial L(x,\lambda)}{\partial \lambda}|_{x=x_{k+1},\lambda=\lambda_k}=\lambda_k+\mu_k(Ax_{k+1}-b)
xk+1=xargminL(x,λk)λk+1=λk+μk∂λ∂L(x,λ)∣x=xk+1,λ=λk=λk+μk(Axk+1−b)
这里的
μ
k
\mu_k
μk为更新
λ
\lambda
λ的步长。
总结
对偶上升法的重要假设是强对偶成立,对偶上升法有两层含义,一是对偶变量 λ \lambda λ的更新采用梯度上升法,二是通过步长 μ k \mu_k μk的适当选择保证 g ( λ k + 1 ) > g ( λ k ) g(\lambda_{k+1})>g(\lambda_k) g(λk+1)>g(λk)。
本文主要来自张贤达《矩阵分析与应用(第二版)》第4.7.1节,并参考了这篇博客。该博客说对偶上升法也适用于不等式约束的情况,张书中并无此说,这一点我暂时存疑。