最优化方法 19:近似梯度下降

前面讲了梯度下降法、次梯度下降法,并分析了他们的收敛性。上一节讲了近似梯度算子,我们说主要是针对非光滑问题的,这一节就要讲近似梯度算子在非光滑优化问题中的应用。先回顾一下上一节最重要的一部分内容:对于指示函数 δ C \delta_C δC 来说近似梯度算子得到的实际上就是向集合 C C C 的投影。

1. 近似点梯度下降

这一部分考虑的问题主要是
minimize  f ( x ) = g ( x ) + h ( x ) \text{minimize } f(x)=g(x)+h(x) minimize f(x)=g(x)+h(x)
这里面 g g g 是全空间可导的凸函数, dom  g = R n \text{dom }g=R^n dom g=Rn h h h 是存在不可导部分的凸函数,并且一般需要 h h h 的近似点计算较为简单。近似点梯度下降算法是什么呢?
x k + 1 = prox t h ( x k − t k ∇ g ( x k ) ) x_{k+1}=\text{prox}_{th}(x_k-t_k\nabla g(x_k)) xk+1=proxth(xktkg(xk))
这里跟之前的梯度下降(GD)和次梯度下降(SD)的形式都不太一样,实际上看了后面的推导会发现经过转换他们还是很像的。不过怎么理解这个式子呢?举一个例子,假如 h h h 是集合 C C C 的指示函数,那么这个式子实际上是先沿着 g g g 的梯度走步长 t k t_k tk,然后再投影到集合 C C C 里面,可以看下面这张图。而考虑原始优化问题, min ⁡ f = g + h \min f=g+h minf=g+h 本身是一个无约束优化问题,但实际上把 h h h 用一个约束函数表示,他就是一个带约束的优化问题 min ⁡ g ( x ) ,  s.t.  x ∈ C \min g(x),\text{ s.t. }x\in C ming(x), s.t. xC,而近似点梯度下降方法要做的事情就是先优化 g g g,然后投影到约束区域 C C C 中,可以参考下图。

在这里插入图片描述

根据 prox t h \text{prox}_{th} proxth 的定义,我们把上面的式子展开可以得到
x + = argmin ⁡ u ( h ( u ) + 1 2 t ∥ u − x + t ∇ g ( x ) ∥ 2 2 ) = argmin ⁡ u ( h ( u ) + g ( x ) + ∇ g ( x ) T ( u − x ) + 1 2 t ∥ u − x ∥ 2 2 ) \begin{aligned} x^{+} &=\underset{u}{\operatorname{argmin}}\left(h(u)+\frac{1}{2 t}\|u-x+t \nabla g(x)\|_{2}^{2}\right) \\ &=\underset{u}{\operatorname{argmin}}\left(h(u)+g(x)+\nabla g(x)^{T}(u-x)+\frac{1}{2 t}\|u-x\|_{2}^{2}\right) \end{aligned} x+=uargmin(h(u)+2t1ux+tg(x)22)=uargmin(h(u)+g(x)+g(x)T(ux)+2t1ux22)
可以发现括号里面的式子实际上就是在 x x x 附近对光滑的 g g g 进行了二阶展开,而 x + x^+ x+ 就是对近似后函数取最小值点。再进一步地
0 ∈ t ∂ h ( x + ) + ( x + − x + t ∇ g ( x ) ) ⟹ G t ( x ) : = x − x + t ∈ ∂ h ( x + ) + ∇ g ( x ) 0\in t\partial h(x^+) + (x^+-x+t\nabla g(x)) \\ \Longrightarrow G_t(x):=\frac{x-x^+}{t}\in \partial h(x^+)+\nabla g(x) 0th(x+)+(x+x+tg(x))Gt(x):=txx+h(x+)+g(x)
可以发现 G t ( x ) = ∂ h ( x + ) + ∇ g ( x ) G_t(x)=\partial h(x^+)+\nabla g(x) Gt(x)=h(x+)+g(x) 实际上就近似为函数 f f f 的次梯度,但并不严格是,因为 ∂ f ( x ) = ∂ h ( x ) + ∇ g ( x ) \partial f(x)=\partial h(x)+\nabla g(x) f(x)=h(x)+g(x)。而此时我们也可以将 x + x^+ x+ 写成比较简单的形式
x + = x − t G t ( x ) x^+ = x-tG_t(x) x+=xtGt(x)
这跟之前的梯度下降法就统一了,并且也说明了 G t ( x ) G_t(x) Gt(x) 就相当于是 f f f 的梯度。

