23 Lect DualAlgo
23 Lect DualAlgo
文再文
北京大学北京国际数学研究中心
教材《最优化:建模、算法与理论》配套电子教案
http://bicmr.pku.edu.cn/~wenzw/optbook.html
致谢:本教案由朱桢源协助准备
1/51
提纲
1 对偶近似点梯度法
2 应用举例
3 原始– 对偶混合梯度算法
4 应用举例
5 收敛性分析
2/51
对偶方法
次 梯度法 :速度慢,步长选择困难
梯 度法:需要对偶函数可微
对偶函数可能不可微,或定义域非平凡
对原始函数加小的强凸项,将对偶函数光滑化
增广拉格朗日法:
等价于对光滑化的对偶问题做梯度上升
但是光滑化会破坏可分结构
近 似点 梯度 法(本讲):对偶函数分裂成两项
一项是梯度利普希茨连续函数
另一项有方便计算的近似点算子
3/51
对偶问题
设f ,h 是闭凸函数,考虑如下形式的问题:
引入新变量y = Ax,考虑问题:
拉格朗日函数为:
对偶问题
4/51
Dual methods
5/51
(Sub-)gradients of conjugate function
subgradient
f ∗ is subdifferentiable on (at least) int dom f ∗
maximizers in the definition of f ∗ (y) are subgradients at y
6/51
Equality constraints
7/51
Alternating minimization framework
The Lagrangian function is
8/51
Dual decomposition
dual problem
9/51
Dual subgradient projection
由于f (x)是闭凸函数,二次共轭为其本身,于是对同一组x, y有
这说明y也使得xT y − f ∗ (y)取到最大值.根据一阶最优性条件,
x ∈ ∂f ∗ (y).
y1 ∈ ∂f (x1 ), y2 ∈ ∂f (x2 ).
将上述两式相加得
为了在对偶问题上使用近似点梯度法,φ(z) 需要满足“可微函数+ 凸函
数” 的复合形式:
h 或h∗ 的近似点算子容易计算(有闭形式或简单算法)
f 是闭的强凸函数
我们下面证明这意味着f ∗ (−AT z) 是梯度利普希茨连续函数:
kAk22
kA∇f ∗ (−AT z1 ) − A∇f ∗ (−AT z2 )k2 ≤ kz1 − z2 k2
µ
13/51
对偶近似点梯度更新
考虑在对偶问题上应用近似点梯度算法,每次迭代更新如下:
对偶问题是取最大值,因此邻近算子内部应该取上升方向.
进一步引入变量xk+1 = ∇f ∗ (−AT zk ),迭代格式等价于
n T o
xk+1 = arg min f (x) + AT zk x , zk+1 = proxth∗ zk + tAxk+1
x
步长t 可取常数或采取回溯线搜索法
可使用加速近似点梯度法
下面我们将提供另一种角度来理解对偶近似点梯度法.
14/51
Moreau 分解
设f 是定义在Rn 上的适当的闭凸函数,则对任意的x ∈ Rn ,
或更一般地,
x
x = proxλf (x) + λproxλ−1 f ∗ ,
λ
其中λ > 0为任意正实数.
15/51
交替极小的解释
取λ = t, f = h∗ ,并注意到h∗∗ = h,我们有
zk
k k+1 k k+1
z + tAx = proxth∗ (z + tAx ) + tproxt−1 h + Axk+1
t
zk
= zk+1 + tproxt−1 h ( + Axk+1 ),
t
由此给出对偶近似点梯度法等价的针对原始问题的更新格式:
16/51
交替极小方法
考虑等价问题:
定义拉格朗日函数和增广拉格朗日函数:
L(x, y, z) = f (x) + h(y) − zT (y − Ax)
t
Lt (x, y, z) = f (x) + h(y) − zT (y − Ax) + ky − Axk2
2
等价的交替极小格式是
对偶近似点梯度法等价于对原始约束问题使用交替极小化方法
17/51
提纲
1 对偶近似点梯度法
2 应用举例
3 原始– 对偶混合梯度算法
4 应用举例
5 收敛性分析
18/51
正则化范数近似
假设f 是强凸函数,k · k是任意一种范数,考虑
对应原始问题我们有h(y) = ky − bk
(
bT z kzk∗ ≤ 1
h∗ (z) = proxth∗ (x) = Pkzk∗ ≤1 (x − tb)
+∞ 其他
max −f ∗ (−AT z) − bT z
kzk∗ ≤1
应用对偶近似点梯度法,更新如下:
xk+1 = argmin f (x) + (AT zk )T x
x
k+1
z = Pkzk∗ ≤1 (zk + t(Axk+1 − b))
19/51
正则化范数近似
考虑等价问题
min f (x) + kyk, s.t. Ax − b = y
x,y
交替极小化格式是
20/51
例
假设f 是强凸函数,考虑
p
X
min f (x) + kBi xk2 ,
i=1
p
即h(y1 , y2 , · · · , yp ) = kyi k2 ,且
P
i=1
T
A = BT1 BT1 · · · BTp .
根据k · k2 的共轭函数定义,对偶问题形式如下:
p
!
X
∗ T
max −f − Bi zi ,
kzi k2 ≤1
i=1
1
f (x) = ||Cx − d||22
2
随机生成C ∈ R2000×1000 , Bi ∈ R10×1000 , p = 500
100
gradient
FISTA
-1
10
f ⋆ − dual objective
10-2
10-3
f⋆
10-4
10-5
10-6 0 100 200 300 400 500 600 700 800 900
k
22/51
在凸集交上的极小化
假设f 是强凸函数,集合Ci 为闭凸集,且易于计算投影,考虑
min f (x),
s.t. x ∈ C1 ∩ C2 ∩ · · · ∩ Cm ,
m T
我们有h(y1 , y2 , · · · , ym ) = ICi (yi ),A = I I · · · I , 对偶问题为
P
i=1
m
! m
X X
max −f ∗ − zi − IC∗ i (zi ),
zi ∈Ci
i=1 i=1
zki
yk+1
i = PCi + xk+1 , i = 1, 2, · · · , m,
t
zk+1
i = zki + t(xk+1 − yk+1
i ), i = 1, 2, · · · , m.
23/51
可分问题的拆分
假设fi 是强凸函数,h∗i 有易于计算的邻近算子.考虑
n
X m
X
min fj (xj ) + hi (Ai1 x1 + Ai2 x2 + · · · + Ain xN ),
j=1 i=1
其对偶问题形式如下:
m
X n
X
max − h∗i (zi ) − fj∗ (−AT1j z1 − AT2j z2 − · · · − ATmj zm ).
i=1 j=1
对偶近似点梯度法更新如下:
( m
)
X
xjk+1 = argmin fj (xj ) + ( Aij zki )T xj , j = 1, 2, · · · , n,
xj
i=1
n
X
zk+1
i =proxth∗i zi + t Aij xjk+1 , i = 1, 2, · · · , m.
j=1
24/51
提纲
1 对偶近似点梯度法
2 应用举例
3 原始– 对偶混合梯度算法
4 应用举例
5 收敛性分析
25/51
鞍点问题
令f , h是适当的闭凸函数. 考虑原始问题:
由于h有自共轭性,我们将问题变形为
def
(LPD ) min max ψPD (x, z) == f (x) − h∗ (z) + zT Ax. (1)
x z
可以看到此时问题变成了一个极小– 极大问题,即关于变量x求极
小,关于变量z求极大,这是一个典型的鞍点问题.
另一种常用的鞍点问题定义方式构造拉格朗日函数.问题
相应的鞍点问题形式如下:
其中αk , δk 分别为原始变量和对偶变量的更新步长.
它在第一步固定原始变量xk 针对对偶变量做梯度上升,在第二步
固定更新后的对偶变量zk+1 针对原始变量做梯度下降.在这里注
意,原始变量和对偶变量的更新顺序是无关紧要的,若先更新原
始变量,其等价于在另一初值下先更新对偶变量.
27/51
Chambolle-Pock算法
PDHG 算法的收敛性需要比较强的条件,有些情形下未必收敛.
Chambolle-Pock算法与PDHG 算法的区别在于多了一个外推步
具体的迭代格式如下:
28/51
三项函数拆分
考虑
min f1 (x) + f2 (Bx) + f3 (x),
x
PDFP算法更新如下:
T
yk+1 = proxγf3 (xk − γ∇f1 (xk ) − λB zk ),
zk+1 = (I − prox γ f2 )(Byk+1 + zk ),
λ
xk+1 = proxγf3 (xk − γ∇f1 (xk ) − λBT zk+1 ).
1 对偶近似点梯度法
2 应用举例
3 原始– 对偶混合梯度算法
4 应用举例
5 收敛性分析
30/51
LASSO问题求解
考虑LASSO问题
def 1
minn ψ(x) == µkxk1 + kAx − bk22 .
x∈R 2
取f (x) = µkxk1 和h(x) = 12 kx − bk22 ,相应的鞍点问题:
min max f (x) − h∗ (z) + zT Ax.
x∈Rn z∈Rm
根据共轭函数的定义,
∗ 1 1
h (z) = sup y z − ky − bk2 = kzk22 + bT z.
T 2
y∈Rm 2 2
10 8
PDHG
Chambolle-Pock
10 6
10 4
10 2
10 0
10 -2
10 -4
10 -6
0 500 1000 1500 2000
32/51
TV-L1 模型
考虑去噪情形下的TV-L1 模型(即A为矩阵空间的恒等算子):
其中kUkTV 为全变差,即可以用离散的梯度(线性)算
子D : Rn×n → Rn×n×2 表示为
X
kUkTV = k(DU)ij k2 .
1≤i,j≤n
对任意的W, V ∈ Rn×n×2 ,记
X X
kWk = kwij k2 , hW, Vi = wi,j,k vi,j,k ,
1≤i,j≤n 1≤i,j≤n,1≤k≤2
kUkTV = kDUk.
33/51
TV-L1 模型
我们取D 为相应的线性算子,并取
相应的鞍点问题(1) 如下:
根据共轭函数的定义,
0, max kvij k2 ≤ 1,
h∗ (V) = sup {hU, Vi − kUk} = i,j
U∈Rn×n×2 +∞, 其他.
35/51
图像填充模型
考虑问题
λ
min kUkTV + kU − Bk2F .
U∈Rn×n 2
类似于上一个例子中的分析,我们取D 为相应的线性算子,并取
λ
f (U) = kU − Bk2F , U ∈ Rn×n , h(W) = kWk, W ∈ Rn×n×2 .
2
一般的鞍点问题叙述如下:
(LPD ) min max f (U) + hV, DUi − IV (V),
U V
同样地,Chambolle-Pock算法的更新表达式也可类似地推出. 36/51
图像反卷积模型
考虑问题
λ
min kUkTV + kAU − Bk2F ,
U∈Rn×n 2
其中AU = KA ∗ U为卷积算子,且KA 是A的卷积核对应的矩阵.
类似于TV-L1 模型中的分析,取D为相应的线性算子,并取
λ
f (U) = kAU − Bk2F , U ∈ Rn×n , h(W) = kWk, W ∈ Rn×n×2 .
2
类似地,一般的鞍点问题叙述如下:
37/51
图像反卷积模型
38/51
图像反卷积模型
根据
以上表达式中除F, F −1 , G外,其余均为逐分量的运算
39/51
三项函数拆分例子
Fused Lasso:
1
min kAx − bk2 + µ1 kBxk1 + µ2 kxk1
x 2
图像恢复:
1
min kAx − bk2 + µkDxk1
x∈C 2
40/51
提纲
1 对偶近似点梯度法
2 应用举例
3 原始– 对偶混合梯度算法
4 应用举例
5 收敛性分析
41/51
Chambolle-Pock 算法的收敛性
鞍点,其中ψPD 的定义见该问题.
称(x̂, ẑ)是问题(1)的一个鞍
对任意子集B1 × B2 ⊂ X × Z,定义部
部分 原 始 – 对 偶 间 隙 为
D(B1 , B2 )
GB1 ×B2 (xN , zN ) ≤ , (4)
N
n o
kx−x0 k2 kz−z0 k2
其中D(B1 , B2 ) = sup(x,z)∈B1 ×B2 2t + 2s ;
N=1 的聚点为问题(1)的一个鞍点;
进一步地,序列{(xN , zN )}∞
(c) 存在问题(1)一个鞍点(x∗ , z∗ )使得xk → x∗ , zk → z∗ .
43/51
收敛性分析
为了方便推导,首先考虑算法的一般格式:
zk+1 =proxsh∗ (zk + sAx̄),
xk+1 =proxtf (xk − tAT z̄).
这里和Chambolle-Pock算法不同的是,我们使用x̄, z̄来表示更新x, z时
的参考点.当它们取特定值时,以上格式可以为PDHG 算法
或Chambolle-Pock 算法.根据邻近算子的性质,
xk − xk+1
−AT z̄ + ∈ ∂f (xk+1 ),
t
zk − zk+1
Ax̄ + ∈ ∂h∗ (zk+1 ).
s
根据次梯度的定义,对于任意的(x, z) ∈ X × Z有
1
f (x) ≥f (xk+1 ) + (x − xk+1 )T (xk − xk+1 ) − (x − xk+1 )T AT z̄,
t
1
h∗ (z) ≥h∗ (zk+1 ) + (z − zk+1 )T (zk − zk+1 ) + (z − zk+1 )T Ax̄.
s
44/51
收敛性分析
将上述两个不等式相加,并引入二次项可整理得到
kx − xk k2 kz − zk k2 kx − xk+1 k2 kz − zk+1 k2
+ − −
2t 2s 2t 2s
≥ f (xk+1 ) − h∗ (z) + (xk+1 )T AT z − f (x) − h∗ (zk+1 ) + xT AT zk+1
(5)
kxk − xk+1 k2 kzk − zk+1 k2
+ +
2t 2s
+ (xk+1 − x̄)T AT (zk+1 − z) − (xk+1 − x)T AT (zk+1 − z̄).
应用柯西不等式即得到最后的不等号 45/51
收敛性分析
2
又利用2ab ≤ αa2 + bα 对任意的α > 0均成立,有
√
Lkxk − xk−1 kkzk+1 − zk k
√ √
Lαt k k−1 2 Ls k+1
≤ kx − x k + kz − zk k2 ,
2t 2αs
取α = st ,则
p
√ √ s √
Lαt = L = Lst < 1,
α
从而合并(5) 式和(6) 式得到,对于任意的(x, z) ∈ X × Z,
kx − xk k2 kz − zk k2 kx − xk+1 k2 kz − zk+1 k2
+ − −
2t 2s 2t 2s
∗ ∗ k+1
≥ f (x ) − h (z) + (x ) A z − f (x) − h (z ) + xT AT zk+1
k+1 T T
k+1
(7)
√ kzk − zk+1 k2 kxk − xk+1 k2 √ kxk−1 − xk k2
+ (1 − Lst) + − Lst
2s 2t 2t
+ (xk+1 − xk )T AT (zk+1 − z) − (xk − xk−1 )T AT (zk − z).
46/51
收敛性分析
将上述不等式中的k从0遍历至N − 1并求和,消掉不等式两边共同项后
有
N
X
f (x ) − h∗ (z) + (xk )T AT z − f (x) − h∗ (zk ) + xT AT zk
k
k=1
N
kx − xN k2 kz − zN k2 √ X kzk − zk−1 k2
+ + + (1 − Lst)
2t 2s 2s
k=1 (8)
N−1
√ X kxk − xk−1 k2 kxN − xN−1 k2
+ (1 − Lst) +
2t 2t
k=1
kx − x0 k2 kz − z0 k2
≤ + + (xN − xN−1 )T AT (zN − z),
2t 2s
b2
其中约定x−1 = x0 .再一次应用柯西不等式,以及2ab ≤ αa2 + α 对任
意的α > 0均成立,可以得到
√
(xN − xN−1 )T AT (zN − z) ≤ kxN − xN−1 k( LkzN − zk)
kxN − xN−1 k2 Lstkz − zN k2
≤ + .
2t 2s 47/51
收敛性分析
不等式(8)可进一步整理为
N
X
f (x ) − h∗ (z) + (xk )T AT z − f (x) − h∗ (zk ) + xT AT zk
k
k=1
N
kx − xN k2 kz − zN k2 √ X kzk − zk−1 k2
+ + (1 − Lst) + (1 − Lst)
2t 2s 2s
k=1 (9)
N−1
√ X kxk − xk−1 k2
+ (1 − Lst)
2t
k=1
kx − x 0 k2 kz − z0 k2
≤ + .
2t 2s
若取(x, z) = (x̂, ẑ),则由鞍点性质可知
进而(9)左边每一项都是正的,结论(a)成立. 48/51
收敛性分析
从(9)出发,利用f , h∗ 的凸性,以及xN , zN 的定义,有
N
1 X k
f (x ) − h∗ (z) + (xk )T AT z − f (x) − h∗ (zk ) + xT AT zk
≤
N (10)
k=1
1 kx − x0 k2 kz − z0 k2
≤ + .
N 2t 2s
从而(x] , z] )也是问题(1)的一个鞍点.
49/51
收敛性分析
为了证明{(xk , zk )}全序列收敛到问题(1)的鞍点,我们采用的大致思路
为:先说明其子列收敛,然后再利用(7) 式估计序列中其他点到子列极
限点的误差(进而证明全序列收敛),最后说明该极限点是鞍点.根
据结论(1),{(xk , zk )}是有界点列,因此存在子列{(xkl , zkl )}收敛
于(x∗ , z∗ ).在(7) 式中令(x, z) = (x∗ , z∗ ),并将k从kl 取至N − 1, N > kl 并
求和,有
kx∗ − xN k2 kz∗ − zN k2
+
2t 2s
N
√ X kzk − zk−1 k2 kxkl − xkl −1 k2
+ (1 − Lst) −
2s 2t
k=kl +1
N−1
√ X kxk − xk−1 k2 kxN − xN−1 k2
+ (1 − Lst) +
2t 2t
k=kl
N
+ (x − x N−1 T T
) A (zN − z∗ ) − (xkl − xkl −1 )T AT (zkl − z∗ )
kx∗ − xkl k2 kz∗ − zkl k2
≤ + .
2t 2s 50/51
收敛性分析
去掉上式中不等式左边的求和项(正项),我们有如下估计:
kx∗ − xN k2 kz∗ − zN k2
+
2t 2s
kx∗ − xkl k2 kz∗ − zkl k2 kxkl − xkl −1 k2 kxN − xN−1 k2
≤ + + −
2t 2s 2t 2t
+ (xkl − xkl −1 )T AT (zkl − z∗ ) − (xN − xN−1 )T AT (zN − z∗ ).
注意到
xkl → x∗ , (xkl 的定义)
xN − xN−1 → 0, (由(9) 式推出)
{zk }有界, (本定理中(a) 的结论)
所以当N → ∞时有,xN → x∗ , zN → z∗ ,全序列收敛性得证.最后,
由全序列收敛可知均值(xN , zN )也收敛到(x∗ , z∗ ),根据(a) 的结论和极限
的唯一性立即得到(x] , z] ) = (x∗ , z∗ ),即收敛到问题(1)的一个鞍点
51/51