凸优化学习笔记 15:梯度方法

前面的章节基本上讲完了凸优化相关的理论部分,在对偶原理以及 KKT 条件那里我们已经体会到了理论之美!接下来我们就要进入求解算法的部分,这也是需要浓墨重彩的一部分,毕竟我们学习凸优化就是为了解决实际当中的优化问题。我们今天首先要接触的就是大名鼎鼎的梯度方法。现在人工智能和人工神经网络很火,经常可以听到反向传播,这实际上就是梯度下降方法的应用,他的思想其实很简单,就是沿着函数梯度的反方向走就会使函数值不断减小。
x k + 1 = x k − t k ∇ f ( x k ) , k = 0 , 1 , . . . x_{k+1}=x_{k}-t_k \nabla f(x_k),\quad k=0,1,... xk+1=xktkf(xk),k=0,1,...
上面的式子看起来简单,但是真正应用时你会发现有各种问题:

  1. 下降方向怎么选? ∇ f ( x k ) \nabla f(x_k) f(xk) 吗?选择其他方向会不会好一点呢?
  2. 如果 f ( x ) f(x) f(x) (在某些点)不可导又怎么办呢?
  3. 步长 t k t_k tk 怎么选呢?固定值?变化值?选多大比较好?
  4. 收敛速度怎么样呢?我怎么才能知道是否达到精度要求呢?

1. 凸函数

前面讲凸函数的时候我们提到了很多等价定义:Jensen’s 不等式、“降维打击”、一阶条件、二阶条件。这里我们主要关注其中两个:

  1. Jensen’s 不等式: f ( θ x + ( 1 − θ ) y ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x+(1-\theta) y) \leq \theta f(x)+(1-\theta) f(y) f(θx+(1θ)y)θf(x)+(1θ)f(y)
  2. 一阶条件等价于梯度单调性 ( ∇ f ( x ) − ∇ f ( y ) ) T ( x − y ) ≥ 0  for all  x , y ∈ dom ⁡ f (\nabla f(x)-\nabla f(y))^{T}(x-y) \geq 0 \quad \text { for all } x, y \in \operatorname{dom} f (f(x)f(y))T(xy)0 for all x,ydomf

也就是说凸函数的梯度 ∇ f : R n → R n \nabla f: R^n\to R^n f:RnRn 是一个单调映射

2. Lipschitz continuity

函数 f f f 的梯度满足**利普希茨连续(Lipschitz continuous)**的定义为
∥ ∇ f ( x ) − ∇ f ( y ) ∥ ∗ ≤ L ∥ x − y ∥  for all  x , y ∈ dom ⁡ f \|\nabla f(x)-\nabla f(y)\|_{*} \leq L\|x-y\| \quad \text { for all } x, y \in \operatorname{dom} f f(x)f(y)Lxy for all x,ydomf
也被称为 L-smooth。有了这个条件,我们可以推出很多个等价性质,这里省略了证明过程
在这里插入图片描述

也就是说下面的式子都是等价的
∥ ∇ f ( x ) − ∇ f ( y ) ∥ ∗ ≤ L ∥ x − y ∥  for all  x , y ∈ dom ⁡ f \|\nabla f(x)-\nabla f(y)\|_{*} \leq L\|x-y\| \quad \text { for all } x, y \in \operatorname{dom} f f(x)f(y)Lxy for all x,ydomf

( ∇ f ( x ) − ∇ f ( y ) ) T ( x − y ) ≤ L ∥ x − y ∥ 2  for all  x , y ∈ dom ⁡ f (\nabla f(x)-\nabla f(y))^{T}(x-y) \leq L\|x-y\|^{2} \quad \text { for all } x, y \in \operatorname{dom} f (f(x)f(y))T(xy)Lxy2 for all x,ydomf

f ( y ) ≤ f ( x ) + ∇ f ( x ) T ( y − x ) + L 2 ∥ y − x ∥ 2  for all  x , y ∈ dom ⁡ f f(y) \leq f(x)+\nabla f(x)^{T}(y-x)+\frac{L}{2}\|y-x\|^{2} \quad \text { for all } x, y \in \operatorname{dom} f f(y)f(x)+f(x)T(yx)+2Lyx2 for all x,ydomf