这里还需要说明的一点是 G t ( x ) = ( 1 / t ) ( x − prox t h ( x − t ∇ g ( x ) ) G_t(x)=(1/t)(x-\text{prox}_{th}(x-t\nabla g(x)) Gt(x)=(1/t)(xproxth(xtg(x)) 这是一个连续函数,这是因为近似点算子是 Lipschitz 连续的(在下面一小节中会解释说明),又由于 G t ( x ) = 0    ⟺    x = arg ⁡ min ⁡ f ( x ) G_t(x)=0\iff x=\arg\min f(x) Gt(x)=0x=argminf(x),因此 ∥ x − x + ∥ ≤ ε \Vert x-x^+\Vert\le \varepsilon xx+ε 就可以作为 stopping criterion。与之成对比的是非光滑函数的次梯度下降, ∥ x − x + ∥ \Vert x-x^+\Vert xx+ 就不是一个很好的 stopping criterion,因为即使 ∥ x − x + ∥ \Vert x-x^+\Vert xx+ 很小,也可能离最优解比较远。

2. 收敛速度分析

在分析收敛速度之前,我们需要首先分析一下 g ( x ) g(x) g(x) h ( x ) h(x) h(x) 这两部分函数的性质。

首先是 h h h,如果 h h h 为闭的凸函数,那么 prox h ( x ) = arg ⁡ min ⁡ u ( h ( u ) + ( 1 / 2 ) ∥ u − x ∥ 2 ) \text{prox}_h(x)=\arg\min_u\left(h(u)+(1/2)\Vert u-x\Vert^2\right) proxh(x)=argminu(h(u)+(1/2)ux2) 对每个 x x x 一定存在唯一的解。并且 u = prox h ( x )    ⟺    x − u ∈ ∂ h ( u ) u=\text{prox}_h(x) \iff x-u\in \partial h(u) u=proxh(x)xuh(u),那么我们就可以得到 firmly nonexpansive(co-coercivite) 性质:
( prox ⁡ h ( x ) − prox ⁡ h ( y ) ) T ( x − y ) ≥ ∥ prox ⁡ h ( x ) − prox ⁡ h ( y ) ∥ 2 2 \left(\operatorname{prox}_{h}(x)-\operatorname{prox}_{h}(y)\right)^{T}(x-y) \geq\left\|\operatorname{prox}_{h}(x)-\operatorname{prox}_{h}(y)\right\|_{2}^{2} (proxh(x)proxh(y))T(xy)proxh(x)proxh(y)22
证明过程可以取 u = prox h ( x ) , v = prox h ( y ) u=\text{prox}_h(x),v=\text{prox}_h(y) u=proxh(x),v=proxh(y),然后根据 x − u ∈ ∂ h ( u ) , y − v ∈ ∂ h ( v ) x-u\in \partial h(u),y-v\in \partial h(v) xuh(u),yvh(v),再利用次梯度算子的单调性质就可以得到。之前在梯度下降法中第一次讲到 co-coercive 性质的时候也提到,他跟 Lipschitz continuous 性质实际上是等价的,因此我们也有(nonexpansiveness性质)
∥ prox ⁡ h ( x ) − prox ⁡ h ( y ) ∥ 2 ≤ ∥ x − y ∥ 2 \left\|\operatorname{prox}_{h}(x)-\operatorname{prox}_{h}(y)\right\|_2 \le \left\|x-y\right\|_2 proxh(x)proxh(y)2xy2
然后我们再来看函数 g g g 的性质,类似前面梯度下降法中的两个重要性质:

  1. L-smooth L 2 x T x − g ( x ) \frac{L}{2}x^Tx-g(x) 2LxTxg(x) convex
  2. m-strongly convex g ( x ) − m 2 x T x g(x)-\frac{m}{2}x^Tx g(x)2mxTx convex

然后就可以得到两个二次的界
m t 2 2 ∥ G t ( x ) ∥ 2 2 ≤ g ( x − t G t ( x ) ) − g ( x ) + t ∇ g ( x ) T G t ( x ) ≤ L t 2 2 ∥ G t ( x ) ∥ 2 2 \frac{m t^{2}}{2}\left\|G_{t}(x)\right\|_{2}^{2} \leq g\left(x-t G_{t}(x)\right)-g(x)+t \nabla g(x)^{T} G_{t}(x) \leq \frac{L t^{2}}{2}\left\|G_{t}(x)\right\|_{2}^{2} 2mt2Gt(x)22g(xtGt(x))g(x)+tg(x)TGt(x)2Lt2Gt(x)22
如果取 0 < t ≤ 1 / L 0< t\le 1/L 0<t1/L,那么就有 L t ≤ 1 , m t ≤ 1 Lt\le1,mt\le 1 Lt1,mt1

结合上面对 g g g h h h 性质的分析,就能得到下面这个非常重要的式子:

f ( x − t G t ( x ) ) ≤ f ( z ) + G t ( x ) T ( x − z ) − t 2 ∥ G t ( x ) ∥ 2 2 − m 2 ∥ x − z ∥ 2 2 ( ★ ) f\left(x-t G_{t}(x)\right) \leq f(z)+G_{t}(x)^{T}(x-z)-\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2}-\frac{m}{2}\|x-z\|_{2}^{2} \qquad (\bigstar) f(xtGt(x))f(z)+Gt(x)T(xz)2tGt(x)222mxz22()

证明
f ( x − t G t ( x ) ) ≤ g ( x ) − t ∇ g ( x ) T G t ( x ) + t 2 ∥ G t ( x ) ∥ 2 2 + h ( x − t G t ( x ) ) ≤ g ( z ) − ∇ g ( x ) T ( z − x ) − m 2 ∥ z − x ∥ 2 2 − t ∇ g ( x ) T G t ( x ) + t 2 ∥ G t ( x ) ∥ 2 2 + h ( x − t G t ( x ) ) ≤ g ( z ) − ∇ g ( x ) T ( z − x ) − m 2 ∥ z − x ∥ 2 2 − t ∇ g ( x ) T G t ( x ) + t 2 ∥ G t ( x ) ∥ 2 2 + h ( z ) − ( G t ( x ) − ∇ g ( x ) ) T ( z − x + t G t ( x ) ) = g ( z ) + h ( z ) + G t ( x ) T ( x − z ) − t 2 ∥ G t ( x ) ∥ 2 2 − m 2 ∥ x − z ∥ 2 2 \begin{aligned} f\left(x-t G_{t}(x)\right) & \\ \leq & g(x)-t \nabla g(x)^{T} G_{t}(x)+\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2}+h\left(x-t G_{t}(x)\right) \\ \leq & g(z)-\nabla g(x)^{T}(z-x)-\frac{m}{2}\|z-x\|_{2}^{2}-t \nabla g(x)^{T} G_{t}(x)+\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2} \\ &+h\left(x-t G_{t}(x)\right) \\ \leq & g(z)-\nabla g(x)^{T}(z-x)-\frac{m}{2}\|z-x\|_{2}^{2}-t \nabla g(x)^{T} G_{t}(x)+\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2} \\ &+h(z)-\left(G_{t}(x)-\nabla g(x)\right)^{T}\left(z-x+t G_{t}(x)\right) \\ =& g(z)+h(z)+G_{t}(x)^{T}(x-z)-\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2}-\frac{m}{2}\|x-z\|_{2}^{2} \end{aligned} f(xtGt(x))=g(x)tg(x)TGt(x)+2tGt(x)22+h(xtGt(x))g(z)g(x)T(zx)2mzx22tg(x)TGt(x)+2tGt(x)22+h(xtGt(x))g(z)g(x)T(zx)2mzx22tg(x)TGt(x)+2tGt(x)22+h(z)(Gt(x)g(x))T(zx+tGt(x))g(z)+h(z)+Gt(x)T(xz)2tGt(x)222mxz22
其中第一个不等号用到了 g ( x ) g(x) g(x) 凸函数以及 Lipschitz 连续的性质,第二个不等号用到了 g ( x ) g(x) g(x) 凸函数的性质,第三个不等号用到了 h ( x ) h(x) h(x) 凸函数的性质。

