本文介绍某些优化算法可以表示为对应常微分方程的离散形式。最后谈谈个人关于如何利用这一关系进行算法设计的经验。(封面图为网络下载,如有版权问题,请图片原作者及时联系。)
1. 简介
本文分享一下我们对常微分方程(Ordinary Differential Equation,简称ODE)与优化算法的关系的一些理解。概括地说,就是某些优化算法可以表示成对应常微分方程的离散形式。这里,我们不做常微分方程的解的存在性讨论,而只是给出示意性的描述。
我们首先用梯度下降和Nesterov加速算法来举例说明常微分方程与优化算法的关系。最后分享一下我们对如何利用这一关系指导算法设计的经验。
2. 梯度下降
梯度下降是用得最多的优化算法之一。让我们回顾一下这个算法。假设函数
我们知道
下面,我们写出梯度下降的迭代公式。记
其中,
观察
3. Nesterov加速算法
这一节,我们介绍算法
一般地,用
Nesterov提出了加速的办法,使得我们可以只用函数
其中
下面,我们来推导算法
我们假设序列
类似地,我们有
以及
因此,我们从
整理
我们让
等式
4. 经验总结
4.1 ODE收敛但某些离散形式不收敛
我们需要注意是,算法的ODE形式与离散形式并不完全等价,这是因为对ODE进行离散后,离散算法较ODE有了误差。这些误差累积导致最后离散的算法不收敛。因此,我们需要根据每个ODE的具体形式,设计适合的离散算法。
4.2 找到算法的ODE形式,再重新离散
在很多时候,我们初始想出来的优化算法并不收敛,编程实现的时候总不能得到满意的结果,这个时候,找到算法的ODE形式,再用其他方式重新离散ODE,能让我们得到更多的备选算法方案。例如,论文A Variational Perspective on Accelerated Methods[2]中,针对类似
参考资料
[1]
A Differential Equation for Modeling Nesterov's Accelerated Gradient Method: https://jmlr.org/papers/volume17/15-084/15-084.pdf
[2]
A Variational Perspective on Accelerated Methods: https://arxiv.org/abs/1603.04245