优化|如何减小噪声和误差对梯度下降法的影响

优化|如何减小噪声和误差对梯度下降法的影响_第1张图片

编者按:


许多精确算法在理论上能保证我们的目标函数值一直下降。在随机梯度下降以及无导数优化等情况下,目标移动方向受到噪声干扰,与实际下降方向往往会存在偏差。本文将分析噪声和下降偏差对于梯度下降法等算法的影响,并且介绍常用的改进方法。

应用背景

通常意义下,我们考虑的优化问题可写成
min ⁡ ϕ ( x ) , s.t. c i ( x ) ≥ 0 , i ∈ I . \begin{equation}\nonumber \min \phi(x), \quad \text{s.t.} c_i(x)\geq0, i\in I. \end{equation} minϕ(x),s.t.ci(x)0,iI.

我们会对 ϕ \phi ϕ c i ( i ∈ I ) c_i (i\in I) ci(iI)的性质做出一些假设 (例如函数是凸的、Lipschitz连续的), 然后在这些假设的基础上,构造具有一定收敛性的优化算法。这些收敛性结果需要一个共同的前提:对于任意的 x ∈ R n x\in\mathbb{R}^n xRn, 我们都能获得 ϕ ( x ) \phi(x) ϕ(x) c i ( x ) c_i(x) ci(x)的精确值。如果算法中涉及 (高阶) 导数的计算,那我们也假设这些导数都能够被精确算出。

然而在实际问题中,这个前提未必成立。其中一个原因在于有些优化问题涉及大量的样本,而所求的函数值被表示为不同样本对应值的平均。对于这类问题,许多随机算法应运而生,目前已有较为成熟的理论和系统的应用。这里不再赘述。在本文中,我们主要考虑另一类问题——自变量的规模不一定很大,但问题不满足上述精确性假设。

其中一个例子是阻尼器的分配 [ 1 ] ^{[1]} [1]。为了减小地震带来的经济损失,我们会在两栋相邻的建筑物之间安置阻尼器,使得建筑物具有更稳定的结构。然而阻尼器的成本较高,因此我们需要建立相应的优化问题,在尽可能少的阻尼器之下获得尽可能大的减震效果。这类优化问题的目标函数是通过地震模拟器产生的一个数值积分。由于它具有积分的形式,我们有理由认为它是可微的;但又由于它是一个黑箱函数,我们无法直接得到梯度的精确值。

类似的实际问题还有很多 [ 2 ] − [ 4 ] ^{[2]-[4]} [2][4],而这些问题大致可以分为两类。第一类可分为两种情况:(1) 函数本身不可微;(2) 由于问题的实际背景,我们无法得到可靠的近似梯度 (当然,我们可以通过差分等方式得到梯度的近似值;但如果我们在数值算法中使用这些近似值,无法得到理想的实验结果)。这类问题的求解往往需要无导数算法。在另一类问题中,函数值和导数值都可能具有一定的计算误差,但误差的大小是我们可以估计甚至控制的。对于这类问题,我们可以通过改进原有的优化算法,在新的情境下建立收敛结果。我们接下来介绍几个相应的例子。若不加说明,我们默认下文中出现的 ∥ ⋅ ∥ \|\cdot\| 表示2-范数。

在噪声下的BFGS算法 [ 5 ] ^{[5]} [5]

考虑无约束的优化问题 min ⁡ x ∈ R n ϕ ( x ) , \min_{x\in\mathbb{R}^{n}} \phi(x), xRnminϕ(x),

其中 ϕ ∈ C 1 ( R n ) \phi {\in} C^{1}(\mathbb{R}^n) ϕC1(Rn), 但函数与梯度值无法直接计算。对应地,我们可以获得它们的近似值 f f f g g g:
f ( x ) = ϕ ( x ) + ε ( x ) , g ( x ) = ∇ ϕ ( x ) + e ( x ) , \begin{equation}\nonumber f(x)=\phi(x)+\varepsilon(x), \quad g(x)=\nabla \phi(x)+e(x), \end{equation} f(x)=ϕ(x)+ε(x),g(x)=ϕ(x)+e(x),