( ∇ f ( x ) − ∇ f ( y ) ) T ( x − y ) ≥ 1 L ∥ ∇ f ( x ) − ∇ f ( y ) ∥ ∗ 2  for all  x , y (\nabla f(x)-\nabla f(y))^{T}(x-y) \geq \frac{1}{L}\|\nabla f(x)-\nabla f(y)\|_{*}^{2} \quad \text { for all } x, y (f(x)f(y))T(xy)L1f(x)f(y)2 for all x,y

g ( x ) = L 2 ∥ x ∥ 2 2 − f ( x )   is convex g(x)=\frac{L}{2}\Vert x\Vert_2^2-f(x) \ \text{ is convex} g(x)=2Lx22f(x)  is convex

Remarks 1

上面的第 3 个式子
f ( y ) ≤ f ( x ) + ∇ f ( x ) T ( y − x ) + L 2 ∥ y − x ∥ 2  for all  x , y ∈ dom ⁡ f f(y) \leq f(x)+\nabla f(x)^{T}(y-x)+\frac{L}{2}\Vert y-x\Vert^{2} \quad \text { for all } x, y \in \operatorname{dom} f f(y)f(x)+f(x)T(yx)+2Lyx2 for all x,ydomf
实际上定义了一个二次曲线,这个曲线是原始函数的 Quadratic upper bound

Quadratic upper bound

并且由这个式子可以推导出
1 2 L ∥ ∇ f ( z ) ∥ ∗ 2 ≤ f ( z ) − f ( x ⋆ ) ≤ L 2 ∥ z − x ⋆ ∥ 2  for all  z \frac{1}{2 L}\Vert\nabla f(z)\Vert_{*}^{2} \leq f(z)-f\left(x^{\star}\right) \leq \frac{L}{2}\left\Vert z-x^{\star}\right\Vert^{2} \quad \text { for all } z 2L1f(z)2f(z)f(x)2Lzx2 for all z
这个式子中的上界 L 2 ∥ z − x ⋆ ∥ 2 \frac{L}{2}\left\|z-x^{\star}\right\|^{2} 2Lzx2 带有 x ⋆ x^\star x 是未知的,而下界只与当前值 z z z 有关,因此在优化过程中我们可以判断当前的 f ( z ) f(z) f(z) 与最优值的距离至少为 1 2 L ∥ ∇ f ( z ) ∥ ∗ 2 \frac{1}{2 L}\|\nabla f(z)\|_{*}^{2} 2L1f(z)2,如果这个值大于0,那么我们一定还没得到最优解。

Remarks 2

上面的最后一个式子
( ∇ f ( x ) − ∇ f ( y ) ) T ( x − y ) ≥ 1 L ∥ ∇ f ( x ) − ∇ f ( y ) ∥ ∗ 2  for all  x , y (\nabla f(x)-\nabla f(y))^{T}(x-y) \geq \frac{1}{L}\|\nabla f(x)-\nabla f(y)\|_{*}^{2} \quad \text { for all } x, y (f(x)f(y))T(xy)L1f(x)f(y)2 for all x,y
被称为 ∇ f \nabla f fco-coercivity 性质。(这其实有点像 ∇ f \nabla f f 的反函数的 L-smooth 性质,所以它跟 ∇ f \nabla f f 的 L-smooth 性质是等价的)

3. 强凸函数

满足如下性质的函数被称为 **m-强凸(m-strongly convex)**的
f ( θ x + ( 1 − θ ) y ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) − m 2 θ ( 1 − θ ) ∥ x − y ∥ 2  for all  x , y ∈ dom f , θ ∈ [ 0 , 1 ] f(\theta x+(1-\theta) y) \leq \theta f(x)+(1-\theta) f(y)-\frac{m}{2} \theta(1-\theta)\|x-y\|^{2} \quad \text { for all } x, y\in\text{dom}f,\theta\in[0,1] f(θx+(1θ)y)θf(x)+(1θ)f(y)2mθ(1θ)xy2 for all x,ydomf,θ[0,1]
m-强凸跟前面的 L-smooth 实际上非常像,只不过一个定义了上界,另一个定义了下界。

类似上面的 L-smooth 性质,我们课可以得到下面几个式子是等价
f  is m-strongly convex f \text{ is m-strongly convex} f is m-strongly convex

