在这里插入图片描述
原文:Random Gradient-Free Minimization of Convex Functions. Found Comput Math 17, 527–566 (2017). https://doi.org/10.1007/s10208-015-9296-2

原文作者:Yurii Nesterov, Vladimir Spokoiny
论文解读者:陈宇文

本次知识分享活动挑选Yurii Nesterov与Vladimir Spokoiny发表的Random Gradient-Free Minimization of Convex Functions论文,带领大家梳理论文中的无梯度优化算法的核心思想以及与传统方法之间的联系。

编者按:

最近几年,零阶算法因为其需要的获取信息条件的宽松而受到关注。相比于一阶或者更高阶的算法,零阶算法只需要获取函数值本身,因此很适用于黑盒优化的问题。本文中,我们将梳理Nesterov的论文中提到的一种零阶算法,总结这一类零阶算法有用的性质和结论。

优化算法中我们会根据可以能够获取的信息定义算法的阶数,常见的有一阶算法(梯度下降)和二阶算法(内点法,半光滑牛顿法),甚至更高阶算法(cubic regularization)。那如果我们连最常见的一阶梯度信息都缺失呢?我们还可以利用函数值进行优化,例如许多智能算法和有限差分的方法。相较于前者,后者往往能得到较好的理论结果。但是简单的有限差分需要对变量每一个维度进行扰动,计算一次近似梯度需要O(n)O(n)O(n)个不同的函数值。在文[1]中,Nesterov分析了一种特殊的零阶算法,每一次梯度近似只需要O(1)O(1)O(1)个不同的函数值:
xk+1=xk−hk⋅f(xk+μku)−f(xk)μk⋅u.(1)x_{k+1} = x_k − h_k \cdot \frac{f(x_k + \mu_k u)− f (x_k)}{\mu_k} \cdot u. \qquad \qquad (1)xk+1=xkhkμkf(xk+μku)f(xk)u.(1)
同时文[1]中总结了许多有趣的理论,我们将对它们一一展开。

1 算法理解

1.1 方向梯度

对于算法(1),如果我们选取μk→0\mu_k \to 0μk0,那么取极限下的算法可以理解为xkx_kxk沿着方向梯度uuu的方向下降,如下所示:
xk+1=xk−hkf′(xk,u)u.x_{k+1} = x_k − h_k f'(x_k , u)u.xk+1=xkhkf(xk,u)u.
如果我们定义g0(x,u):=f′(x,u)ug_0(x,u) := f'(x, u)ug0(x,u):=f(x,u)u,那么算法则可写成
xk+1=xk−hkg0(x,u)(2)x_{k+1} = x_k − h_k g_0(x,u) \qquad \qquad (2)xk+1=xkhkg0(x,u)(2)
此时我们对方向uuu没有任何假设,它可以是任何方向。那我们应该如何选取这个方向向量uuu呢?

1.2 随机梯度下降

如果采用random search方法的思想[2]:假设方向uuu的采样满足多维高斯分布(协方差矩阵取单位矩阵),那么当我们对uuu求取函数f(x+μu)f (x + \mu u)f(x+μu)期望可以得到
fμ(x):=Eu(f(x+μu)).f_{\mu}(x) := \mathbb{E}_u( f (x + \mu u)).fμ(x):=Eu(f(x+μu)).
fμ(x)f_{\mu}(x)fμ(x)的梯度可以写成
∇fμ(x)=1μEu(f(x+μu)u)=1μEu([f(x+μu)−f(x)]u),\nabla f_{\mu}(x) = \frac{1}{\mu} \mathbb{E}_u( f (x + \mu u)u) = \frac{1}{\mu} \mathbb{E}_u( [f (x + \mu u) - f(x)]u),fμ(x)=μ1Eu(f(x+μu)u)=μ1Eu([f(x+μu)f(x)]u),
其中最后一个等式中加入f(x)f(x)f(x)项可以根据高斯分布的对称性得到。如果我们对∇fμ(x)\nabla f_{\mu}(x)fμ(x)进行采样,那么我们得到采样后的梯度gμ(x)g_{\mu}(x)gμ(x)
gμ(x,u):=f(x+μu)−f(x)μ⋅u.g_{\mu}(x,u) := \frac{f(x+\mu u)− f (x) }{\mu} \cdot u.gμ(x,u):=μf(x+μu)f(x)u.
这时,我们可以发现算法(1)可以重新写成
xk+1=xk−hk⋅gμ(xk,u).x_{k+1} = x_k − h_k \cdot \textcolor{red}{g_{\mu}(x_k,u)}. \qquad \qquad xk+1=xkhkgμ(xk,u).
所以**算法(1)可以看成对fff的近似函数fμf_{\mu}fμ的随机梯度下降。**也是从随机算法的角度出发,文[1]分析了许多fμ(x)f_{\mu}(x)fμ(x)f(x)f(x)f(x)在不同阶数泰勒展开下的误差,同时通过fμf_\mufμ这个中介进一步分析算法(1)的收敛性。

2 fμ(x)f_μ(x)fμ(x)f(x)f(x)f(x)的误差分析

我们回顾fμ(x)f_{\mu}(x)fμ(x)的定义:
fμ(x):=Eu(f(x+μu))=1κ∫Ef(x+μu)e−12∥u∥2du.f_{\mu}(x) := \mathbb{E}_u( f (x + \mu u)) = \frac{1}{\kappa} \int_{E} f(x + \mu u) e^{-\frac{1}{2}\|u\|^2} du.fμ(x):=Eu(f(x+μu))=κ1Ef(x+μu)e21u2du.
我们称函数fμ(x)f_{\mu}(x)fμ(x)f(x)f(x)f(x)高斯光滑近似。同时,它还具有如下一些特性:

2.1 零阶估计

那么函数fμ(x)f_{\mu}(x)fμ(x)f(x)f(x)f(x)存在哪些关系呢?文[1]中提到,如果fff是凸函数且g∈∂f(x)g \in \partial f(x)gf(x),会有

同时**fμ(x)f_{\mu}(x)fμ(x)f(x)f(x)f(x)之间的误差和函数f(x)f(x)f(x)不同阶数的光滑性有关**,如下定理所示:

2.2 一阶估计

有趣的是,fμ(x)f_{\mu}(x)fμ(x)f(x)f(x)f(x)具有更好的光滑性:

Lemma 2说明只要f(x)f(x)f(x)连续,fμ(x)f_{\mu}(x)fμ(x)永远都是可导函数。
(补充: 函数的可导性可以改善一阶算法收敛的算法复杂度,对非光滑函数进行光滑函数近似还有其他的方法,感兴趣的同学可以参看Nesterov的另外一篇文章[2]。)

其中,∂ϵf(x)\partial_{\epsilon} f(x)ϵf(x)被定义为

同样的,对于fμ(x)f_{\mu}(x)fμ(x)f(x)f(x)f(x)的梯度信息误差,也同样与函数的光滑性有关。如果fff有更高阶的光滑性,那么我们可以进一步得到有关高阶Lipschitz系数的误差分析:

通过高斯近似函数fμf_{\mu}fμ作为媒介,我们可以进一步分析随机梯度gμ(x,u)g_{\mu}(x,u)gμ(x,u)与原函数f(x)f(x)f(x)梯度的关系。

3 随机梯度gμg_μgμ的分析