其中误差有界,可写作 ∣ ε ( x ) ∣ ≤ ϵ f |\varepsilon(x)|\leq\epsilon_f ε(x)ϵf ∥ g ( x ) ∥ ≤ ϵ g \|g(x)\|\leq\epsilon_g g(x)ϵg。由于误差的大小只能估计,不能进一步控制 (例如让 ∣ ε ( x k ) ∣ |\varepsilon (x_k)| ε(xk)趋于 0 0 0),我们可将它看作是噪声。

对于上述问题,我们可以改进BFGS算法,它对于L-smooth的强凸函数具有全局收敛的结论。证明中的一个重要部分是对于线搜索的分析。对于噪声下的更新方向 p k = − H k g ( x k ) p_k =−H_kg(x_k) pk=Hkg(xk), 我们寻找步长 α \alpha α满足
f ( x k + α p k ) ≤ f ( x k ) + c 1 α p k T g ( x k ) , p k T g ( x k + α p k ) ≥ c 2 p k T g ( x k ) . \begin{equation}\nonumber f(x_k + αp_k) ≤ f(x_k) + c_1α p^T_k g(x_k), \quad p^T_k g(x_k + α p_k) ≥ c_2p ^T_k g(x_k).\quad \quad \quad \end{equation} f(xk+αpk)f(xk)+c1αpkTg(xk),pkTg(xk+αpk)c2pkTg(xk).

其中 c 1 , c 2 c_1,c_2 c1,c2是给定参数。如果没有噪声,这样的 α \alpha α是一定存在的。我们在用 f f f g g g替换 ϕ \phi ϕ ∇ ϕ \nabla\phi ϕ之后,需要重新分析步长 α \alpha α是否存在 (在必要的时候,可以调整线搜索准则)。可以证明, ∥ ∇ ϕ ( x k ) ∥ \|\nabla\phi(x_k)\| ∥∇ϕ(xk)足够大时,我们可以找到满足上述条件的步长 α \alpha α, 而且它在特定的线搜索参数 c 1 ′ , c 2 ′ c_1', c_2' c1,c2之下满足精确值对应的线搜索准则,即
ϕ ( x k + α p k ) ≤ ϕ ( x k ) + c 1 ′ α p k T ∇ ϕ ( x k ) , p k T ∇ ϕ ( x k + α p k ) ≥ c 2 ′ p k T ∇ ϕ ( x k ) . \begin{equation} \nonumber \phi(x_k + αp_k) ≤ \phi(x_k) + c_1'α p^T_k \nabla\phi(x_k), \quad p^T_k \nabla\phi(x_k + α p_k) ≥ c_2'p ^T_k \nabla\phi(x_k). \end{equation} ϕ(xk+αpk)ϕ(xk)+c1αpkTϕ(xk),pkTϕ(xk+αpk)c2pkTϕ(xk).
总之,这样的线搜索是良定义的,且步长满足原先(无噪声)步长的一些特性。结合改进算法的性质和误差的特点,我们最终可以得到以下收敛性结论:

**定理1:**假设 ϕ \phi ϕ是有下界且二次连续可微的强凸函数,其梯度满足lipschitz条件 ∥ ∇ ϕ ( x ) − ∇ ϕ ( y ) ∥ ≤ M ∥ x − y ∥ , ∀ x , y ∈ R n \|\nabla\phi(x)-\nabla\phi(y)\|\leq{M}\|x-y\|, \forall x,y\in\mathbb{R}^n ∥∇ϕ(x)ϕ(y)Mxy,x,yRn

计算误差始终满足 ∣ ε ( x ) ∣ ≤ ϵ f |\varepsilon(x)|\leq\epsilon_f ε(x)ϵf ∥ g ( x ) ∥ ≤ ϵ g \|g(x)\|\leq\epsilon_g g(x)ϵg c 1 , c 2 c_1,c_2 c1,c2是线搜索中用到的参数; β 1 ∈ ( 0 , 1 ) \beta_1\in(0,1) β1(0,1)是事先取定的参数。根据 [5] 中的改进算法,我们可以证明 { x k } \{x_k\} {xk}线性收敛的速度趋向于最优解邻域

