文献会议笔记: Replacing/Enhancing Iterative Algorithms with Neural Networks Part 3

文献会议笔记: Replacing/Enhancing Iterative Algorithms with Neural Networks Part 3: Accelerating Convergence via Optimal First-Order Iterative Algorithms and Learning-to-Learn Generalizations


参考:David Wipf, Microsoft Research, Beijing, 2018

摘要:首先介绍加速的梯度下降算法以及在近端梯度下降上的应用;介绍基于学习的梯度下降算法并于神经网络进行类比.

目录

  1. 对梯度下降的提速
  2. 在光滑+非光滑函数的扩展
  3. 通过学习进一步改善性能
    1. Learning by gradient descent & Learning to (learn by gradient descent) by gradient descent
    2. 对优化器的优化,即Learning to learn
    3. 更细节的讨论
  4. 总结

1. 对梯度下降提速

上一节我们对非光滑的优化函数提出了近端梯度下降算法,收敛速度为 O ( 1 k ) ,但光滑函数的收敛速度为 O ( 1 k 2 ) . 如何缩短这个差距呢??

在梯度下降中,步长参数过小,收敛速度很慢;步长参数过大,会收敛不到最优解;且当收敛曲面在某个维度变化剧烈时,每次迭代结果会低效率的震荡.

传统的梯度下降更新公式如下:

x ( k + 1 ) = x ( k ) η f ( x ( k ) )

即使在 f 是光滑的情况下,梯度下降的结果也是次优的. 而在 f 比较糟糕的情况下,梯度下降就会一直不停的震荡.

给它加上一个动量,即heavy ball method

x ( k + 1 ) = x ( k ) η f ( x ( k ) ) + β ( x ( k ) x ( k 1 ) )

该方法对每一次迭代都会有一个向着 ( x ( k ) x ( k 1 ) ) 方向移动的趋势.

再进一步得到Nesterov’s Optimal Method,两者相似但又不完全相同

u ( k ) = x ( k ) + β ( k ) ( x ( k ) x ( k 1 ) ) x ( k + 1 ) = u ( k ) η f ( u ( k ) )

其中,为了确保收敛速度, β 需满足如下要求:

β ( k ) = t ( k ) 1 t ( k ) + 1 , t ( k ) = 1 + 1 + 4 ( t ( k ) ) 2 2 , η = 1 L

此时,该方法能够达到 O ( 1 k 2 ) 的收敛速度.


2. 在光滑+非光滑函数的扩展

优化问题

min x f s ( x ) + f n ( x )

u ( k ) 处展开,得到其二次上界为
f ^ ( x ; u ( k ) ) = f s ( u ( k ) ) + < f s ( u ( k ) ) , x u ( k ) > + L 2 | | x u ( k ) | | 2 + f n ( x )

最小化该上界,得到 x ( k + 1 ) 的迭代公式

x ( k + 1 ) = arg min x f ^ ( x ; u ( k ) ) = arg min x L 2 | | x ( u ( k ) 1 L f s ( u ( k ) ) ) | | 2 + f n ( x ) = p r o x 1 L f n ( u ( k ) 1 L f s ( u ( k ) ) )

由此,得到加速近端梯度下降算法

k n o w n : f s , f s ( x ) L L i p s c h i t z r e p e a t : u ( k ) = x ( k ) + β ( k ) ( x ( k ) x ( k 1 ) ) x ( k + 1 ) = p r o x 1 L f n ( u ( k ) 1 L f s ( u ( k ) ) )

其中

β ( k ) = t ( k ) 1 t ( k ) + 1 , t ( k ) = 1 + 1 + 4 ( t ( k ) ) 2 2 , η = 1 L

和之前一样可以通过求解近端问题高效计算.

p r o x μ f n ( x ) ( z ) = arg min x 1 2 | | x z | | 2 + μ f n ( x )

只要 f n 有高效的近端操作符,就可以使光滑+非光滑的优化函数有和光滑函数同样的收敛速度. 但此时需要多个过去的 x 值,这就要求我们的网络能够存储过去的数据.


3. 通过学习进一步改善性能

在Part 2的第四部分,我们的学习依赖有监督的训练数据对.
现在由于我们使用Nesterov’s Optimal Method,利用了多个之前迭代的数据,优化不再需要一个目标,因此学习变为非监督的情形.

{ f θ i : θ i Ω , i = 1 , 2 , . . . , N } F

Learning to (learn by gradient descent) by gradient descent算法提供了该问题的解答.

3.1 Learning by gradient descent & Learning to (learn by gradient descent) by gradient descent

首先回顾Learning by gradient descent:

  • 优化目标:

    x = arg min x f θ ( x )

  • 优化器,梯度更新:

    x ( k + 1 ) = x ( k ) η ( k ) f ( x ( k ) )

而Learning to (learn by gradient descent) by gradient descent:

  • 优化目标仍是 f θ ,提供误差参数用于调整优化器;
  • 优化器为 π ,获得新的优化目标,梯度更新:
    x ( k + 1 ) = x ( k ) + π ( k ) [ f θ ( x ( k ) ) ; ω ]

其中, π ( k ) 是梯度和 ω 的函数,以参数 ω 更新网络,并能存储过去迭代的数据; ω 通过梯度下降获得.

3.2 对优化器的优化,即Learning to learn

利用之前的结果,有更新公式

x ( k + 1 ) = x ( k ) + π ( k ) [ f θ ( x ( k ) ) ; ω ]

而经过 K 次迭代后,得到学习算法

g ( θ ; ω ) = x ( K ) = x ( K 1 ) + π ( K 1 ) [ f θ ( x ( K 1 ) ) ; ω ]

基于无监督的目标,我们的优化函数为

min ω i = 1 N f θ i [ g ( θ i ; ω ) ]

其中一个便于训练的目标函数为

min ω i = 1 N [ k = 1 K w ( k ) f θ i ( x ( k ) ) ]

w ( k ) = I [ w ( k ) = K ] 时,即 K = 1 w = 1 时,退化为原来的优化函数.

3.3 更细节的讨论


min ω i = 1 N [ k = 1 K w ( k ) f θ i ( x ( k ) ) ]

得到参数 ω ,因此可以利用更新公式

x ( k + 1 ) = x ( k ) + π ( k ) [ f θ ( x ( k ) ) ; ω ]

进行计算.

定义

( k ) = f θ ( x ( k ) )

能够得到

[ π ( k ) h ( k + 1 ) ] = Λ ( ( k ) , h ( k ) ; ω )

其中, π 为每一步的更新量, h 为隐藏的状态, Λ 为二层LSTM网, ω 为优化器参数.
最终得到的更新公式为

x ( k + 1 ) = x ( k ) + π ( k )

网络结构如图所示:

对某个样本,定义代价函数 f θ i ,并进行初始化,通过RNN后,利用反向传播更新权值参数.


4. 总结

主要讨论了梯度下降的推广.

  • 对算法的提速,使其收敛速度达到 O ( 1 k 2 )

  • 将Nesterov’s Optimal Method应用到非光滑情况,结合近端操作符;

  • 通过学习进一步改善算法,结合 K 次迭代,并利用LSTM存储之前指代的结果,得到学习算法.

缺点:

  • 测试时需要计算梯度,计算量可能较大;

  • 想要得到非近似解,需要计算二阶量;

  • 不能很好的结合全局来避免局部极小;

  • 不一定收敛,可能会发散;

猜你喜欢

转载自blog.csdn.net/qq_38290475/article/details/81064520