在实际情况中,∇fμ(x)\nabla f_{\mu}(x)fμ(x)本身是很难求得的,所以实际算法中(如算法(1))我们会使用∇fμ(x)\nabla f_{\mu}(x)fμ(x)的采样gμ(x,u)g_\mu(x,u)gμ(x,u)来进行计算。假设随机方向uuu满足协方差矩阵为B−1B^{-1}B1的多维高斯分布,那我们有g0(x,u),gμ(x,u)g_0(x,u), g_{\mu}(x,u)g0(x,u),gμ(x,u)定义为
g0(x,u):=f′(x,u)⋅Bu,g_0(x,u) := f'(x, u) \cdot Bu,g0(x,u):=f(x,u)Bu,
gμ(x,u):=f(x+μu)−f(x)μ⋅Bu.g_{\mu}(x,u) := \frac{f(x+\mu u)− f (x) }{\mu} \cdot Bu.gμ(x,u):=μf(x+μu)f(x)Bu.
文[1]还定义了g^μ(x,u)\hat{g}_{\mu}(x,u)g^μ(x,u)
g^μ(x,u):=f(x+μu)−f(x−μu)2μ⋅Bu.\hat{g}_{\mu}(x,u) := \frac{f(x+\mu u)− f (x- \mu u) }{2\mu} \cdot Bu.g^μ(x,u):=2μf(x+μu)f(xμu)Bu.
对于上述三种梯度估计,文[1]提供了对应的上界估计:

从定理3和定理4可以看出,g0(x,u),gμ(x,u),g^μ(x,u)g_0(x,u), g_{\mu}(x,u), \hat{g}_{\mu}(x,u)g0(x,u),gμ(x,u),g^μ(x,u)二阶矩和原函数fff的梯度∇f(x)\nabla f(x)f(x)有关,还和函数的光滑性有关(C0,0,C1,1,C2,2C^{0,0}, C^{1,1}, C^{2,2}C0,0,C1,1,C2,2得到不同的不等式)。同样的,gμ(x,u)g_{\mu}(x,u)gμ(x,u)的二阶矩与fμ(x)f_{\mu}(x)fμ(x)存在类似的关系

4 应用场景

4.1 非光滑函数

对于
f∗:=min⁡x∈Qf(x),f^* := \min_{x \in Q}f(x),f:=xQminf(x),
如果函数fff本身是非光滑的,那么我们可以将gμ(x,u)g_{\mu}(x,u)gμ(x,u)当成随机梯度,那么算法(1)变为投影随机梯度法
xk+1=ΠQ(xk−hkB−1gμ(x,u)).x_{k+1} = \Pi_{Q}(x_k − h_k B^{-1} g_{\mu}(x,u)). \qquad \qquadxk+1=ΠQ(xkhkB1gμ(x,u)).
对于序列{xk}\{x_{k}\}{xk},文[1]中给出了如下不等式:

其中SN=∑k=0NhkS_N =\sum_{k=0}^{N}h_kSN=k=0Nhkϕk:=Euk−1,...,u0(f(xk))\phi_k := \mathbf{E}_{u_{k-1}, ..., u_0}(f(x_k))ϕk:=Euk1,...,u0(f(xk))。如果熟悉一阶算法收敛性分析,可以发现,不等式右边多出了μL0n1/2\mu L_0 n^{1/2}μL0n1/2∑k=0Nhk2\sum_{k=0}^{N}h_k^2k=0Nhk2两项。如果我们希望f(xk)f(x_k)f(xk)ϵ\epsilonϵ最优,那么我们需要选取合适的步长hkh_khk以及合适的高斯近似参数μ\muμ

4.2 随机优化

