神经 ODE 的实际用途是什么?

机器算法验证 机器学习 神经网络 反向传播 微分方程 神经颂
2022-01-21 22:29:53

陈天琪、Yulia Rubanova、Jesse Bettencourt 和 David Duvenaud 合着的《神经常微分方程》荣获2018 年 NeurIPS 最佳论文奖

在那里,作者提出了 NeuralODE,这是一种融合微分方程和神经网络概念的方法。借鉴以前的文献并贡献新的发展,例如,NeuralODE 可以在其正向传递中使用微分方程求解器,并且仍然保持可计算的反向传递。

论文中的两个例子确实引起了媒体的关注,我认为它们是关于基于流的生成建模以及 ResNet 跳跃连接深度和 NeuralODE 函数评估数量之间的伪等价(更多信息请参见:What is the David Duvenaud 的 Neural ODE 论文中的连续深度概念?)。

因此,为简洁起见,需要提出两个关于它们实际使用方式的问题(我很惊讶我们在 CV 中还没有):

  • NeuralODE 是否有“传统”神经网络无法做到的事情?连续时间计算?“无限”“深度”计算?

  • 是否有一些“常规”神经网络可以做到 NeuralODE 无法做到的事情?

1个回答

TL;DR:对于时间序列和密度建模,神经 ODE 提供了一些我们不知道如何获得的好处。对于普通的监督学习,有潜在的计算优势,但出于实际目的,它们可能还不值得在那种环境中使用。

要回答您的第一个问题:

NeuralODE 是否有“传统”神经网络无法做到的事情?

神经 ODE 在两个方面与标准网络不同:

  1. 它们代表一组不同的函数,根据您的建模内容,它们可能是好是坏。
  2. 我们必须逼近他们的精确解,这为如何计算答案提供了更多自由,但增加了复杂性。

我想说神经 ODE 帮助的最清晰的设置是构建连续时间序列模型,它可以轻松处理不规则间隔的数据然而,ODE 只能模拟确定性动力学,所以我对将这些时间序列模型推广到随机微分方程感到更加兴奋。如果您正在对定期采样的数据(如视频或音频)进行建模,我认为没有太大优势,标准方法可能会更简单、更快。

他们具有优势的另一个设置是为密度建模构建规范化流。标准化流的瓶颈是跟踪密度的变化,这对于标准网络来说是缓慢的 (O(D^3))。这就是为什么像 Glow 或 Real-NVP 这样的离散时间归一化流模型必须限制其层的架构,例如仅根据另一半更新一半的单元。在连续时间内,更容易跟踪密度的变化,即使对于不受限制的架构也是如此。这就是FFJORD论文的内容。从那时起,剩余流被开发出来,它是离散的时间流,也可以处理不受限制的架构,但有一些警告。

对于标准深度学习,有两个潜在的巨大优势:

  • 训练时的恒定内存成本。在神经 ODE 之前,已经有一些工作表明,如果我们可以从输出“反向运行”神经网络,我们可以降低计算神经网络反向模式梯度的内存成本,但这需要限制网络的架构。神经 ODE 的好处在于,您可以简单地向后运行它们的动力学来重建原始轨迹。在这两种情况下,复合数值误差在某些情况下可能是一个问题,但我们认为这不是一个实际问题。
  • 自适应时间成本。这个想法是,由于我们只是近似一个精确的答案,有时我们可能只需要我们的近似求解器的几次迭代就可以得到一个可以接受的好答案,因此可以节省时间。

Deep Equilibrium Models共享这两个潜在优势,并且它们已经扩展到变压器。但是在这两种情况下,到目前为止,这些模型在实践中总体上都比标准网络慢,因为我们还不知道如何将这些模型正则化以易于近似。

回答你的第二个问题:

是否有一些“常规”神经网络可以做到 NeuralODE 无法做到的事情?

  1. 传统的网络可以拟合非同函数,例如输出维度小于输入维度的函数,或者改变输入空间拓扑的函数。牛津有一篇很好的论文指出了这些问题,并表明您也可以通过添加额外的维度来解决它。当然,您可以通过将 ODE 网络与标准网络层组合来处理此问题。
  2. 传统的网络可以通过固定的计算量进行精确评估,并且通常训练速度更快。另外,使用标准网络,您不必为求解器选择容错。