有了上面这个式子就可以分析收敛性了。

如果我们取 z = x z=x z=x,那么就有下面的式子,说明序列 { f ( x k } \{f(x_k\} {f(xk} 总是在减小的,如果 f ( x ) f(x) f(x) 存在下界,那么 f ( x k ) f(x_k) f(xk) 将趋向于这个下界。
f ( x + ) ≤ f ( x ) − t 2 ∥ G t ( x ) ∥ 2 f(x^+)\le f(x)-\frac{t}{2}\Vert G_t(x)\Vert^2 f(x+)f(x)2tGt(x)2
如果我们取 z = x ⋆ z=x^\star z=x,那么就有
f ( x + ) − f ⋆ ≤ G t ( x ) T ( x − x ⋆ ) − t 2 ∥ G t ( x ) ∥ 2 2 − m 2 ∥ x − x ⋆ ∥ 2 2 = 1 2 t ( ∥ x − x ⋆ ∥ 2 2 − ∥ x − x ⋆ − t G t ( x ) ∥ 2 2 ) − m 2 ∥ x − x ⋆ ∥ 2 2 = 1 2 t ( ( 1 − m t ) ∥ x − x ⋆ ∥ 2 2 − ∥ x + − x ⋆ ∥ 2 2 ) ≤ 1 2 t ( ∥ x − x ⋆ ∥ 2 2 − ∥ x + − x ⋆ ∥ 2 2 ) \begin{aligned} f\left(x^{+}\right)-f^{\star} & \leq G_{t}(x)^{T}\left(x-x^{\star}\right)-\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2}-\frac{m}{2}\left\|x-x^{\star}\right\|_{2}^{2} \\ &=\frac{1}{2 t}\left(\left\|x-x^{\star}\right\|_{2}^{2}-\left\|x-x^{\star}-t G_{t}(x)\right\|_{2}^{2}\right)-\frac{m}{2}\left\|x-x^{\star}\right\|_{2}^{2} \\ &=\frac{1}{2 t}\left((1-m t)\left\|x-x^{\star}\right\|_{2}^{2}-\left\|x^{+}-x^{\star}\right\|_{2}^{2}\right) \\ & \leq \frac{1}{2 t}\left(\left\|x-x^{\star}\right\|_{2}^{2}-\left\|x^{+}-x^{\star}\right\|_{2}^{2}\right) \end{aligned} f(x+)fGt(x)T(xx)2tGt(x)222mxx22=2t1(xx22xxtGt(x)22)2mxx22=2t1((1mt)xx22x+x22)2t1(xx22x+x22)
从这个式子就可以看出来很多有用的性质了:

  1. ∥ x + − x ⋆ ∥ 2 2 ≤ ( 1 − m t ) ∥ x − x ⋆ ∥ 2 2 \left\|x^{+}-x^{\star}\right\|_{2}^{2}\le (1-m t)\left\|x-x^{\star}\right\|_{2}^{2} x+x22(1mt)xx22,如果满足强凸性质的话,也即 m > 0 m>0 m>0,就有 ∥ x + − x ⋆ ∥ 2 2 ≤ c k ∥ x − x ⋆ ∥ 2 2 , c = 1 − m / L \left\|x^{+}-x^{\star}\right\|_{2}^{2}\le c^k\left\|x-x^{\star}\right\|_{2}^{2},c=1-m/L x+x22ckxx22,c=1m/L
  2. ∑ i k ( f ( x i ) − f ⋆ ) ≤ 1 2 t ∥ x + − x ⋆ ∥ 2 2 \sum_i^k (f(x_i)-f^\star) \le \frac{1}{2t}\left\|x^{+}-x^{\star}\right\|_{2}^{2} ik(f(xi)f)2t1x+x22,由于 f ( x i ) f(x_i) f(xi) 不增,因此 f ( x k ) − f ⋆ ≤ 1 2 k t ∥ x + − x ⋆ ∥ 2 2 f(x_k)-f^\star \le \frac{1}{2kt}\left\|x^{+}-x^{\star}\right\|_{2}^{2} f(xk)f2kt1x+x22,因此收敛速度也是 O ( 1 / k ) O(1/k) O(1/k)

注意到前面的分析是针对固定步长 t ∈ ( 0 , 1 / L ] t\in(0,1/L] t(0,1/L] 的,如果我们想走的更远一点,下降的快一点呢?就可以用前几节提到的线搜索方法。也就是说每次选择步长 t k t_k tk 的时候需要迭代 t : = β t t:=\beta t t:=βt 来进行搜索,使得满足下面的式子
g ( x − t G t ( x ) ) ≤ g ( x ) − t ∇ g ( x ) T G t ( x ) + t 2 ∥ G t ( x ) ∥ 2 2 g\left(x-t G_{t}(x)\right) \leq g(x)-t \nabla g(x)^{T} G_{t}(x)+\frac{t}{2}\left\|G_{t}(x)\right\|_{2}^{2} g(xtGt(x))g(x)tg(x)TGt(x)+2tGt(x)22
这个式子就是 Lipschitz 连续导出的二次上界,注意应用线搜索的时候,每次迭代我们都要额外计算一次 g g g prox t h \text{prox}_{th} proxth,这个计算可能并不简单,因此不一定会使算法收敛更快,需要慎重考虑。另外为了保证能在有限步停止搜索 t k t_k tk,还需要加入最小步长的约束 t ≥ t min ⁡ = min ⁡ { t ^ , β / L } t\ge t_{\min}=\min \{\hat{t},\beta/L\} ttmin=min{t^,β/L}。线搜索直观理解可以如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZkJVmrlK-1587117296421)(E:\Study\凸优化\img\19-line-search.PNG)]