当我们进一步放松条件,假设我们的问题变成一个随机优化问题,
f∗:=min⁡x∈Qf(x)=min⁡x∈QEζ[F(x,ζ)].f^* := \min_{x \in Q}f(x) = \min_{x \in Q} \mathbb{E}_{\zeta}[F(x,\zeta)].f:=xQminf(x)=xQminEζ[F(x,ζ)].
那么我们每次采样的函数值也带有随机误差,即F(x,ζ)F(x,\zeta)F(x,ζ)。同理,对应的随机梯度可以定义成
s0(x,ζ,u):=DxF(x,ζ,u)[u]⋅Bu,s_0(x,\zeta,u) := D_x F(x, \zeta,u)[u] \cdot Bu,s0(x,ζ,u):=DxF(x,ζ,u)[u]Bu,
sμ(x,ζ,u):=F(x+μu,ζ)−F(x,ζ)μ⋅Bu.s_{\mu}(x,\zeta,u) := \frac{F(x+\mu u,\zeta)− F(x,\zeta) }{\mu} \cdot Bu.sμ(x,ζ,u):=μF(x+μu,ζ)F(x,ζ)Bu.
s^μ(x,ζ,u):=F(x+μu,ζ)−F(x−μu,ζ)2μ⋅Bu.\hat{s}_{\mu}(x,\zeta,u) := \frac{F(x+\mu u, \zeta)− F(x- \mu u, \zeta) }{2\mu} \cdot Bu.s^μ(x,ζ,u):=2μF(x+μu,ζ)F(xμu,ζ)Bu.
对应的,算法(1)的变形为
xk+1=ΠQ(xk−hkB−1sμ(x,ζ,u)).x_{k+1} = \Pi_{Q}(x_k − h_k B^{-1} s_{\mu}(x,\zeta,u)). \qquad \qquadxk+1=ΠQ(xkhkB1sμ(x,ζ,u)).
可以看到,在这个随机优化算法中,有双层的随机影响,一层来源于问题本身的扰动,ζ\zetaζ,另一部分来源于我们采用的算法uuu。同样的,通过合适选取步长hkh_khk和高斯近似参数μ\muμ,我们可以得到O(n2/ϵ2)O(n^2/\epsilon^{2})O(n2/ϵ2)的收敛速率。

4.3 其他问题类型

除了上述两种问题类型,文[1]中还介绍了其他三类问题:

  • fff为一阶光滑函数
  • 设计关于fff的加速算法
  • fff为非凸优化问题

上述三种情况下的算法复杂度分析同样依赖于选取合适的步长hkh_khk和高斯近似参数μ\muμ,最后的结果也与我们在一阶算法中的复杂度差不多。可能这个复杂度结果挺让人意外的,为什么零阶算法的复杂度会和一阶算法差不多?如果深入了解后可以发现,为了得到的相同的复杂度分析,我们需要将高斯近似参数μ\muμ取得足够小才行,需要达到O(ϵ)O(\epsilon)O(ϵ)的数量级。此外,步长hkh_khk和高斯近似参数μ\muμ的选取随着问题维度nnn的增加要进一步变小。这就导致零阶算法的步长选取往往比一阶算法还需要小很多。因此最近几年有许多研究工作也是围绕着如何减小步长hkh_khk和高斯近似参数μ\muμ对于维度nnn的依赖展开的。

5 与有限差分的区别

最后,想大致谈谈文[1]的零阶算法和传统的有限差分的区别。两者都是可以用来对原有问题梯度∇f(x)\nabla f(x)f(x)进行估计。有限差分的梯度估计公式为
gν(x)=∑j=1nf(x+νej)−f(x−νej)2νej.g_{\nu}(x) = \sum^{n}_{j=1} \frac{f(x + \nu e_j ) − f(x − \nu e_j )}{2\nu} e_j.gν(x)=j=1n2νf(x+νej)f(xνej)ej.
差分量ν\nuν的作用与高斯近似参数μ\muμ是一样的。但是,梯度估计误差∥gν(x)−∇f(x)∥\|g_{\nu}(x) - \nabla f(x)\|gν(x)f(x)只会和ν\nuν和梯度的L-光滑性相关,
∥gν(x)−∇f(x)∥≤Lnν\|g_{\nu}(x) - \nabla f(x)\| \le L\sqrt{n}\nugν(x)f(x)Ln ν
而文[1]中梯度估计误差∥gμ(x,u)−∇f(x)∥\|g_{\mu}(x,u) - \nabla f(x)\|gμ(x,u)f(x)除了与μ\muμ有关,还会与当前点的梯度值∇f(x)\nabla f(x)f(x)有关,并且与问题维度nnn也相关(感兴趣的同学可以研究文中定理4的推理)。

参考文献

[1] Nesterov, Y., Spokoiny, V. Random Gradient-Free Minimization of Convex Functions. Found Comput Math 17, 527–566 (2017). https://doi.org/10.1007/s10208-015-9296-2

[2] Nesterov, Y. Smooth minimization of non-smooth functions. Math. Program. 103, 127–152 (2005). https://doi.org/10.1007/s10107-004-0552-5

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