TL;DR:对于时间序列和密度建模,神经 ODE 提供了一些我们不知道如何获得的好处。对于普通的监督学习,有潜在的计算优势,但出于实际目的,它们可能还不值得在那种环境中使用。
要回答您的第一个问题:
NeuralODE 是否有“传统”神经网络无法做到的事情?
神经 ODE 在两个方面与标准网络不同:
- 它们代表一组不同的函数,根据您的建模内容,它们可能是好是坏。
- 我们必须逼近他们的精确解,这为如何计算答案提供了更多自由,但增加了复杂性。
我想说神经 ODE 帮助的最清晰的设置是构建连续时间序列模型,它可以轻松处理不规则间隔的数据。然而,ODE 只能模拟确定性动力学,所以我对将这些时间序列模型推广到随机微分方程感到更加兴奋。如果您正在对定期采样的数据(如视频或音频)进行建模,我认为没有太大优势,标准方法可能会更简单、更快。
他们具有优势的另一个设置是为密度建模构建规范化流。标准化流的瓶颈是跟踪密度的变化,这对于标准网络来说是缓慢的 (O(D^3))。这就是为什么像 Glow 或 Real-NVP 这样的离散时间归一化流模型必须限制其层的架构,例如仅根据另一半更新一半的单元。在连续时间内,更容易跟踪密度的变化,即使对于不受限制的架构也是如此。这就是FFJORD论文的内容。从那时起,剩余流被开发出来,它是离散的时间流,也可以处理不受限制的架构,但有一些警告。
对于标准深度学习,有两个潜在的巨大优势:
- 训练时的恒定内存成本。在神经 ODE 之前,已经有一些工作表明,如果我们可以从输出“反向运行”神经网络,我们可以降低计算神经网络反向模式梯度的内存成本,但这需要限制网络的架构。神经 ODE 的好处在于,您可以简单地向后运行它们的动力学来重建原始轨迹。在这两种情况下,复合数值误差在某些情况下可能是一个问题,但我们认为这不是一个实际问题。
- 自适应时间成本。这个想法是,由于我们只是近似一个精确的答案,有时我们可能只需要我们的近似求解器的几次迭代就可以得到一个可以接受的好答案,因此可以节省时间。
Deep Equilibrium Models共享这两个潜在优势,并且它们已经扩展到变压器。但是在这两种情况下,到目前为止,这些模型在实践中总体上都比标准网络慢,因为我们还不知道如何将这些模型正则化以易于近似。
回答你的第二个问题:
是否有一些“常规”神经网络可以做到 NeuralODE 无法做到的事情?
- 传统的网络可以拟合非同胚函数,例如输出维度小于输入维度的函数,或者改变输入空间拓扑的函数。牛津有一篇很好的论文指出了这些问题,并表明您也可以通过添加额外的维度来解决它。当然,您可以通过将 ODE 网络与标准网络层组合来处理此问题。
- 传统的网络可以通过固定的计算量进行精确评估,并且通常训练速度更快。另外,使用标准网络,您不必为求解器选择容错。