N 1 = { x ∣ ∥ ∇ φ ( x ) ∥ ≤ max ⁡ { A M ϵ f β 1 , B ϵ g β 1 } } , \begin{equation}\nonumber \mathcal{N}_1 = \left\{x\mid \|∇φ(x)\| ≤ \max \left\{A\sqrt{\frac{M\epsilon_f}{β_1}} , \frac{B\epsilon_g}{β_1} \right\}\right\}, \end{equation} N1={x∥∇φ(x)max{Aβ1Mϵf ,β1Bϵg}},

其中 A = max ⁡ { 16 2 ( c 2 − c 1 ) ( 4 − c 1 − 3 c 2 ) , 8 c 1 ( 1 − c 2 ) } A = \max \left\{ \frac{16\sqrt{2}}{ \sqrt{(c_2 − c_1)(4 − c_1 − 3c_2)}} , \frac{8}{\sqrt{c_1(1 − c_2)}} \right\} A=max{(c2c1)(4c13c2) 162 ,c1(1c2) 8}, B = max ⁡ { 8 1 − c 2 , 8 ( 1 + c 1 ) c 2 − c 1 + 6 } B = \max \left\{\frac{8}{1 − c_2}, \frac{8(1 + c_1)}{c_2 − c_1} + 6 \right\} B=max{1c28,c2c18(1+c1)+6}.

可以看出,当误差 ϵ f = ϵ g = 0 \epsilon_f = \epsilon_g=0 ϵf=ϵg=0时,对应有 N 1 = { x ∗ } \mathcal{N}_1 = \{x^{*}\} N1={x}。此时定理1与BFGS算法目前在精确性假设下的最好收敛性结论对应。更进一步,我们还可以证明:

定理2:沿用定理1中的条件和算法设置。设
ϕ ^ = max ⁡ x ∈ N 1 ϕ ( x ) , N 2 = { x ∣ ϕ ( x ) ≤ ϕ ^ + 2 ϵ f } . \begin{equation}\nonumber \hat{\phi}=\max_{x\in\mathcal{N}_1}\phi(x),\quad \mathcal{N}_2 = \{x|\phi(x)\leq\hat{\phi}+2\epsilon_f\}. \end{equation} ϕ^=xN1maxϕ(x),N2={xϕ(x)ϕ^+2ϵf}.

可证明,对任意的 k > K = min ⁡ { k ∈ N ∣ x k ∈ N 1 } k>K=\min\{k\in\mathbb{N}|x_k\in\mathcal{N}_1\} k>K=min{kNxkN1} x k x_k xk都在最优解邻域 N 2 \mathcal{N}_2 N2中。

可控制误差下的改进算法

与噪声不同,我们考虑另一类问题,其中函数值与梯度值的误差可以被控制。例如问题 min ⁡ x ∈ R n ϕ ( x ) = ∫ t ∈ Ω h ( x , t ) d t , \min_{x\in\mathbb{R}^{n}} \phi(x)=\int_{t\in\Omega}h(x,t)dt, xRnminϕ(x)=tΩh(x,t)dt,

其中 h h h连续可微, Ω = [ a , b ] n \Omega=[a,b]^{n} Ω=[a,b]n , a ϕ \phi ϕ ∇ ϕ \nabla \phi ϕ的计算涉及数值积分 (且积分无显示表达式),我们只能获得它们的近似值,但计算的误差是可以控制的。此时我们希望改进原有的算法,且尽可能保留原先的收敛性结论

一个简单的例子是对梯度法的改进。原先的线搜索准则可写为
ϕ ( x k − α ∇ ϕ k ) ≤ ϕ k − σ α ∥ ∇ ϕ k ∥ 2 , \begin{equation}\nonumber \phi(x_k-\alpha\nabla\phi_k)\leq\phi_k-\sigma\alpha{\|\nabla\phi_k\|}^2, \end{equation} ϕ(xkαϕk)ϕkσα∥∇ϕk2,