( ∇ f ( x ) − ∇ f ( y ) ) T ( x − y ) ≥ m ∥ x − y ∥ 2  for all  x , y ∈ dom ⁡ f (\nabla f(x)-\nabla f(y))^{T}(x-y) \geq m\|x-y\|^{2} \quad \text { for all } x, y \in \operatorname{dom} f (f(x)f(y))T(xy)mxy2 for all x,ydomf

f ( y ) ≥ f ( x ) + ∇ f ( x ) T ( y − x ) + m 2 ∥ y − x ∥ 2  for all  x , y ∈ dom ⁡ f f(y) \geq f(x)+\nabla f(x)^{T}(y-x)+\frac{m}{2}\|y-x\|^{2} \quad \text { for all } x, y \in \operatorname{dom} f f(y)f(x)+f(x)T(yx)+2myx2 for all x,ydomf

g ( x ) = f ( x ) − m 2 ∥ x ∥ 2   is convex g(x) = f(x)-\frac{m}{2}\Vert x\Vert^2 \ \text{ is convex} g(x)=f(x)2mx2  is convex

注意上面第3个式子不等号右遍实际上又定义了一个二次曲线,这个二次曲线是原函数的下界。与前面的二次上界类比可以得到

Quadratic lower boundQuadratic upper bound
Quadratic lower boundQuadratic upper bound
f ( y ) ≥ f ( x ) + ∇ f ( x ) T ( y − x ) + m 2 ∥ y − x ∥ 2 f(y) \geq f(x)+\nabla f(x)^{T}(y-x)+\frac{m}{2}\Vert y-x\Vert^{2} f(y)f(x)+f(x)T(yx)+2myx2 f ( y ) ≤ f ( x ) + ∇ f ( x ) T ( y − x ) + L 2 ∥ y − x ∥ 2 f(y) \leq f(x)+\nabla f(x)^{T}(y-x)+\frac{L}{2}\Vert y-x\Vert^{2} f(y)f(x)+f(x)T(yx)+2Lyx2
⟹ m 2 ∥ z − x ⋆ ∥ 2 ≤ f ( z ) − f ( x ⋆ ) ≤ 1 2 m ∥ ∇ f ( z ) ∥ ∗ 2 \Longrightarrow \frac{m}{2}\left\Vert z-x^{\star}\right\Vert^{2} \leq f(z)-f\left(x^{\star}\right) \leq \frac{1}{2 m}\Vert\nabla f(z)\Vert_{*}^{2} 2mzx2f(z)f(x)2m1f(z)2 ⟹ 1 2 L ∥ ∇ f ( z ) ∥ ∗ 2 ≤ f ( z ) − f ( x ⋆ ) ≤ L 2 ∥ z − x ⋆ ∥ 2 \Longrightarrow \frac{1}{2 L}\Vert\nabla f(z)\Vert_{*}^{2} \leq f(z)-f\left(x^{\star}\right) \leq \frac{L}{2}\left\Vert z-x^{\star}\right\Vert^{2} 2L1f(z)2f(z)f(x)2Lzx2

例子:如果函数 f f f 既是 m-强凸的,又是(关于2范数) L-smooth 的,那么

  1. 函数 h ( x ) = f ( x ) − m 2 ∥ x ∥ 2 h(x)=f(x)-\frac{m}{2}\Vert x\Vert^2 h(x)=f(x)2mx2(L-m)-smooth
  2. 函数 h h h 的 co-coercivity 可以写为

( ∇ f ( x ) − ∇ f ( y ) ) T ( x − y ) ≥ m L m + L ∥ x − y ∥ 2 2 + 1 m + L ∥ ∇ f ( x ) − ∇ f ( y ) ∥ 2 2  for all  x , y ∈ dom ⁡ f (\nabla f(x)-\nabla f(y))^{T}(x-y) \geq \frac{m L}{m+L}\|x-y\|_{2}^{2}+\frac{1}{m+L}\|\nabla f(x)-\nabla f(y)\|_{2}^{2} \quad \text { for all } x, y \in \operatorname{dom} f (f(x)f(y))T(xy)m+LmLxy22+m+L1f(x)f(y)22 for all x,ydomf

4. 梯度方法收敛性分析

