freefly 2018-06-21
新智元报道
来源:arXiv
作者:闻菲,肖琴
【新智元导读】Hinton创建的向量学院的研究者提出了一类新的神经网络模型,神经常微分方程(Neural ODE),将神经网络与常微分方程结合在一起,用ODE来做预测。不是逐层更新隐藏层,而是用神经网络来指定它们的衍生深度,用ODE求解器自适应地计算输出。
我们知道神经网络是一种大的分层模型,能够从复杂的数据中学习模式。这也是为什么神经网络在处理图像、声音、视频和序列行动时有很多成功的应用。但我们常常忘记一点,那就是神经网络也是一种通用函数逼近器,因此,神经网络可以作为数值分析工具,用来解决更多的“经典”数学问题,比如常微分方程(Ordinary Differential Equation,ODE)。
2015年横空出世的残差网络ResNet,已经成为深度学习业界的一个经典模型,ResNet对每层的输入做一个reference,学习形成残差函数,这种残差函数更容易优化,使网络层数大大加深。不少研究者都将 ResNet 作为近似ODE求解器,展开了对 ResNet的可逆性(reversibility)和近似计算的研究。
在一篇最新的论文里,来自多伦多大学和“深度学习教父”Geoffrey Hinton创建的向量学院的几位研究者,将深度学习与ODE求解器相结合,提出了“神经ODE”(Neural ODE),用更通用的方式展示了这些属性。
他们将神经ODE作为模型组件,为时间序列建模、监督学习和密度估计开发了新的模型。这些新的模型能够根据每个输入来调整其评估策略,并且能显式地控制计算速度和精度之间的权衡。
残差网络、递归神经网络解码器和标准化流(normalizing flows)之类模型,通过将一系列变化组合成一个隐藏状态(hidden state)来构建复杂的变换:
其中
,
。这些迭代更新可以看作是连续变换的欧拉离散化。
当我们向网络中添加更多的层,并采取更少的步骤时会发生什么呢?在极限情况下,我们使用神经网络指定的常微分方程(ODE)来参数化隐藏单元的连续动态:
从输入层
开始,我们可以将输出层
定义为在某个时间
时这个ODE的初始值问题的解。这个值可以通过黑盒微分方程求解器来计算,该求解器在必要的时候评估隐藏单元动态
,以确定所需精度的解。图1对比了这两种方法。
图1:左:残差网络定义一个离散的有限变换序列。右:ODE网络定义了一个向量场,它不断地变换状态。圆圈代表评估位置。
使用ODE求解器定义和评估模型有以下几个好处:
论文作者、多伦多大学助理教授David Duvenaud表示,他们通过ODE求解器,提供了一个通用的backprop,但他们的方法是从可逆性上入手,而不是在ODE求解器的运算里进行反向传播(因为这样做对内存消耗很大)。这个方法已经添加到 autograd。
另一位作者、多伦多大学的博士生Tian Qi Chen也表示,他们这项工作创新的地方就在于提出并且开源了一种新方法,在自动微分的框架下,将ODE和深度学习结合在一起。
此外,这项研究还得到了很多意外的收获。例如,构建了连续标准化流(continuous normalizing flows),可逆性强,可以使用宽度,就像 Real NVP一样,但不需要对数据维度分区或排序。
标准化流与连续标准化流量的比较。标准化流的模型容量由网络的深度(K)决定,而连续标准化流的模型容量可以通过增加宽度(M)来增加,使它们更容易训练。来源:研究论文
还有时间连续RNN(continuous-time RNNs),能够处理不规则的观察时间,同时用状态依赖的泊松过程近似建模。下图展示了普通的RNN和神经ODE对比:
Tian Qi Chen说,他尤其喜欢变量的即时改变,这打开了一种新的方法,用连续标准流进行生成建模。
目前,作者正在讲ODE求解器拓展到GPU上,做更大规模的扩展。
摘要
我们提出了一类新的深度神经网络模型。不在隐藏层中指定离散序列,而是用神经网络来对隐藏状态的导数进行参数化。网络的输出使用一个黑箱微分方程求解器来计算。这些连续深度(continuous-depth)模型具有常量存储成本,根据每个输入来调整其评估策略,并且可以显示地(explicitly)牺牲数值精度来获取速度。我们在连续深度残差网络和连续时间潜变量模型中证明了这些性质。我们还构建了连续标准化流(continuous normalizing flows),这是一种可以用最大似然法来训练的生成模型,无需对数据维度进行分区或排序。至于训练,我们展示了在不访问其内部操作的情况下,对任意ODE求解器进行可扩展反向传播的过程。这使得我们能在较大的模型里对ODE进行端到端的训练。
参考资料 & 了解更多: