总目录
一、 凸优化基础(Convex Optimization basics)
二、 一阶梯度方法(First-order methods)
- 梯度下降(Gradient Descent)
- 次梯度(Subgradients)
- 近端梯度法(Proximal Gradient Descent)
- 随机梯度下降(Stochastic gradient descent)
三、对偶
- 线性规划中的对偶(Duality in linear programs)
- 凸优化中的对偶(Duality in General Programs)
- KKT条件(Karush-Kuhn-Tucker Conditions)
- 对偶的应用及拓展(Duality Uses and Correspondences)
- 对偶方法(Dual Methods)
- 交替方向乘子法(Alternating Direction Method of Multipliers)
Introduction
前一节我们介绍了对偶的应用以及共轭函数的性质。利用这些性质,我们本节讨论基于对偶的方法。
对偶梯度法
即使我们不能推导出闭合形式的对偶或共轭,我们依然可以使用基于对偶的次梯度法或梯度法(Dual gradient methods)。
比如考虑以下问题
min
x
f
(
x
)
s
u
b
j
e
c
t
t
o
A
x
=
b
\min_xf(x)\quad subject\ to\ Ax=b
xminf(x)subject to Ax=b
其对偶问题为
max
u
−
f
∗
(
−
A
T
u
)
−
b
T
u
\max_u -f^*(-A^Tu)-b^Tu
umax−f∗(−ATu)−bTu
其中
f
∗
f^*
f∗是
f
f
f的共轭。定义
g
(
u
)
=
−
f
∗
(
−
A
T
u
)
−
b
T
u
g(u)=-f^*(-A^Tu)-b^Tu
g(u)=−f∗(−ATu)−bTu,则
∂
g
(
u
)
=
A
∂
f
∗
(
−
A
T
u
)
−
b
\partial g(u)=A\partial f^*(-A^Tu)-b
∂g(u)=A∂f∗(−ATu)−b
因而,根据共轭的性质,我们可以得到
∂
g
(
u
)
=
A
x
−
b
w
h
e
r
e
x
∈
arg
min
z
f
(
z
)
+
u
T
A
z
\partial g(u)=Ax-b\quad {\rm where}\quad x\in\arg\min_z f(z)+u^TAz
∂g(u)=Ax−bwherex∈argzminf(z)+uTAz
对偶次梯度法(dual subgradient method)(最大化对偶目标函数)从一个初始的对偶变量
u
(
0
)
u^{(0)}
u(0)开始,并对于
k
=
1
,
2
,
3
,
.
.
.
k=1,2,3,...
k=1,2,3,...次迭代重复
x
(
k
)
∈
arg
min
x
f
(
x
)
+
(
u
(
k
−
1
)
)
T
A
x
x^{(k)}\in \arg\min_x f(x)+(u^{(k-1)})^TAx
x(k)∈argxminf(x)+(u(k−1))TAx
u
(
k
)
=
u
(
k
−
1
)
+
t
k
(
A
x
(
k
)
−
b
)
u^{(k)}=u^{(k-1)}+t_k(Ax^{(k)}-b)
u(k)=u(k−1)+tk(Ax(k)−b)
步长 t k t_k tk可采用标准梯度方法选择。
当
f
f
f是严格凸函数,那么
f
∗
f^*
f∗是可微的,因而该方法变为对偶梯度上升(dual gradient ascent),对于
k
=
1
,
2
,
3
,
.
.
.
k=1,2,3,...
k=1,2,3,...,重复迭代
x
(
k
)
=
arg
min
x
f
(
x
)
+
(
u
(
k
−
1
)
)
T
A
x
x^{(k)}= \arg\min_x f(x)+(u^{(k-1)})^TAx
x(k)=argxminf(x)+(u(k−1))TAx
u
(
k
)
=
u
(
k
−
1
)
+
t
k
(
A
x
(
k
)
−
b
)
u^{(k)}=u^{(k-1)}+t_k(Ax^{(k)}-b)
u(k)=u(k−1)+tk(Ax(k)−b)
此时每次迭代的 x ( k ) x^{(k)} x(k)都是唯一的。同样地,近端梯度方法及其加速方法都可以像通常的那样应用。
收敛分析
Lipschitz梯度和强凸性
假设 f f f是闭合的凸函数,那么 f f f关于参数 d d d强凸等价于 ∇ f ∗ \nabla f^* ∇f∗关于参数 1 / d 1/d 1/d满足Lipschitz连续条件。
收敛保证
给定上述结论,我们可以得到对偶次梯度法的收敛率
- 如果 f f f是关于参数 d d d强凸的,那么使用固定步长 t k = d t_k=d tk=d的对偶梯度上升方法的收敛率为 O ( 1 / ϵ ) O(1/\epsilon) O(1/ϵ)。
- 如果 f f f是关于参数 d d d强凸的,且 ∇ f \nabla f ∇f是关于参数 L L L Lipschitz连续的,那么使用固定步长 t k = 2 / ( 1 / d + 1 / L ) t_k=2/(1/d+1/L) tk=2/(1/d+1/L)的对偶梯度上升方法的收敛率为 O ( l o g ( 1 / ϵ ) ) O(log(1/\epsilon)) O(log(1/ϵ))。
对偶分解
等式约束
考虑如下问题
min
x
∑
i
=
1
B
f
i
(
x
i
)
s
u
b
j
e
c
t
t
o
A
x
=
b
\min_x\sum^B_{i=1}f_i(x_i)\quad subject\ to\ Ax=b
xmini=1∑Bfi(xi)subject to Ax=b
其中
x
=
(
x
1
,
.
.
.
,
x
B
)
∈
R
n
x=(x_1,...,x_B)\in R^n
x=(x1,...,xB)∈Rn分为
B
B
B组变量,每个变量
x
i
∈
R
n
i
x_i \in R^{n_i}
xi∈Rni。我们可以以此分割
A
A
A
A
=
[
A
1
,
.
.
.
,
A
B
]
,
w
h
e
r
e
A
i
∈
R
m
×
n
i
A=[A_1,...,A_B], \quad {\rm where} \quad A_i\in R^{m\times n_i}
A=[A1,...,AB],whereAi∈Rm×ni
在计算梯度时,我们可以将其分割分解为
B
B
B个分离的问题:
x
+
∈
arg
min
x
∑
i
=
1
B
f
i
(
x
i
)
+
u
T
A
x
x^+\in \arg\min_x\sum^B_{i=1}f_i(x_i)+u^TAx
x+∈argxmini=1∑Bfi(xi)+uTAx
⟺
x
i
+
∈
arg
min
x
i
f
i
(
x
i
)
+
u
T
A
i
x
i
,
i
=
1
,
.
.
.
,
B
\Longleftrightarrow x^+_i\in \arg\min_{x_i}f_i(x_i)+u^TA_ix_i,\quad i=1,...,B
⟺xi+∈argximinfi(xi)+uTAixi,i=1,...,B
对偶分解算法:对于
k
=
1
,
2
,
3
,
.
.
.
k=1,2,3,...
k=1,2,3,...,重复迭代
x
i
(
k
)
∈
arg
min
x
i
f
i
(
x
i
)
+
(
u
(
k
−
1
)
)
T
A
i
x
i
,
i
=
1
,
.
.
.
,
B
x_i^{(k)}\in \arg\min_{x_i} f_i(x_i)+(u^{(k-1)})^TA_ix_i,\quad i=1,...,B
xi(k)∈argximinfi(xi)+(u(k−1))TAixi,i=1,...,B
u
(
k
)
=
u
(
k
−
1
)
+
t
k
(
∑
i
=
1
B
A
i
x
i
(
k
)
−
b
)
u^{(k)}=u^{(k-1)}+t_k(\sum^B_{i=1}A_ix_i^{(k)}-b)
u(k)=u(k−1)+tk(i=1∑BAixi(k)−b)
可以将这两个步骤描述为:
- 广播(Broadcast):将 u u u发送给 B B B个处理器,B个处理器并行优化找到各自的 x i x_i xi;
- 聚集(Gather):从每个处理器收集 A i x i A_ix_i Aixi,然后更新全局对偶变量 u u u;
不等式约束
考虑如下问题
min
x
∑
i
=
1
B
f
i
(
x
i
)
s
u
b
j
e
c
t
t
o
∑
i
=
1
B
A
i
x
i
≤
b
\min_x\sum^B_{i=1}f_i(x_i)\quad subject\ to\ \sum^B_{i=1}A_ix_i\leq b
xmini=1∑Bfi(xi)subject to i=1∑BAixi≤b
对偶分解算法(投影次梯度法):对于
k
=
1
,
2
,
3
,
.
.
.
k=1,2,3,...
k=1,2,3,...,重复迭代
x
i
(
k
)
∈
arg
min
x
i
f
i
(
x
i
)
+
(
u
(
k
−
1
)
)
T
A
i
x
i
,
i
=
1
,
.
.
.
,
B
x_i^{(k)}\in \arg\min_{x_i} f_i(x_i)+(u^{(k-1)})^TA_ix_i,\quad i=1,...,B
xi(k)∈argximinfi(xi)+(u(k−1))TAixi,i=1,...,B
u
(
k
)
=
(
u
(
k
−
1
)
+
t
k
(
∑
i
=
1
B
A
i
x
i
(
k
)
−
b
)
)
+
u^{(k)}=(u^{(k-1)}+t_k(\sum^B_{i=1}A_ix_i^{(k)}-b))_+
u(k)=(u(k−1)+tk(i=1∑BAixi(k)−b))+
其中 u + u_+ u+表示 u u u的正部分,即 ( u + ) i = max { 0 , u i } , i = 1 , . . . , m (u_+)i=\max\{0,u_i\},\quad i=1,...,m (u+)i=max{0,ui},i=1,...,m。
增广拉格朗日方法(乘子法)
对偶上升法的缺点在于其要求较强的约束条件来保证收敛。使用增广拉格朗日方法(Augmented Lagrangian method)(也称为乘子法,method of multipliers)可以对其做改进。我们将原问题变为:
min
x
f
(
x
)
+
ρ
2
∥
A
x
−
b
∥
2
2
s
u
b
j
e
c
t
t
o
A
x
=
b
\begin{aligned} \min_{x}f(x)+\frac{\rho}{2}\|Ax-b\|^2_2\\ subject\ to\quad Ax=b\\ \end{aligned}
xminf(x)+2ρ∥Ax−b∥22subject toAx=b
其中
ρ
>
0
\rho>0
ρ>0是一个参数。该形式明显等价于原问题,且当
A
A
A是满列秩时目标函数是强凸的。使用对偶梯度上升:对于
k
=
1
,
2
,
3
,
.
.
.
k=1,2,3,...
k=1,2,3,...,重复迭代
x
(
k
)
=
arg
min
x
f
(
x
)
+
(
u
(
k
−
1
)
)
T
A
x
+
ρ
2
∥
A
x
−
b
∥
2
2
x^{(k)}= \arg\min_x f(x)+(u^{(k-1)})^TAx+\frac{\rho}{2}\|Ax-b\|^2_2
x(k)=argxminf(x)+(u(k−1))TAx+2ρ∥Ax−b∥22
u
(
k
)
=
u
(
k
−
1
)
+
ρ
(
A
x
(
k
)
−
b
)
u^{(k)}=u^{(k-1)}+\rho(Ax^{(k)}-b)
u(k)=u(k−1)+ρ(Ax(k)−b)
注意到步长选择变为了
t
k
=
ρ
,
k
=
1
,
2
,
3
,
.
.
.
t_k=\rho,\quad k=1,2,3,...
tk=ρ,k=1,2,3,...。这是因为,既然
x
(
k
)
x^{(k)}
x(k)最小化
f
(
x
)
+
(
u
(
k
−
1
)
)
T
A
x
+
ρ
2
∥
A
x
−
b
∥
2
2
f(x)+(u^{(k-1)})^TAx+\frac{\rho}{2}\|Ax-b\|^2_2
f(x)+(u(k−1))TAx+2ρ∥Ax−b∥22,那么
0
∈
∂
f
(
x
(
k
)
)
+
A
T
(
u
(
k
−
1
)
+
ρ
(
A
x
(
k
)
−
b
)
)
=
∂
f
(
x
(
k
)
)
+
A
T
u
(
k
)
\begin{aligned} 0&\in \partial f(x^{(k)})+A^T(u^{(k-1)}+\rho(Ax^{(k)}-b))\\ &=\partial f(x^{(k)})+A^Tu^{(k)} \end{aligned}
0∈∂f(x(k))+AT(u(k−1)+ρ(Ax(k)−b))=∂f(x(k))+ATu(k)
这是原问题的稳定性条件。因此,在相对温和的条件下( A x ( k ) − b Ax^{(k)}-b Ax(k)−b接近0),KKT条件就可以满足, x ( k ) , u ( k ) x^{(k)}, u^{(k)} x(k),u(k)可达到最优值。
乘子法有较好的收敛性质,但缺点是失去了可分解性。那有没有同时具有好的收敛性和可分解性的方法呢,我们下次来做介绍。