其中 σ ∈ ( 0 , 1 ) \sigma\in(0,1) σ(0,1)是给定的参数。根据Taylor一阶展开,我们知道这样的步长存在。然而对于 f k = ϕ k + ε ( x k ) f_k=\phi_k+\varepsilon(x_k) fk=ϕk+ε(xk)和$ g_k=\nabla\phi_k+e(x_k) , 我们无法得到 , 我们无法得到 ,我们无法得到f(x_k-h{g}_k)\leq{f}_k-h|g_k|2+O(h2) ) 的性质。因此,我们考虑一个新的线搜索准则: ) 的性质。因此,我们考虑一个新的线搜索准则: )的性质。因此,我们考虑一个新的线搜索准则: f ( x k − α g k ) ≤ f k − σ α ∥ g k ∥ 2 + ξ k , f(x_k-\alpha{g}_k)\leq {f}_k-\sigma\alpha{\|g_k\|}^2+\xi_k, f(xkαgk)fkσαgk2+ξk,$

其中 ξ k ≥ ∣ ϵ ( x k − α g k ) ∣ + ∣ ϵ ( x k ) ∣ \xi_k\geq|\epsilon(x_k-\alpha{g}_k)|+|\epsilon(x_k)| ξkϵ(xkαgk)+ϵ(xk)。如果不等式取">",显然线搜索是良定义的;如果我们在计算时保证 ∥ e ( x k ) ∥ < ω ∥ g k ∥ \|e(x_k)\|<\omega\|g_k\| e(xk)<ωgk,其中 ω < 1 \omega<1 ω<1, 则可知 ϕ ( x k − h g k ) ≤ ϕ k − h g k T ∇ ϕ k + O ( h 2 ) ≤ ϕ k − h ( 1 − ω ) ∥ g k ∥ 2 + O ( h 2 ) . \begin{equation}\nonumber \phi(x_k-h{g}_k)\leq{\phi}_k-hg_k^T\nabla\phi_k+O(h^2)\leq{\phi}_k-h(1-\omega)\|g_k\|^2+O(h^2). \end{equation} ϕ(xkhgk)ϕkhgkTϕk+O(h2)ϕkh(1ω)gk2+O(h2).

此时 g k g_k gk是一个下降方向,因此我们可以选择 σ < 1 − ω \sigma<1-\omega σ<1ω, 并取 ξ k = ∣ ϵ ( x k − α g k ) ∣ + ∣ ϵ ( x k ) ∣ \xi_k =|\epsilon(x_k-\alpha{g}_k)|+|\epsilon(x_k)| ξk=ϵ(xkαgk)+ϵ(xk)。为了进一步建立收敛性结论,**我们通常需要控制计算中的误差,来保证 ∑ ξ k < ∞ \sum\xi_k<\infty ξk<。**实际上对于满足精确性假设的问题,也曾出现过类似的做法 [ 6 ] ^{[6]} [6](在线搜索中引入 ξ k \xi_k ξk项并要求 ∑ ξ k < ∞ \sum\xi_k<\infty ξk<)。

梯度法是一个很特殊的例子。包括梯度法在内,很多方法在精确性假设下计算出的更新方向 d k d_k dk ϕ \phi ϕ的下降方向。然而对于其中的一部分算法, d k d_k dk的计算涉及到历史梯度值 ( g k − 1 , g k − 2 ⋯ g_{k-1}, g_{k-2}\cdots gk1,gk2)。此时我们很难给出一个误差的限值标准,使得按标准计算的 { f i } i ≤ k \{f_i\}_{i\leq{k}} {fi}ik { g i } i ≤ k \{g_i\}_{i\leq{k}} {gi}ik能够生成一个 ϕ \phi ϕ的下降方向。尽管如此,我们仍然可以刻画算法的收敛性结果。一个常见的思路是考虑凸函数,通过 ∥ ∇ ϕ ( x ) ∥ = 0 \|\nabla\phi(x)\|=0 ∥∇ϕ(x)=0来说明算法到达函数的极小值。