下面给出一些常见梯度下降方法的分析。先回顾一下梯度方法的一般表达式
x k + 1 = x k − t k ∇ f ( x k ) x_{k+1}=x_{k}-t_k \nabla f(x_k) xk+1=xktkf(xk)
首先有一些假设

  1. f f f convex 且可导, dom f = R n \text{dom}f=R^n domf=Rn
  2. ∇ f \nabla f f 关于2范数 L-Lipschitz continuous
  3. 最优解有限且可取

4.1 固定步长

固定步长为 t t t,则 x + = x − t ∇ f ( x ) x^+=x-t\nabla f(x) x+=xtf(x),根据 L-smooth 性质有
f ( x − t ∇ f ( x ) ) ≤ f ( x ) − t ( 1 − L t 2 ) ∥ ∇ f ( x ) ∥ 2 2 f(x-t \nabla f(x)) \leq f(x)-t\left(1-\frac{L t}{2}\right)\|\nabla f(x)\|_{2}^{2} f(xtf(x))f(x)t(12Lt)f(x)22
如果 0 < t ≤ 1 / L 0 < t \leq 1/L 0<t1/L,则有
f ( x + ) ≤ f ( x ) − t 2 ∥ ∇ f ( x ) ∥ 2 2 f\left(x^{+}\right) \leq f(x)-\frac{t}{2}\|\nabla f(x)\|_{2}^{2} f(x+)f(x)2tf(x)22
这表明(只要步长 t t t 比较小)函数值总是在不断减小的。从上面的式子结合凸函数性质我们还可以得到
f ( x + ) − f ⋆ ≤ ∇ f ( x ) T ( x − x ⋆ ) − t 2 ∥ ∇ f ( x ) ∥ 2 2 = 1 2 t ( ∥ x − x ⋆ ∥ 2 2 − ∥ x − x ⋆ − t ∇ f ( x ) ∥ 2 2 ) = 1 2 t ( ∥ x − x ⋆ ∥ 2 2 − ∥ x + − x ⋆ ∥ 2 2 ) \begin{aligned} f\left(x^{+}\right)-f^{\star} & \leq \nabla f(x)^{T}\left(x-x^{\star}\right)-\frac{t}{2}\|\nabla f(x)\|_{2}^{2} \\ &=\frac{1}{2 t}\left(\left\|x-x^{\star}\right\|_{2}^{2}-\left\|x-x^{\star}-t \nabla f(x)\right\|_{2}^{2}\right) \\ &=\frac{1}{2 t}\left(\left\|x-x^{\star}\right\|_{2}^{2}-\left\|x^{+}-x^{\star}\right\|_{2}^{2}\right) \end{aligned} f(x+)ff(x)T(xx)2tf(x)22=2t1(xx22xxtf(x)22)=2t1(xx22x+x22)
从这个式子可以得到我们到最优点 x ⋆ x^\star x 的距离在不断减小。那么可以得到下面的式子
∑ i = 1 k ( f ( x i ) − f ⋆ ) ≤ 1 2 t ∑ i = 1 k ( ∥ x i − 1 − x ⋆ ∥ 2 2 − ∥ x i − x ⋆ ∥ 2 2 ) = 1 2 t ( ∥ x 0 − x ⋆ ∥ 2 2 − ∥ x k − x ⋆ ∥ 2 2 ) ≤ 1 2 t ∥ x 0 − x ⋆ ∥ 2 2 ⟹ f ( x k ) − f ⋆ ≤ 1 k ∑ i = 1 k ( f ( x i ) − f ⋆ ) ≤ 1 2 k t ∥ x 0 − x ⋆ ∥ 2 2 \begin{aligned} \sum_{i=1}^{k}\left(f\left(x_{i}\right)-f^{\star}\right) & \leq \frac{1}{2 t} \sum_{i=1}^{k}\left(\left\|x_{i-1}-x^{\star}\right\|_{2}^{2}-\left\|x_{i}-x^{\star}\right\|_{2}^{2}\right) \\ &=\frac{1}{2 t}\left(\left\|x_{0}-x^{\star}\right\|_{2}^{2}-\left\|x_{k}-x^{\star}\right\|_{2}^{2}\right) \\ & \leq \frac{1}{2 t}\left\|x_{0}-x^{\star}\right\|_{2}^{2} \end{aligned} \\ \Longrightarrow f(x_k)-f^\star\leq\frac{1}{k}\sum_{i=1}^{k}\left(f\left(x_{i}\right)-f^{\star}\right) \leq \frac{1}{2 kt}\left\|x_{0}-x^{\star}\right\|_{2}^{2} i=1k(f(xi)f)2t1i=1k(xi1x22xix22)=2t1(x0x22xkx22)2t1x0x22f(xk)fk1i=1k(f(xi)f)2kt1x0x22
因此普通的固定步长的梯度下降有以下收敛性质

  1. f ( x k + 1 ) < f ( x k ) f(x_{k+1}) < f(x_k) f(xk+1)<f(xk)
  2. ∥ x k + 1 − x ⋆ ∥ < ∥ x k − x ⋆ ∥ \Vert x_{k+1}-x^\star\Vert < \Vert x_{k}-x^\star\Vert xk+1x<xkx
  3. f ( x k ) − f ⋆ ≤ 1 2 k t ∥ x 0 − x ⋆ ∥ 2 2 f(x_k)-f^\star\leq \frac{1}{2 kt}\left\|x_{0}-x^{\star}\right\|_{2}^{2} f(xk)f2kt1x0x22,要想满足精度 f ( x k ) − f ⋆ ≤ ϵ f(x_k)-f^\star \leq \epsilon f(xk)fϵ 需要的迭代次数为 O ( 1 / ϵ ) O(1/\epsilon) O(1/ϵ)

