在深度学习中,基于梯度下降的算法是目前最主流的参数优化方法,例如SGD,Adam等等,不过这次介绍的论文就提出了另外一种用来训练神经网络参数的方法。先简单概括一下,论文的核心思想是将神经网络看作是一个动力学系统,而把对网络的训练过程看作是如何实现对这个动力学系统的最优控制,按照这样的思路,作者基于庞特里亚金极大值原理(Pontryagin's maximum principle, PMP)设计了一个迭代算法,来求得这个控制问题的最优解,从而实现对于神经网络参数的优化。
神经网络—>动力学系统
其实将神经网络看作动力学系统的想法并不新鲜,尤其是当残差网络(residual network, ResNet)提出以后,这一观点变得更加流行。简单来说,ResNet可以看作是动力学系统的离散时间近似,具体描述可以接着看下文。
对于监督学习来说,其目的就是通过神经网络来去逼近一个从X映射到Y的函数
现在通过动力学的观点来看神经网络,我们认为输入X就是运动物体的初始状态,比如粒子的位置。在我们的动力学系统中,这些粒子遵循下面的规律运动:
其中t代表时间,
这就是一个给定初始状态的常微分方程,求解该方程,我们就可以得出粒子的最终状态
现在将时间离散化,为了得出最终状态
通过上式可以看出,残差网络中的第n层就可以看作是其中的函数
方便起见,我们还是先讨论时间连续的情况,对于最终状态
其中
而这篇论文的核心内容就是对这个优化问题进行求解。
为了简便起见,之后的讨论认为样本数K=1,而这并不会影响最终的结论。
Pontryagin's maximum principle
论文中采用了庞特里亚金极大值原理(Pontryagin's maximum principle, PMP)的思想来求解优化问题,具体方法如下:
首先定义哈密顿量H
那么PMP就告诉我们,下列条件:
(1)
(2)
(3)
就是上述优化问题最优解的必要条件,注意到这里只是必要条件,也就是说PMP得到的不一定是全局最优解,不过在实际情况中,PMP的解通常已经足够好了。
在上述条件中,
Method of Successive Approximations
- Basic MSA
想要通过PMP得到最优解,就需要同时得到满足条件的
首先第一步是根据条件(1)计算
整体来看,MSA其实可以被分为两大部分:前向-后向哈密顿动力学( forward-backward Hamiltonian dynamics)以及控制参数的最大化。先是通过前向传播求出
尽管看起来很好,但是Basic MSA却有一个问题,那就是它没有办法保证一定收敛到最优解,如果迭代的初始参数
2. 误差估计
现在就来分析一下到底是哪里导致Basic MSA出现了偏差,回忆一下,需要优化的问题是:
而我们要做的就是
有了这些假设,就可以得到如下的结论(具体证明可看原论文的附录B):
其中
而lemma中的
从上面的不等式可以看出,要想使得
3.Extended PMP and Extended MSA
为了确保PMP的收敛性,就需要控制可行性误差的大小,因此论文提出了Extended PMP和相应的Extended MSA,它参考了增广拉格朗日方法,将哈密顿量的形式变为:
那么就有Extended PMP:
上面的公式成立是优化问题最优解的必要条件,Extended PMP的证明也很简单,若
形式与PMP的哈密顿量一样,因此Extended PMP的三个条件也同样可被满足,所以Extended PMP的条件同样是最优解的必要条件。可以看出,因为Extended PMP是由PMP推出来的,它的成立需要建立在PMP成立的基础上,所以Extended PMP其实一个比PMP更弱的必要条件,而构建它的目的就是为了控制可行性误差。
有了Extended PMP以后,就可以得到相应的Extended MSA,其算法流程如下:
其实从算法流程中可以注意到,迭代的前两步相较于Basic MSA并没有发生变化,这是因为当
形式与Basic MSA一致,因此Extended MSA的前两步无需变化(这一点可能会有些不好理解,如果不明白,可以将这个E-MSA仍看作是Basic MSA,只不过第三个条件中的
现在来证明Extended MSA可以解决上述的可行性误差问题,首先定义
由算法可知(注意上标k和k+1)
对不等式从0到T积分,则有
考虑到本轮迭代的前两步已经满足
则有
将这个式子与lemma 2进行对比,可以发现只要选择一个合适的
现在分析一下这个不等式,不等式的右侧的后两项一定小于等于0,因此
现在证明,当
时间离散化表示
- Discrete-Time PMP and Discrete-Time MSA
前面的讨论都是基于连续时间的情况,这与动力学系统的特性相符合,不过前面也已经提到了,神经网络应该被看作是离散时间下的动力学系统,因此我们还需要得到上面算法的时间离散化版本。
再回顾一下,时间离散化后,我们可以通过前向欧拉法求解状态X,即
相应地,原先的最优化问题就变为
定义离散哈密顿量
则离散时间版本的PMP为:
其中
看到这里我们可能会产生一个疑问,那就是上面连续时间的结论在离散化后还成立吗?不幸的是,答案是不一定,已经有一些研究结果表明PMP对于一些离散时间的动力学系统并不成立,这篇论文并没有给出PMP仍适用的证明,作者只是希望在一些适当的情况下,lemma 2对于离散情况还能够成立。
最后给出E-MSA的离散版本
图中画红线的地方估计是作者写错了,应该是
简单说一下流程,其实和连续情况很相似,离散版本中给定x的初始状态,通过前向欧拉法求得x的数值解,然后计算出p的末状态,然后用反向欧拉法得出p的解;最后最大化哈密顿量,完成一次迭代。
2. 与梯度下降的关系
作为一种替代梯度下降的方法,我们肯定要对MSA和梯度下降进行比较,而这篇论文则证明了梯度下降只是Basic MSA在一些特殊情况下的结果。
现在回到Basic MSA,我们修改一下迭代中最后一步的哈密顿量最大化操作,让它变“软”一点
因此,梯度下降就可以看作是Basic MSA的“软化”版本,它与Basic MSA的差别就在于迭代的最后一步,由于需要求参数的梯度,因此梯度下降要求损失函数对于参数是可微的,而由于MSA方法并不需要考虑求参数的梯度,因此它对于参数空间的要求更低。
3. Mini-batch Algorithms
还记得刚开始的时候,为了方便我们令样本数K=1吗?现在就可以把结论拓展到mini-batch上了,结果如下:
对于MSA,迭代前面的步骤不变,最后一步的哈密顿量最大化变为
实验
终于到实验了,论文中做了一些关于MSA和梯度下降方法的对比实验,首先是比较简单的函数逼近实验,用神经网络去逼近函数
实验结果如下:
可以看出,E-MSA的每次迭代的收敛速度确实比梯度下降方法快一些。另外,梯度下降法的一大问题就是如果参数初始化得不好,那么就有可能会遇到一些局部平坦的区域,导致收敛速度变慢,而MSA方法则不会受到这个问题的影响,如下图所示
除了简单的函数近似,作者还做了MNIST数据集上手写数字识别的对比实验,如下图所示
然而,论文中也提到了MSA的一个很大的不足之处,那就是每轮迭代的时间会比梯度下降慢得多,这是可以理解的,毕竟MSA的每轮迭代都需要去找到一个最大值,而梯度下降只需要计算一次梯度就行了。这就导致了虽然MSA每次迭代收敛地更快,但是从时间上来看却反而更慢了,如下所示。
总结
先总结一下MSA的优点:
- 收敛得更快,而且并不需要精心设置初始化的训练参数。
- 对于参数空间的要求很低,甚至可以是离散的,这就使得我们可以设计一些具有离散参数值的神经网络层。
- 迭代中的最大化是对于每一层分别进行的,因此参数空间大大减小。
- 神经网络层都是相似的,一般就那么几种,因此它们的哈密顿量的形式也有限,这样我们就可以专门针对这些哈密顿量设计一些特殊的优化算法。
- 在实际迭代中,我们并不需要对哈密顿量实现完全最大化,只需要比上一步有所增加就行,因此可以引入一些快速的启发式算法。
总的来说,E-MSA能否最终替代梯度下降法,关键在于能否以合理的计算代价实现高效的哈密顿最大化。
总结一下全文,这篇论文从动力学系统的角度出发,将残差网络看作是其时间离散化的情况,从而将监督学习问题看作是对一个最优控制问题的求解,通过参考控制领域内的PMP和MSA这些已有的方法,作者提出了针对深度学习的离散化Extended MSA,并且证明了现在的梯度下降法只不过是Basic MSA的一个变种,通过实验表明了E-MSA确实解决了梯度下降法存在的一些问题,不过它本身也同样有待于进一步的改进。
参考资料
[1] Maximum Principle Based Algorithms for Deep Learning
[2] 庞特里亚金最大化原理_百度百科
[3] https://www.zhihu.com/question/315809187/answer/623687046