为了建立算法的收敛性结果,我们需要对误差的大小做出要求。这里我们介绍一种常见的设置 [ 7 ] [ 8 ] ^{[7][8]} [7][8]。假设 ϕ \phi ϕ R n \mathbb{R}^n Rn上L-smooth的凸函数,即满足条件:
0 ≤ ϕ ( x ) − ϕ ( y ) + < ∇ ϕ ( y ) , x − y > ≤ M 2 ∥ x − y ∥ 2 , ∀ x , y ∈ R n , 0 ≤ \phi(x) − \phi(y) +\left<∇\phi (y), x − y\right> ≤ \frac{M}{2}\|x − y\|^2, \quad \forall x,y\in\mathbb{R}^{n}, 0ϕ(x)ϕ(y)+ϕ(y),xy2Mxy2,x,yRn,

其中 M > 0 M>0 M>0是强凸参数。我们接下来给出一阶 ( δ , L ) (\delta,L) (δ,L)信息的定义。

定义1 对于 δ , L > 0 \delta, L>0 δ,L>0, 函数 ϕ \phi ϕ具备一阶 ( δ , L ) (\delta,L) (δ,L)信息,当且仅当对任意的 y ∈ R n y\in\mathbb{R}^n yRn, 我们都能计算出一组 ( f ( y ) , g ( y ) ) (f(y),g(y)) (f(y),g(y))满足 0 ≤ f ( x ) − f ( y ) + < g ( y ) , x − y > ≤ L ∥ x − y ∥ 2 + δ , ∀ x ∈ R n . 0 ≤ f (x) − f(y) + \left ≤ L \|x − y\|^2 + δ, \quad \forall x ∈ \mathbb{R}^n. 0f(x)f(y)+g(y),xyLxy2+δ,xRn.

以上定义可拓展到定义在 Q Q Q上的函数,其中 Q Q Q是一个闭凸集。

假设对于**任意小的 δ > 0 \delta>0 δ>0**和足够大的 L L L, 函数 ϕ \phi ϕ具有一阶 ( δ , L ) (\delta,L) (δ,L)信息。对于许多常见的一阶算法,我们可以适当选择 { δ k } \{\delta_k\} {δk} { L k } \{L_k\} {Lk}, 在第 k k k次迭代时按照一阶 ( δ k , L k ) (\delta_k,L_k) (δk,Lk)信息的标准来计算 ( f k , g k ) (f_k,g_k) (fk,gk),并用它代替 ( ϕ k , ∇ ϕ k ) (\phi_k,\nabla{\phi}_k) (ϕk,ϕk)。以梯度法 (Primal Gradient Method) 为例,它对应的收敛性结果 [ 7 ] ^{[7]} [7] ∑ i = 0 k − 1 1 L i [ ϕ ( x i + 1 ) − ϕ ( x ∗ ) ] ≤ 1 2 ∥ x 0 − x ∗ ∥ 2 + ∑ i = 0 k − 1 δ i L i . \begin{equation}\nonumber \sum_{i=0}^{k-1}\frac{1}{L_i} [ \phi(x_{i+1}) − \phi(x^∗)] ≤ \frac{1}{2}\| x_0 − x^∗\|^2 \color{red}+\sum_{i=0}^{k-1}\frac{\delta_i}{L_i}. \end{equation} i=0k1Li1[ϕ(xi+1)ϕ(x)]21x0x2+i=0k1Liδi.

