庞特里亚金极大值原理_替代梯度下降——基于极大值原理的深度学习训练算法...

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

a72a18c5fb70945fea44b5fbf0f63c95.png

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

神经网络—>动力学系统

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

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

equation?tex=F%3A+%5Cmathcal%7BX%7D+%5Crightarrow+%5Cmathcal%7BY%7D ,其中X就是输入的样本数据,而Y就是对应的目标值。假设样本特征有d维,一共K个样本,则有样本集
equation?tex=%5Cleft%5C%7Bx%5E%7Bi%7D%2C+y%5E%7Bi%7D%3DF%5Cleft%28x%5E%7Bi%7D%5Cright%29%5Cright%5C%7D_%7Bi%3D1%7D%5E%7BK%7D ,其中
equation?tex=x%3D%5Cleft%28x%5E%7B1%7D%2C+%5Cldots%2C+x%5E%7BK%7D%5Cright%29+%5Cin+%5Cmathbb%7BR%7D%5E%7Bd+%5Ctimes+K%7D

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

equation?tex=%5Cdot%7BX%7D_%7Bt%7D%5E%7Bi%7D%3Df%5Cleft%28t%2C+X_%7Bt%7D%5E%7Bi%7D%2C+%5Ctheta_%7Bt%7D%5Cright%29%2C+%5Cquad+X_%7B0%7D%5E%7Bi%7D%3Dx%5E%7Bi%7D%2C+%5Cquad+0+%5Cleq+t+%5Cleq+T+%5C%5C

其中t代表时间,

equation?tex=%5Ctheta_%7Bt%7D 代表该系统在t时刻的参数,而
equation?tex=%5Cdot%7BX%7D 代表位置X对时间的导数,即速度。

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

equation?tex=%7BX%7D_%7BT%7D%5E%7Bi%7D

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

equation?tex=%7BX%7D_%7BN%7D%5E%7Bi%7D ,可以通过前向欧拉法求解:

equation?tex=x_%7Bn%2B1%7D%3Dx_%7Bn%7D%2B%5Cdelta+f_%7Bn%7D%5Cleft%28x_%7Bn%7D%2C+%5Cvartheta_%7Bn%7D%5Cright%29%2C+%5Cquad+x_%7B0%7D%3Dx+%5C%5C

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

equation?tex=f_%7Bn%7D ,每一层的输出
equation?tex=x_%7Bn%2B1%7D 都是该层输入
equation?tex=x_%7Bn%7D 加上函数
equation?tex=f_%7Bn%7D的计算结果
equation?tex=f_%7Bn%7D%5Cleft%28x_%7Bn%7D%2C+%5Cvartheta_%7Bn%7D%5Cright%29 乘一个常数
equation?tex=%5Cdelta+ 。因此我们可以将ResNet看作一个动力学系统。

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

equation?tex=%7BX%7D_%7BT%7D%5E%7Bi%7D,可以计算它的loss
equation?tex=%5CPhi%5Cleft%28g%5Cleft%28x_%7BT%7D%5E%7Bi%7D%5Cright%29%2C+y%5E%7Bi%7D%5Cright%29 ,其中函数
equation?tex=g 是固定的,因此优化问题就可以写成如下形式:

equation?tex=%5Cbegin%7Barray%7D%7Bl%7D%7B%5Cmin+_%7B%5Ctheta+%5Cin+%5Cmathcal%7BU%7D%7D+%5Csum_%7Bi%3D1%7D%5E%7BK%7D+%5CPhi_%7Bi%7D%5Cleft%28X_%7BT%7D%5E%7Bi%7D%5Cright%29%2B%5Cint_%7B0%7D%5E%7BT%7D+L%5Cleft%28%5Ctheta_%7Bt%7D%5Cright%29+d+t%7D+%5C%5C+%7B%5Cdot%7BX%7D_%7Bt%7D%5E%7Bi%7D%3Df%5Cleft%28t%2C+X_%7Bt%7D%5E%7Bi%7D%2C+%5Ctheta_%7Bt%7D%5Cright%29%2C+%5Cquad+X_%7B0%7D%5E%7Bi%7D%3Dx%5E%7Bi%7D%2C+%5Cquad+0+%5Cleq+t+%5Cleq+T%2C+%5Cquad+i%3D1%2C+%5Cldots%2C+K%7D%5Cend%7Barray%7D+%5C%5C

其中

equation?tex=%5Cmathcal%7BU%7D 是参数空间,
equation?tex=L%5Cleft%28%5Ctheta_%7Bt%7D%5Cright%29 在控制问题中叫做running cost,放在机器学习中可以理解为是一个正则化项。

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

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

Pontryagin's maximum principle

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

首先定义哈密顿量H

equation?tex=H%28t%2C+x%2C+p%2C+%5Ctheta%29%3A%3Dp+%5Ccdot+f%28t%2C+x%2C+%5Ctheta%29-L%28%5Ctheta%29+%5C%5C

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

(1)

equation?tex=%5Cdot%7BX%7D_%7Bt%7D%5E%7B%2A%7D%3D%5Cnabla_%7Bp%7D+H%5Cleft%28t%2C+X_%7Bt%7D%5E%7B%2A%7D%2C+P_%7Bt%7D%5E%7B%2A%7D%2C+%5Ctheta_%7Bt%7D%5E%7B%2A%7D%5Cright%29%2C+%5Cquad+X_%7B0%7D%5E%7B%2A%7D%3Dx+

(2)

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值