NIPS2018最佳论文解读:Neural Ordinary Differential Equations
原标题:NIPS2018最佳论文解读:Neural Ordinary Differential Equations
雷锋网 AI 科技评论按,不久前,NeurIPS 2018 在加拿大蒙特利尔召开,在这次著名会议上获得最佳论文奖之一的论文是《Neural Ordinary Differential Equations》,论文地址:。Branislav Holländer 在 towards data science 上对这篇论文进行了解读,雷锋网 AI 科技评论编译整理如下:
这篇论文的作者隶属于著名的多伦多大学向量研究所。在这篇文章中,我将尝试解释这篇论文的主要观点,并讨论它们对深度学习领域的潜在影响。该论文涉及到了常微分方程(ODE)、递归神经网络(RNN)和归一化流(NF)等概念,但我会尽可能直观地解释它的观点,让您可以在不太深入了解技术细节的情况下理解主要概念。如果你感兴趣的话,你可以去论文原稿中阅读这些细节。文章分为多个部分,每个部分解释论文中的一个或多个章节。
从序列变换到神经微分方程
如今,多神经网络体系结构(如 RNN 或残差网络)包含重复的层块,这些层块能够有序保留信息,并通过学习函数在每一步中对其进行更改。一般来说,这种网络可以用下面的方程来描述:
因此,ht是时间步长 t 的「隐藏」信息,f(ht,θt)是当前隐藏信息和参数θ的学习函数。本文提出的核心问题是,我们是否可以通过逐步减小步长 [t,t+1] 来提升目前这些网络的最优性能。我们可以想象这是逐步增加 RNN 中的评估数量,或者增加残差网络中的残差层数量。如果我们这样做,我们最终会得到上述方程的微分版本:
因为方程的解是一个函数(函数 h(t)),所以这种方程称为常微分方程(ode)。换句话说,通过求解方程,我们得到了所需的隐藏状态序列。我们必须在每次评估过程中,从初始状态 h0开始求解方程。这种问题也称为初值问题。
用「伴随法」计算模式求解器的梯度
数值求解一个 ODE 通常是通过积分来完成的。多年来,人们发明了很多积分方法,包括简单的 Euler 方法和 Runge-Kutta 方法的高阶变种。然而,这些方法在计算上都是相当密集的。在训练过程中尤其如此,它需要对积分步骤进行微分,以便能将网络参数θ的所有梯度相加,这会导致较高的内存成本。
本文提出了一种用 Pontryagin 的「伴随法」计算 ODE 梯度的替代方法。该方法通过求解第二个时间向后增加的 ODE,可以与所有的 ODE 积分器一起使用,并且占用较小的内存。让我们考虑最小化 ODE 求解器结果的损失函数,即:
在第二步中,使用了 ODE 解的定义,在第三步中,将 ODESolve 作为求解 ODE 的操作符引入。正如我前面提到的,这个操作符依赖于初始状态 z(t0)、数 f、初始和结束时间 t0、t1以及搜索的参数 θ。「伴随法」现在确定了损耗函数 w.r.t 的梯度,其隐藏状态为:
这个数量伴随着 ODE 的增加。
计算梯度 (上述方程要求的第一个梯度)现在可以通过向后求解增强的 ODE 来完成。为了完整性,下面的公式说明了如何计算神经网络函数参数的梯度 w.r.t:
如作者所述,整个梯度计算算法过程如下:
用于监督学习的 ODE 网络
接下来是论文中最有趣的部分:相关的应用。作者在论文中提到的第一个应用是在监督学习领域,即 MNIST 书写数字分类。结果表明,该方法与参数较少的残差网络性能相当。本文中用于评估的网络对输入图像进行两次采样,然后应用于 6 个残差块。总之,网络包含大约 60 万个参数。ODESolve 网络使用单个 ODESolve 模块替换 6 层网络。此外,作者还对 RK 网络进行了测试,除了使用 Runge-Kutta 方法直接反向传播误差外,该网络与 RK 网络相似。如上所述,您可以将传统神经网络中的层数与 ODE 网络中的评估数联系起来。这两个网络的参数个数为 22 万个,重要的结果是,使用大约 1/3 的参数,RK 网络和 ODE 网络的性能与残差网络大致相同。此外,ODE 网络的内存复杂性是恒定的(见下图)。
此外,可以调整 ODE 解的精度以最大限度地提高计算性能。例如,一个人可以进行高精度的训练,并降低评估准确性(更多详细信息,请参阅原文)。
连续归一化流
归一化流是分布的可逆变换。它们可以通过一系列非线性变换将简单的概率密度转换为复杂的概率密度,正如在神经网络中一样。因此,它们利用分布中的变量转换公式:
版权保护: 本文由 沃派博客-沃派网 编辑,转载请保留链接: http://www.bdice.cn/html/22041.html