ϕ \phi ϕ是L-smooth的函数,我们可以认为 { L k } \{L_k\} {Lk}有上界,且 M M M是它的一个下界。而上式可改写为
min ⁡ i = 0 , ⋯   , k − 1 { 1 L i [ ϕ ( x i + 1 ) − ϕ ( x ∗ ) ] } ≤ 1 2 k ∥ x 0 − x ∗ ∥ 2 + 1 k ∑ i = 0 k − 1 δ i L i . \begin{equation}\nonumber \min_{i=0,\cdots,k-1}\left\{\frac{1}{L_i} [\phi(x_{i+1}) − \phi(x^∗)]\right\} ≤ \frac{1}{2k}\| x_0 − x^∗\|^2 \color{red}+ \frac{1}{k} \sum_{i=0}^{k-1}\frac{\delta_i}{L_i}. \end{equation} i=0,,k1min{Li1[ϕ(xi+1)ϕ(x)]}2k1x0x2+k1i=0k1Liδi.

因此如果 lim ⁡ k → ∞ 1 k ∑ i = 0 k − 1 δ i L i = 0 \lim_{k\to\infty}\frac{1}{k}\sum_{i=0}^{k-1}\frac{\delta_i}{L_i}=0 limkk1i=0k1Liδi=0, 我们可推出 lim ⁡ k → ∞ min ⁡ i = 0 , ⋯   , k − 1 ϕ ( x i + 1 ) = ϕ ( x ∗ ) \lim_{k\to\infty}\min_{i = 0, \cdots,k-1}\phi(x_{i+1})=\phi(x^*) limkmini=0,,k1ϕ(xi+1)=ϕ(x), 即算法在 x ∗ x^* x处终止或存在子列趋近于唯一的最优解 x ∗ x^* x。其他的算法也有类似的收敛性结论,这里不再展开。

总结回顾

传统意义下,我们考虑的优化问题满足精确性假设,即目标 (约束) 函数和它的导数都可以被精确求出,然而在实际中许多问题并不满足这样的假设。对于具有大规模样本的问题,我们可以采用随机算法。在剩下的问题中,如果不能获得可靠的梯度信息,那么我们通常考虑无导数优化。如果我们能获得可靠的梯度信息,而函数值和梯度值伴随着可以估计大小的误差,那么我们考虑改进已有的一阶算法。面对具有误差的信息,一项重要的工作是制定合适的线搜索准则 (如果需要线搜索的话),并验证它是良定义的。如果误差的大小只能估计而不能控制,我们希望在足够多次迭代之后,算法能够到达最优解的某个小邻域中;如果误差的大小可以控制,我们可以通过一阶 ( δ , L ) (\delta,L) (δ,L)信息等工具,给出误差的限制标准,并在这样的标准下得到算法全局收敛的结论。

[1] Audet, C., & Hare, W. (2017). Derivative-free and blackbox optimization.​
[2] Booker, A. J., Dennis Jr, J. E., Frank, P. D., Serafini, D. B., Torczon, V., & Trosset, M. W. (1999). A Rigorous Framework by Surrogates for Optimization of Expensive Functions. Structural Optimization, 17, 1-13.​
[3] Begin, T., Baynat, B., Sourd, F., & Brandwajn, A. (2010). A DFO technique to calibrate queueing models. Computers & Operations Research, 37(2), 273-281.​
[4] Kannan, A., & Wild, S. M. (2012, June). Benefits of deeper analysis in simulation-based groundwater optimization problems. In Proceedings of the XIX International Conference on Computational Methods in Water Resources (CMWR 2012) (Vol. 4, No. 5, p. 10).​
[5] Xie, Y., Byrd, R. H., & Nocedal, J. (2020). Analysis of the BFGS method with errors. SIAM Journal on Optimization, 30(1), 182-209.​
[6] Han, S. P. (1977). A globally convergent method for nonlinear programming. Journal of optimization theory and applications, 22(3), 297-309.​
[7] Devolder, O., Glineur, F., & Nesterov, Y. (2014). First-order methods of smooth convex optimization with inexact oracle. Mathematical Programming, 146, 37-75.​
[8] Devolder, O. (2013). Exactness, inexactness and stochasticity in first-order methods for large-scale convex optimization (Doctoral dissertation, PhD thesis).

你可能感兴趣的:(机器学习,人工智能,深度学习)