4.2 线搜索

线搜索就是每步都要计算合适的步长,计算方法为不断地迭代 t k : = β t k , 0 < β < 1 t_k:=\beta t_k,0<\beta<1 tk:=βtk,0<β<1 直到 t k t_k tk 满足下面的条件
f ( x k − t k ∇ f ( x k ) ) < f ( x k ) − α t k ∥ ∇ f ( x k ) ∥ 2 2 f\left(x_{k}-t_{k} \nabla f\left(x_{k}\right)\right)<f\left(x_{k}\right)-\alpha t_{k}\left\|\nabla f\left(x_{k}\right)\right\|_{2}^{2} f(xktkf(xk))<f(xk)αtkf(xk)22
形象理解就是下面这幅图,一开始我们的 t k t_k tk 可能很大,表示梯度下降的步长过大,不能使函数值减小,那我们就减小步长 t k = β t k t_k=\beta t_k tk=βtk,直到进入绿线与蓝线交点左侧这部分,我们就可以保证一定有 f ( x k + 1 ) < f ( x k ) f(x_{k+1})<f(x_k) f(xk+1)<f(xk),这时就是我们要取的 t k t_k tk,这也是线搜索的含义,线搜索实际上就是在搜索合适的步长 t k t_k tk

line search

主要到上面的式子中有一个参数 α \alpha α 会影响我们的搜索结果,比如上图中 α \alpha α 越大,则绿线的斜率越大,那么最终搜索到的 t k t_k tk 应该就越小,表示我们每一步的步长都会更小。实际中往往取 α = 1 / 2 \alpha=1/2 α=1/2,此时理想的搜索结果实际上就是 quadratic upper bound 的最小值点。也就是说我们用二次上界曲线来近似待优化的函数,而二次上界的最小值点对应的步长就是 t = 1 / L t=1/L t=1/L,但由于我们是线搜索,实际得到的 t k t_k tk 一般会比这个值略小一点。

line search

另一方面为了保证线搜索在有限步能够终止,还需要满足 t k ≥ t m i n = min ⁡ { t ^ , β / L } t_k\ge t_{min} =\min\{\hat{t},\beta/L\} tktmin=min{t^,β/L},其中 t ^ \hat{t} t^ 是预先指定的一个参数。

