loss下降auc下降_替代梯度下降——基于极大值原理的深度学习训练算法

b707076f2992cf6e51cf36967c192e82.png

在深度学习中,基于梯度下降的算法是目前最主流的参数优化方法,例如SGD,Adam等等,不过这次介绍的论文就提出了另外一种用来训练神经网络参数的方法。先简单概括一下,论文的核心思想是将神经网络看作是一个动力学系统,而把对网络的训练过程看作是如何实现对这个动力学系统的最优控制,按照这样的思路,作者基于庞特里亚金极大值原理(Pontryagin's maximum principle, PMP)设计了一个迭代算法,来求得这个控制问题的最优解,从而实现对于神经网络参数的优化。

神经网络—>动力学系统

其实将神经网络看作动力学系统的想法并不新鲜,尤其是当残差网络(residual network, ResNet)提出以后,这一观点变得更加流行。简单来说,ResNet可以看作是动力学系统的离散时间近似,具体描述可以接着看下文。

对于监督学习来说,其目的就是通过神经网络来去逼近一个从X映射到Y的函数

,其中X就是输入的样本数据,而Y就是对应的目标值。假设样本特征有d维,一共K个样本,则有样本集
,其中

现在通过动力学的观点来看神经网络,我们认为输入X就是运动物体的初始状态,比如粒子的位置。在我们的动力学系统中,这些粒子遵循下面的规律运动:

其中t代表时间,

代表该系统在t时刻的参数,而
代表位置X对时间的导数,即速度。

这就是一个给定初始状态的常微分方程,求解该方程,我们就可以得出粒子的最终状态

现在将时间离散化,为了得出最终状态

,可以通过前向欧拉法求解:

通过上式可以看出,残差网络中的第n层就可以看作是其中的函数

,每一层的输出
都是该层输入
加上函数
的计算结果
乘一个常数
。因此我们可以将ResNet看作一个动力学系统。

方便起见,我们还是先讨论时间连续的情况,对于最终状态

,可以计算它的loss
,其中函数
是固定的,因此优化问题就可以写成如下形式:

其中

是参数空间,
在控制问题中叫做running cost,放在机器学习中可以理解为是一个正则化项。

而这篇论文的核心内容就是对这个优化问题进行求解。

为了简便起见,之后的讨论认为样本数K=1,而这并不会影响最终的结论。

Pontryagin's maximum principle

论文中采用了庞特里亚金极大值原理(Pontryagin's maximum principle, PMP)的思想来求解优化问题,具体方法如下:

首先定义哈密顿量H

那么PMP就告诉我们,下列条件:

(1)

(2)

(3)

就是上述优化问题最优解的必要条件,注意到这里只是必要条件,也就是说PMP得到的不一定是全局最优解,不过在实际情况中,PMP的解通常已经足够好了。

在上述条件中,

叫做协态(co-state),而
就是我们想要的最优控制参数,也就是神经网络的最优参数。通过条件(3)可以看出,这其实是一个很强的条件,一般的条件都是梯度为0(
)等形式,而条件(3)则直接保证了H的全局最大,这样做的好处就是
参数空间
可以不是连续可微的
,即使
是一些离散值的集合,PMP依然可以成立。

Method of Successive Approximations

  1. Basic MSA

想要通过PMP得到最优解,就需要同时得到满足条件的

,想要得到这些解的解析形式是很困难的,因此论文中采用了逐次逼近法( Method of Successive Approximations, MSA)来求得数值逼近解,MSA是一种通过交替进行传播与优化来迭代求解的方法,具体步骤如下:

10400e4a8b7c8ab63e973d79e09b8dbd.png
Basic MSA算法

首先第一步是根据条件(1)计算

,原方程
可以化简为
;已知初始条件
,通过常微分方程解出
后,通过
求得T时刻的协态
作为末状态,然后再通过常微分方程
解出
;得到
之后,就可以寻找令哈密顿量H最大的参数
,完成一次迭代,这样迭代多次之后,我们就可以得到满足精度要求的最优解
,这就是Basic MSA的具体步骤。

整体来看,MSA其实可以被分为两大部分:前向-后向哈密顿动力学( forward-backward Hamiltonian dynamics)以及控制参数的最大化。先是通过前向传播求出

,然后再通过
后向传播得到
,最后实现对于控制参数
的最大化。这里有一个非常值得注意地方,那就是
哈密顿量H的最大化是与时间解耦(decoupled)的,这也就是说我们可以分别对t进行最大化,从神经网络的角度来看,这就意味着我们可以让 不同的网络层并行地执行参数最大化操作。相比于
的前向-后向传播,
的最大化往往更加耗费时间,因此该算法的这个特点可以显著地提高速度。

尽管看起来很好,但是Basic MSA却有一个问题,那就是它没有办法保证一定收敛到最优解,如果迭代的初始参数

选择得不好,那么就会导致结果出现偏差。

2. 误差估计

现在就来分析一下到底是哪里导致Basic MSA出现了偏差,回忆一下,需要优化的问题是:

而我们要做的就是

,首先给出一些前提假设:

有了这些假设,就可以得到如下的结论(具体证明可看原论文的附录B):

5e017b0be17ec9c1913fcd0617cc5dfb.png

其中

满足之前的条件

而lemma中的

从上面的不等式可以看出,要想使得

,那么仅仅令
是不够的,还应该考虑不等式右边的后两项,它们可以被解释为用参数
替代
后,
新哈密顿方程对于原方程产生的误差,换句话说它们反映了替换参数后的方程对原来状态的满足性,因此把它们叫做 可行性误差( feasibility errors)。若可行性误差过大,则Basic MSA就有可能出现收敛的偏差。

3.Extended PMP and Extended MSA

为了确保PMP的收敛性,就需要控制可行性误差的大小,因此论文提出了Extended PMP和相应的Extended MSA,它参考了增广拉格朗日方法,将哈密顿量的形式变为:

那么就有Extended PMP:

上面的公式成立是优化问题最优解的必要条件,Extended PMP的证明也很简单,若

是最优参数,则由PMP可知

则Extended PMP的哈密顿量变为

形式与PMP的哈密顿量一样,因此Extended PMP的三个条件也同样可被满足,所以Extended PMP的条件同样是最优解的必要条件。可以看出,因为Extended PMP是由PMP推出来的,它的成立需要建立在PMP成立的基础上,所以Extended PMP其实一个比PMP更弱的必要条件,而构建它的目的就是为了控制可行性误差

有了Extended PMP以后,就可以得到相应的Extended MSA,其算法流程如下:

930d4c366ac10fe15e942e076e3f96f4.png
E-MSA

其实从算法流程中可以注意到,迭代的前两步相较于Basic MSA并没有发生变化,这是因为当

时,有

形式与Basic MSA一致,因此Extended MSA的前两步无需变化(这一点可能会有些不好理解,如果不明白,可以将这个E-MSA仍看作是Basic MSA,只不过第三个条件中的

换成了
,反正它们都是最优解的必要条件,因此算法仍然成立)。

现在来证明Extended MSA可以解决上述的可行性误差问题,首先定义

由算法可知(注意上标k和k+1

对不等式从0到T积分,则有

考虑到本轮迭代的前两步已经满足

则有

将这个式子与lemma 2进行对比,可以发现只要选择一个合适的

,它就可以保证
会随着迭代不断减小

现在分析一下这个不等式,不等式的右侧的后两项一定小于等于0,因此

一定大于等于0,这也就说明了每一轮迭代
的一直在变大。如果
不再增加,
趋近于0时
,那么后两项就一定也会趋近0,即 可行性误差收敛为0,也就是说更新参数后的哈密顿量仍然可以满足原状态

现在证明,当

足够大时,
一定会收敛于0,如下所示。

489174908b6a3a3c3c7ae2933762033f.png

d8d126db0985f67c37d6dc0cf4929016.png

时间离散化表示

  1. Discrete-Time PMP and Discrete-Time MSA

前面的讨论都是基于连续时间的情况,这与动力学系统的特性相符合,不过前面也已经提到了,神经网络应该被看作是离散时间下的动力学系统,因此我们还需要得到上面算法的时间离散化版本。

再回顾一下,时间离散化后,我们可以通过前向欧拉法求解状态X,即

f9a4dc6cc604a744ea114a444fb5f0cb.png

相应地,原先的最优化问题就变为

fa4e9ea837d5f568278b68fccda25577.png

定义离散哈密顿量

则离散时间版本的PMP为:

5c5aa2a9922c45d0d243671e67f3feb6.png

其中

看到这里我们可能会产生一个疑问,那就是上面连续时间的结论在离散化后还成立吗?不幸的是,答案是不一定,已经有一些研究结果表明PMP对于一些离散时间的动力学系统并不成立,这篇论文并没有给出PMP仍适用的证明,作者只是希望在一些适当的情况下,lemma 2对于离散情况还能够成立。

最后给出E-MSA的离散版本

aa080114d787d5b72aa9fde2293ffebc.png

图中画红线的地方估计是作者写错了,应该是

简单说一下流程,其实和连续情况很相似,离散版本中给定x的初始状态,通过前向欧拉法求得x的数值解,然后计算出p的末状态,然后用反向欧拉法得出p的解;最后最大化哈密顿量,完成一次迭代。

2. 与梯度下降的关系

作为一种替代梯度下降的方法,我们肯定要对MSA和梯度下降进行比较,而这篇论文则证明了梯度下降只是Basic MSA在一些特殊情况下的结果。

现在回到Basic MSA,我们修改一下迭代中最后一步的哈密顿量最大化操作,让它变“”一点

对于这样的Basic MSA,它与梯度下降等价,证明如下

e2766dc56db4c642fb6b8a44e30a06ff.png

因此,梯度下降就可以看作是Basic MSA的“软化”版本,它与Basic MSA的差别就在于迭代的最后一步,由于需要求参数的梯度,因此梯度下降要求损失函数对于参数是可微的,而由于MSA方法并不需要考虑求参数的梯度,因此它对于参数空间的要求更低。

3. Mini-batch Algorithms

还记得刚开始的时候,为了方便我们令样本数K=1吗?现在就可以把结论拓展到mini-batch上了,结果如下:

e421b3beb21a3b363f737aef01f62194.png

对于MSA,迭代前面的步骤不变,最后一步的哈密顿量最大化变为

0fc8b57a41f098415090033eca1427b8.png

实验

终于到实验了,论文中做了一些关于MSA和梯度下降方法的对比实验,首先是比较简单的函数逼近实验,用神经网络去逼近函数

,而损失函数为平方损失,具体细节可看原论文,不过有一点需要注意,就是作者在实验中采
用了10次迭代的limited memory BFGS方法(L-BFGS)来实现MSA算法中的哈密顿量最大化,L-BFGS是一种拟牛顿法,用来寻找最优解,感兴趣的话可以参看有关文章。

实验结果如下:

5d415e006f020e2942cd25ed7bc96a63.png

可以看出,E-MSA的每次迭代的收敛速度确实比梯度下降方法快一些。另外,梯度下降法的一大问题就是如果参数初始化得不好,那么就有可能会遇到一些局部平坦的区域,导致收敛速度变慢,而MSA方法则不会受到这个问题的影响,如下图所示

e42b4a96a620c6e0321f4a77300b061b.png

除了简单的函数近似,作者还做了MNIST数据集上手写数字识别的对比实验,如下图所示

1d2ba51b13cd86f0481efea8db063157.png

然而,论文中也提到了MSA的一个很大的不足之处,那就是每轮迭代的时间会比梯度下降慢得多,这是可以理解的,毕竟MSA的每轮迭代都需要去找到一个最大值,而梯度下降只需要计算一次梯度就行了。这就导致了虽然MSA每次迭代收敛地更快,但是从时间上来看却反而更慢了,如下所示。

67589a8802c3d62e772f6377f55bdd31.png
MNIST数字识别对比

总结

先总结一下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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值