神经了的ODE:Neural Ordinary Differential Equations

Abstract

我们介绍深度神经网络模型的一个新家族。我们使用神经网络参数化隐藏状态的导数,而不是指定一个离散的隐藏层序列。网络的输出使用一个黑盒微分求解器进行计算(blackbox differential equation solver)。这些连续深度模型需要的存储成本恒定、针对不同输入调整评估策略(evaluation strategy)、可以用数值精度换取速度。我们在 continuous-depth residual networks 和 continuous-time latent variable models 中证明这些性质。我们也构建了连续标准化流(continuous normalizing flows),可以使用 maximum likelihood 训练的生成模型,不需要对数据维度进行分区或排序。在训练过程中,我们展示了怎样通过 any ODE solver 可调节地进行反向传播, without access to its internal operations。

1、Introduction

残差网络(residual networks)、循环神经网络解码器(recurrent neural network decoders)、标准化流(normalizing flows)通过堆叠一系列的转换(transformations)形成一个隐状态来建立复杂的转换(transformations):
在这里插入图片描述
  其中, t ∈ { 0... T } t \in \lbrace0...T\rbrace t{0...T} h t ∈ R D h_t\in\Bbb{R}^D htRD。这些迭代更新可以看作为一个连续变换(continuous transformation)的 欧拉离散化(Euler discretization)。(Lu et al., 2017; Haber and Ruthotto, 2017; Ruthotto and Haber, 2018)
当我们添加更多的层、每一步更小的时候会发生什么?在极限的情况下,我们参数化隐藏神经元的连续动态(continuous dynamics)使用一个神经网络指定的 ordinary differential equation (ODE):
在这里插入图片描述
  从输入层 h ( 0 ) h(0) h(0)开始,我们可以将输出层 h ( T ) h(T) h(T)定义为在某时刻T上ODE初值问题的解。这个值可以由一个黑箱微分方程求解器计算,它评估隐藏神经元动力学 f f f在任何需要的地方求解符合精度要求的解。图1对比了这两种方法。
神经了的ODE:Neural Ordinary Differential Equations_第1张图片
  左边:残差网络定义了一个有限变换的离散序列。右边:一个ODE网络定义了一个向量场(vector field),可以进行状态的连续转换。 B o t h Both Both:圆圈代表评估的位置。

使用ODE求解器定义和评估模型有几个好处:
内存优化
  不论是什么结构的神经网络,其本质就是在拟合一个复杂的复合函数,复合的次数就是神经网络的层数,要找到参数的梯度,很容易就想到链式法则,然而,在前向传播时我们需要保留所有层的激活值,并在反向传播时利用这些激活值,这对内存的占用非常大,对深度模型的训练过程来说是一个很大的限制。
  对于Neural ODE来说,若直接通过积分器来做反向传播,则需要对一个积分求微分,内存开销会很大,且计算的误差会逐渐累加,因此,作者给出了一个adjoint sensitivity method来计算ODE的梯度,该方法将梯度的计算归结为解一个ODE,该ODE能够ODE Solver求解,其思路来源于Pontryagin论文《The mathematical theory of optimal processes》中的庞特里亚金最大化原理,具体的公式比较复杂,这里就不给出了。我们将隐藏状态的导数作为参数,因此参数就不是一系列离散值,而是一个连续的空间,因此并不需要依次传递到前向传播中的每一个函数进行评估,也就不用耗费大量空间来存储中间结果了。
自适应计算
  绝大多数常微分方程都很难找到解析解,因此往往通过数值求解,比如最简单的方法Euler法(这样就又变成ResNet了),还有更复杂一点的Runge-Kutta法,近百年来,数学家对ODE的求解已经研究得很深入了,现代的ODE Solver也已经非常成熟,它们不仅能保证收敛到真实解,同时还能控制误差水平,会根据给定的误差容忍度选择适当的步长逼近真实解。在评估或训练过程中,通过显式地改变数值积分的精度,我们可以自由地调节模型的速度和精度,比如我们可以花更多的时间去训练一个高精度的模型,而在评估预测时降低精度以提高系统的响应速度。
公式简化
神经了的ODE:Neural Ordinary Differential Equations_第2张图片
Continuous time-series models
  与RNN不同,RNN需要离散的观测值和观测间隔(emission intervals),continuously-defined dynamics can naturally incorporate data which arrives at arbitrary times. 连续定义的动力学模型可以很自然地合并在任意时刻观测的数据。在第5节,我们构建和演示了这样一个模型。

2、ODE解的Reverse-mode automatic differentiation

你可能感兴趣的:(深度学习,深度学习)