那么线搜索的收敛性怎么样呢?首先根据线搜索的定义一定有
f ( x i + 1 ) ≤ f ( x i ) − t i 2 ∥ ∇ f ( x i ) ∥ 2 2 ≤ f ⋆ + ∇ f ( x i ) T ( x i − x ⋆ ) − t i 2 ∥ ∇ f ( x i ) ∥ 2 2 = f ⋆ + 1 2 t i ( ∥ x i − x ⋆ ∥ 2 2 − ∥ x i + 1 − x ⋆ ∥ 2 2 ) \begin{aligned} f\left(x_{i+1}\right) & \leq f\left(x_{i}\right)-\frac{t_{i}}{2}\left\|\nabla f\left(x_{i}\right)\right\|_{2}^{2} \\ & \leq f^{\star}+\nabla f\left(x_{i}\right)^{T}\left(x_{i}-x^{\star}\right)-\frac{t_{i}}{2}\left\|\nabla f\left(x_{i}\right)\right\|_{2}^{2} \\ &=f^{\star}+\frac{1}{2 t_{i}}\left(\left\|x_{i}-x^{\star}\right\|_{2}^{2}-\left\|x_{i+1}-x^{\star}\right\|_{2}^{2}\right) \end{aligned} f(xi+1)f(xi)2tif(xi)22f+f(xi)T(xix)2tif(xi)22=f+2ti1(xix22xi+1x22)
这表明 f ( x i + 1 ) < f ( x i ) , ∥ x i − x ⋆ ∥ 2 > ∥ x i + 1 − x ⋆ ∥ 2 f(x_{i+1})<f(x_i),\left\|x_{i}-x^{\star}\right\|_{2}>\left\|x_{i+1}-x^{\star}\right\|_{2} f(xi+1)<f(xi),xix2>xi+1x2,类似前面固定步长的分析,可以得到
f ( x k ) − f ⋆ ≤ 1 k ∑ i = 1 k ( f ( x i ) − f ⋆ ) ≤ 1 2 k t m i n ∥ x 0 − x ⋆ ∥ 2 2 f(x_k)-f^\star\leq\frac{1}{k}\sum_{i=1}^{k}\left(f\left(x_{i}\right)-f^{\star}\right) \leq \frac{1}{2 kt_{min}}\left\|x_{0}-x^{\star}\right\|_{2}^{2} f(xk)fk1i=1k(f(xi)f)2ktmin1x0x22
因此对于线搜索的方法,我们可以得到如下的收敛性质

  1. f ( x i + 1 ) < f ( x i ) f(x_{i+1})<f(x_i) f(xi+1)<f(xi)
  2. ∥ x i − x ⋆ ∥ 2 > ∥ x i + 1 − x ⋆ ∥ 2 \left\|x_{i}-x^{\star}\right\|_{2}>\left\|x_{i+1}-x^{\star}\right\|_{2} xix2>xi+1x2
  3. f ( x k ) − f ⋆ ≤ 1 2 k t m i n ∥ x 0 − x ⋆ ∥ 2 2 f(x_k)-f^\star\leq \frac{1}{2 kt_{min}}\left\|x_{0}-x^{\star}\right\|_{2}^{2} f(xk)f2ktmin1x0x22

所以线搜索实际上并不能提高收敛速度的阶,他与固定步长的方法都是 O ( 1 / k ) O(1/k) O(1/k) 的,为 sublinear 收敛

4.3 一阶方法的收敛极限

不管是固定步长还是线搜索,前面的方法都是一阶方法,即
x k + 1 ∈ x 0 + span ⁡ { ∇ f ( x 0 ) , ∇ f ( x 1 ) , … , ∇ f ( x k ) } x_{k+1}\in x_{0}+\operatorname{span}\left\{\nabla f\left(x_{0}\right), \nabla f\left(x_{1}\right), \ldots, \nabla f\left(x_{k}\right)\right\} xk+1x0+span{f(x0),f(x1),,f(xk)}
而理论上也证明一阶方法的收敛速度存在极限。

定理(Nesterov): for every integer k ≤ ( n − 1 ) / 2 k ≤ (n−1)/2 k(n1)/2 and every x 0 x_0 x0, there exist functions in the problem class such that for any first-order method
f ( x k ) − f ⋆ ≥ 3 32 L ∥ x 0 − x ⋆ ∥ 2 2 ( k + 1 ) 2 f\left(x_{k}\right)-f^{\star} \geq \frac{3}{32} \frac{L\left\|x_{0}-x^{\star}\right\|_{2}^{2}}{(k+1)^{2}} f(xk)f323(k+1)2Lx0x22
也就是说收敛速度最多也就是 O ( 1 / k 2 ) O(1/k^2) O(1/k2)

4.4 强凸函数的梯度方法

对于强凸函数,即使采用固定步长的梯度方法,也可以得到线性收敛速度!这就是强凸性带来的好处。