我们再来分析一下收敛性,跟前面固定步长很像,只需要将原来的式子中 t t t 替换为 t i t_i ti,就可以得到
t i ( f ( x i + 1 ) − f ⋆ ) ≤ 1 2 ( ∥ x i − x ⋆ ∥ 2 2 − ∥ x i + 1 − x ⋆ ∥ 2 2 ) t_{i}\left(f\left(x_{i+1}\right)-f^{\star}\right) \leq \frac{1}{2}\left(\left\|x_{i}-x^{\star}\right\|_{2}^{2}-\left\|x_{i+1}-x^{\star}\right\|_{2}^{2}\right) ti(f(xi+1)f)21(xix22xi+1x22)
于是有

  1. ∥ x + − x ⋆ ∥ 2 2 ≤ ( 1 − m t i ) ∥ x − x ⋆ ∥ 2 2 ≤ ( 1 − m t min ⁡ ) ∥ x − x ⋆ ∥ 2 2 \left\|x^{+}-x^{\star}\right\|_{2}^{2}\le (1-m t_i)\left\|x-x^{\star}\right\|_{2}^{2}\le (1-m t_{\min})\left\|x-x^{\star}\right\|_{2}^{2} x+x22(1mti)xx22(1mtmin)xx22,如果满足强凸性质的话,也即 m > 0 m>0 m>0,就有 ∥ x + − x ⋆ ∥ 2 2 ≤ c k ∥ x − x ⋆ ∥ 2 2 , c = 1 − m t min ⁡ = max ⁡ { 1 − β m / L , 1 − m t ^ } \left\|x^{+}-x^{\star}\right\|_{2}^{2}\le c^k\left\|x-x^{\star}\right\|_{2}^{2},c=1-mt_{\min}=\max \{1-\beta m/L,1-m\hat{t}\} x+x22ckxx22,c=1mtmin=max{1βm/L,1mt^}
  2. ∑ i k t i ( f ( x i ) − f ⋆ ) ≤ 1 2 ∥ x + − x ⋆ ∥ 2 2 \sum_i^k t_i(f(x_i)-f^\star) \le \frac{1}{2}\left\|x^{+}-x^{\star}\right\|_{2}^{2} ikti(f(xi)f)21x+x22,由于 f ( x i ) f(x_i) f(xi) 不增,因此 f ( x k ) − f ⋆ ≤ 1 2 k t min ⁡ ∥ x + − x ⋆ ∥ 2 2 f(x_k)-f^\star \le \frac{1}{2kt_{\min}}\left\|x^{+}-x^{\star}\right\|_{2}^{2} f(xk)f2ktmin1x+x22,因此收敛速度也是 O ( 1 / k ) O(1/k) O(1/k)

最后给我的博客打个广告,欢迎光临
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:加速近似梯度下降方法
最优化方法 22:近似点算法 PPA
最优化方法 23:算子分裂法 & ADMM
最优化方法 24:ADMM

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值