我们证明了梯度方法最快的收敛速度只能是 O(1/k2)(没有强凸假设的话),但是前面的方法最多只能达到 O(1/k) 的收敛速度,那么有没有方法能达到这一极限呢?有!这一节要讲的**加速近似梯度方法(APG)**就是。这个方法的构造非常的巧妙,证明过程中会发现每一项都恰到好处的抵消了!真不知道作者是怎么想出来这么巧妙地方法,各位可以看看证明过程自行体会。
1. 加速近似梯度方法
首先说我们要考虑的优化问题形式还是
minimize f(x)=g(x)+h(x)
其中 g 为光滑项,dom g=Rn,h 为不光滑项,且为闭的凸函数,另外为了证明梯度方法的收敛性,跟前面类似,我们需要引入 Lipschitz-smooth 条件与强凸性质:
2LxTx−g(x),g(x)−2mxTxconvex
其中 L>0,m≥0,m 可以等于 0,此时就相当于没有强凸性质。
然后我们就来看看 APG(Accelerated Proximal Gradient Methods) 方法到底是怎么下降的。首先取 x0=v0,θ0∈(0,1],对于每次迭代过程,包括以下几个步骤:
- 求 θk:tkθk2=(1−θk)γk+mθk where γk=tk−1θk−12
- 更新 xk,vk:
yxk+1vk+1=xk+γk+mθkθkγk(vk−xk)(y=x0 if k=0)=proxtkh(y−tk∇g(y))(★)=xk+θk1(xk+1−xk)
这里面的关键就是上面的 (★) 式,对比前面讲过的近似梯度下降法实际上是
xk+1=proxtkh(xk−tk∇g(xk))
所以这里实际上主要的变化就是将 xk 换成了 y,那么 y 跟 xk 又有什么不同呢?
y=xk+γk+mθkθkγk(vk−xk)=xk+βk(xk−xk−1)βk=γk+mθkθkγk(θk−11−1)=tk−1θk+tkθk−12tkθk−1(1−θk−1)
可以看到 y=xk+βk(xk−xk−1) 实际上就是在 xk 的基础上增加了一个**“动量(Momentum)”**,如下图所示

我们自然的要关注 βk,θk 的大小以及有什么性质。首先对于参数 θk 它是根据二次方程一步步迭代出来的
tkθk2=(1−θk)tk−1θk−12+mθk
可以有几个主要结论:
- 如果 m>0 且 θ0=mt0,那么有 θk=mtk,∀k
- 如果 m>0 且 θ0≥mt0,那么有 θk≥mtk,∀k
- 如果 mtk<,,那么有 θk<1
下面可以看几个关于 θk,βk 随着迭代次数 k 的变化:

如果我们取前面的 APG 方法中的 m=0,然后消掉中间变量 vk,就可以得到 FISTA(Fast Iterative Shrinkage-Thresholding Algorithm) 算法
yxk+1=xk+θk(θk−11−1)(xk−xk−1)(y=x0 if k=0)=proxtkh(y−tk∇g(y))
2. 收敛性分析
前面已经了解了基本原理,下面需要证明一下为什么他可以达到 O(1/k2) 的收敛速度。作为类比,我们先回忆一下之前是怎么证明梯度方法/近似梯度方法的收敛性的?
(GD)⟹(SD)(PD)⟹f(x+)−f⋆≤∇f(x)T(x−x⋆)−2t∥∇f(x)∥22f(x+)−f⋆≤2t1(∥x−x⋆∥22−∥∥x+−x⋆∥∥22)2t(f(x)−f⋆)≤∥x−x⋆∥22−∥∥x+−x⋆∥∥22+t2∥g∥22f(x+)≤f(z)+Gt(x)T(x−z)−2t∥Gt(x)∥22−2m∥x−z∥22f(x+)−f⋆≤2t1(∥x−x⋆∥22−∥∥x+−x⋆∥∥22)
对于这一节的 APG 方法,证明思路是首先证明下面的迭代式子成立
f(xi+1)−f⋆+2γi+1∥vi+1−x⋆∥22≤(1−θi)(f(xi)−f⋆+2γi∥vi−x⋆∥22) if i≥1
对比后发现实际上之前我们考虑的是 f(x+)−f⋆ 的迭代式子,而这里我们加了一个小尾巴,考虑 f(x+)−f⋆+2γi+1∥vi+1−x⋆∥22 的收敛速度。证明一会再说,有了这个迭代关系式,那么就可以有
f(xk)−f⋆≤λk((1−θ0)(f(x0)−f⋆)+2γ1−mθ0∥x0−x⋆∥22)≤λk((1−θ0)(f(x0)−f⋆)+2t0θ02∥x0−x⋆∥22)
其中 λ1=1,λk=∏i=1k−1(1−θi) for k>1,如果能证明 λk∼O(1/k2) 就能证明收敛速度了。好了,下面就是非常巧妙而又繁琐的证明过程了。
这个证明过程很繁琐,为了更容易顺下来,这里列出来其中几个关键的等式/不等式(为了简便省略了下标):
-
γ+−mθ=(1−θ)γ(易证)
- γ+v+=γ+v+mθ(y−v)−θGt(y)
- f(x+)−f⋆≤(1−θ)(f(x)−f⋆)−Gt(y)T((1−θ)x+θx⋆−y)−2t∥Gt(y)∥22−2mθ∥x⋆−y∥22
- 2γ+∥∥v+−x⋆∥∥22≤2γ+−mθ∥v−x⋆∥22+Gt(y)T(θx⋆+(1−θ)x−y)+2t∥Gt(y)∥22+2mθ∥x⋆−y∥22
(3,4) 条结合就能得到上面的迭代关系式,很多项刚好消掉。下面就是要证明 λk∼O(1/k2):
γk+1=(1−θk)γk+mθkλi+1=(1−θi)λi=γiγi+1−θimλi≤γiγi+1λi⟹λk≤γk/γ1λi+11−λi1≥2λi+1θi=21γ1ti
然后就可以有
λk≤(2+γ1∑i=1k−1ti)24=(2t0+θ0∑i=1k−1ti)24t0
如果取 t0=tk=1/L,θ0=1,则有
λk≤(k+1)24
如果有强凸性质,也即 m>0,那么取 θ0≥mt0⟹θk≥mtk
λk≤Πi=1k−1(1−mti)
这就可以变成线性收敛了。
最后给我的博客打个广告,欢迎光临
https://glooow1024.github.io/
https://glooow.gitee.io/
前面的一些博客链接如下
凸优化专栏
凸优化学习笔记 1:Convex Sets
凸优化学习笔记 2:超平面分离定理
凸优化学习笔记 3:广义不等式
凸优化学习笔记 4:Convex Function
凸优化学习笔记 5:保凸变换
凸优化学习笔记 6:共轭函数
凸优化学习笔记 7:拟凸函数 Quasiconvex Function
凸优化学习笔记 8:对数凸函数
凸优化学习笔记 9:广义凸函数
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
凸优化学习笔记 12:KKT条件
凸优化学习笔记 13:KKT条件 & 互补性条件 & 强对偶性
凸优化学习笔记 14:SDP Representablity
凸优化学习笔记 15:梯度方法
凸优化学习笔记 16:次梯度
凸优化学习笔记 17:次梯度下降法
凸优化学习笔记 18:近似点算子 Proximal Mapping
凸优化学习笔记 19:近似梯度下降
凸优化学习笔记 20:对偶近似点梯度下降法
凸优化学习笔记 21:加速近似梯度下降方法