考虑 0 < t < 2 / ( m + L ) 0<t<2/(m+L) 0<t<2/(m+L),我们有
∥ x + − x ⋆ ∥ 2 2 = ∥ x − t ∇ f ( x ) − x ⋆ ∥ 2 2 = ∥ x − x ⋆ ∥ 2 2 − 2 t ∇ f ( x ) T ( x − x ⋆ ) + t 2 ∥ ∇ f ( x ) ∥ 2 2 ≤ ( 1 − t 2 m L m + L ) ∥ x − x ⋆ ∥ 2 2 + t ( t − 2 m + L ) ∥ ∇ f ( x ) ∥ 2 2 ≤ ( 1 − t 2 m L m + L ) ∥ x − x ⋆ ∥ 2 2 \begin{aligned} \left\|x^{+}-x^{\star}\right\|_{2}^{2} &=\left\|x-t \nabla f(x)-x^{\star}\right\|_{2}^{2} \\ &=\left\|x-x^{\star}\right\|_{2}^{2}-2 t \nabla f(x)^{T}\left(x-x^{\star}\right)+t^{2}\|\nabla f(x)\|_{2}^{2} \\ & \leq\left(1-t \frac{2 m L}{m+L}\right)\left\|x-x^{\star}\right\|_{2}^{2}+t\left(t-\frac{2}{m+L}\right)\|\nabla f(x)\|_{2}^{2} \\ & \leq\left(1-t \frac{2 m L}{m+L}\right)\left\|x-x^{\star}\right\|_{2}^{2} \end{aligned} x+x22=xtf(x)x22=xx222tf(x)T(xx)+t2f(x)22(1tm+L2mL)xx22+t(tm+L2)f(x)22(1tm+L2mL)xx22
也就是说可以得到
∥ x k − x ⋆ ∥ 2 2 ≤ c k ∥ x 0 − x ⋆ ∥ 2 2 , c = 1 − t 2 m L m + L f ( x k ) − f ⋆ ≤ L 2 ∥ x k − x ⋆ ∥ 2 2 ≤ c k L 2 ∥ x 0 − x ⋆ ∥ 2 2 \left\|x_{k}-x^{\star}\right\|_{2}^{2} \leq c^{k}\left\|x_{0}-x^{\star}\right\|_{2}^{2}, \quad c=1-t \frac{2 m L}{m+L} \\ f\left(x_{k}\right)-f^{\star} \leq \frac{L}{2}\left\|x_{k}-x^{\star}\right\|_{2}^{2} \leq \frac{c^{k} L}{2}\left\|x_{0}-x^{\star}\right\|_{2}^{2} xkx22ckx0x22,c=1tm+L2mLf(xk)f2Lxkx222ckLx0x22
注意到前面是反比例下降,这里变成了指数下降。如果要打到精度 f ( x k ) − f ⋆ ≤ ϵ f(x_k)-f^\star \leq \epsilon f(xk)fϵ 需要的迭代次数为 O ( log ⁡ ( 1 / ϵ ) ) O(\log(1/\epsilon)) O(log(1/ϵ))

5. BB 方法

Barzilai-Borwein (BB) method 也是梯度下降方法的一种,他主要是通过近似牛顿方法来实现更快的收敛速度,同时避免计算二阶导数带来的计算复杂度。

如果我们记 g ( k ) = ∇ f ( x ( k ) )  and  F ( k ) = ∇ 2 f ( x ( k ) ) \boldsymbol{g}^{(k)}=\nabla f\left(\boldsymbol{x}^{(k)}\right) \text { and } \boldsymbol{F}^{(k)}=\nabla^{2} f\left(\boldsymbol{x}^{(k)}\right) g(k)=f(x(k)) and F(k)=2f(x(k)),那么一阶方法就是 x ( k + 1 ) = x ( k ) − α k g ( k ) \boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}-\alpha_{k} \boldsymbol{g}^{(k)} x(k+1)=x(k)αkg(k),其中步长 α k \alpha_k αk 可以是固定的,也可以是线搜索获得的,一阶方法简单但是收敛速度慢。牛顿方法就是 x ( k + 1 ) = x ( k ) − ( F ( k ) ) − 1 g ( k ) \boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}-\left(\boldsymbol{F}^{(k)}\right)^{-1} \boldsymbol{g}^{(k)} x(k+1)=x(k)(F(k))1g(k),其收敛速度更快,但是海森矩阵计算代价较大。而 BB方法就是用 α k g ( k ) \alpha_{k} \boldsymbol{g}^{(k)} αkg(k) 来近似 ( F ( k ) ) − 1 g ( k ) \left(\boldsymbol{F}^{(k)}\right)^{-1} \boldsymbol{g}^{(k)} (F(k))1g(k)

怎么近似呢?假如定义 s ( k − 1 ) : = x ( k ) − x ( k − 1 )  and  y ( k − 1 ) : = g ( k ) − g ( k − 1 ) s^{(k-1)}:=x^{(k)}-x^{(k-1)} \text { and } y^{(k-1)}:=g^{(k)}-g^{(k-1)} s(k1):=x(k)x(k1) and y(k1):=g(k)g(k1),那么海森矩阵实际上就是
F ( k ) s ( k − 1 ) = y ( k − 1 ) \boldsymbol{F}^{(k)}s^{(k-1)}=y^{(k-1)} F(k)s(k1)=y(k1)
现在的想法就是用 ( α k I ) − 1 (\alpha_k I)^{-1} (αkI)1 来近似 F ( k ) \boldsymbol{F}^{(k)} F(k),那么应该有
( α k I ) − 1 s ( k − 1 ) = y ( k − 1 ) (\alpha_k I)^{-1}s^{(k-1)}=y^{(k-1)} (αkI)1s(k1)=y(k1)
这个问题用最小二乘就可以解决了,下面两种选择都可以
α k − 1 = arg ⁡ min ⁡ β 1 2 ∥ s ( k − 1 ) β − y ( k − 1 ) ∥ 2 ⟹ α k 1 = ( s ( k − 1 ) ) T s ( k − 1 ) ( s ( k − 1 ) ) T y ( k − 1 ) α k = arg ⁡ min ⁡ α 1 2 ∥ s ( k − 1 ) − y ( k − 1 ) α ∥ 2 ⟹ α k 2 = ( s ( k − 1 ) ) T y ( k − 1 ) ( y ( k − 1 ) ) T y ( k − 1 ) \alpha_{k}^{-1}=\underset{\beta}{\arg \min } \frac{1}{2}\left\|s^{(k-1)} \beta-\boldsymbol{y}^{(k-1)}\right\|^{2} \Longrightarrow \alpha_{k}^{1}=\frac{\left(s^{(k-1)}\right)^{T} s^{(k-1)}}{\left(s^{(k-1)}\right)^{T} \boldsymbol{y}^{(k-1)}} \\\alpha_{k}=\underset{\alpha}{\arg \min } \frac{1}{2}\left\|s^{(k-1)}-\boldsymbol{y}^{(k-1)} \alpha\right\|^{2} \Longrightarrow \alpha_{k}^{2}=\frac{\left(\boldsymbol{s}^{(k-1)}\right)^{T} \boldsymbol{y}^{(k-1)}}{\left(\boldsymbol{y}^{(k-1)}\right)^{T} \boldsymbol{y}^{(k-1)}} αk1=βargmin21s(k1)βy(k1)2αk1=(s(k1))Ty(k1)(s(k1))Ts(k1)αk=αargmin21s(k1)y(k1)α2αk2=(y(k1))Ty(k1)(s(k1))Ty(k1)
这两个解有一个微妙的不同点在于 α k 1 \alpha_k^1 αk1 的分母 ( s ( k − 1 ) ) T y ( k − 1 ) \left(s^{(k-1)}\right)^{T} \boldsymbol{y}^{(k-1)} (s(k1))Ty(k1) 有可能等于 0,这会给计算带来麻烦,而 α k 2 \alpha_k^2 αk2 则不会。

BB方法主要有以下几个特点:

  1. 几乎不需要额外的计算量,但是往往会带来极大的性能增益;
  2. 实际应用中这两个表达式用哪个都可以,甚至还可以交换使用,用哪个更好一般与具体的问题有关;
  3. 收敛性很难证明,没有收敛性的保证。比如下面的例子,他甚至不是单调下降的。

BB method> 最后给我的博客打个广告,欢迎光临

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:梯度方法

  • 15
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值