【论文夜读】陈天琦神作Neural Ordinary Differential Equations(NuerIPS2018最佳paper)

【论文夜读】陈天琦神作Neural Ordinary Differential Equations(NuerIPS2018最佳paper)

在最近结束的 NeruIPS 2018 中,来自多伦多大学的陈天琦等研究者成为最佳论文的获得者。在与机器之心的访谈中,陈天琦的导师 David Duvenaud 教授谈起这位学生也是赞不绝口。Duvenaud 教授认为陈天琦不仅是位理解能力超强的学生,钻研起问题来也相当认真透彻。他说:「天琦很喜欢提出新想法,他有时会在我提出建议一周后再反馈:『老师你之前建议的方法不太合理。但是我研究出另外一套合理的方法,结果我也做出来了。』」Ducenaud 教授评价道,现如今人工智能热度有增无减,教授能找到优秀博士生基本如同「鸡生蛋还是蛋生鸡」的问题,顶尖学校的教授通常能快速地招纳到博士生,「我很幸运地能在事业起步阶段就遇到陈天琦如此优秀的学生。」


本文的精粹

最近慢慢涌现了一些对该文的解读,而我主要从定理推导的角度谈谈这篇文章的一些精粹:比如文中关于一个导数计算的变量变元定理(它将一个不太容易计算的梯度 log p ( t ) t \frac{\partial \log p(t)}{\partial t} 转化为了好计算的梯度 t r ( d f d z ( t ) ) -tr( \frac{d f}{d z}(t)) );

在这里插入图片描述


本文的核心内容复习

在这里过一下这篇论文说了啥:大概就是根据常微分方程ODE的启发引入了一种新型的神经网络ODE Net,区别于过去的多个离散层的神经网(文中用ResNet作对比).总体来说是一篇比较偏理论,逻辑完善推导严密的论文;

常规的 ResNet 的层迭代相当于: h t + 1 = h t + f ( h t , θ t ) h_{t+1} = h_t + f(h_t, \theta_t) ;
这等价于一个微分方程的 Euler 迭代求解,如果用更多的层数和但更小的步长,可以优化为:
d h ( t ) d t = f ( h ( t ) , t , θ ) \frac{dh(t)}{dt} = f(h(t), t, \theta)

这里就是论文的全部核心idea了,剩下的问题是如何用于网络训练.对于训练,作者展示了如何在不涉及任何特殊ODE求解器内部操作的情况下(意思是所有的微分方程采样一种通用的办法求解),可扩展地反向传播.这允许在更大的模型中对ODE进行端到端训练.


梯度变元定理

  • 定理:Let x ( t ) x(t) be a finite continuous random variable with probability p ( x ( t ) ) p(x(t)) dependent on time.Let d x d t = f ( x ( t ) , t ) \frac{dx}{dt} = f(x(t), t) be a differential equation describing a continuous-in-time transformation of x ( t ) x(t) .Assuming that f f is uniformly Lipschitz continuous in x x and continuous in t t , then the change in log probability also follows a differential equation(这是一堆众所周知的前提条件,可以跳过):

log p ( z ( t ) ) t = t r ( d f d z ( t ) ) \frac{\partial \log p(z(t))}{\partial t} = -tr(\frac{d f}{d z}(t))

这里讲讲证明的核心思想,首先,将 ϵ \epsilon 时长后的 z z 值表达为: z ( t + ϵ ) = T ϵ ( z ( t ) ) z(t+\epsilon) = T_\epsilon({z}(t)) ,然后容易推导出:

log p ( z ( t ) ) t = t r ( lim ϵ 0 + ϵ z T ϵ ( z ( t ) ) ) \frac{\partial\log p({z}(t))}{\partial t}=-tr( \lim_{\epsilon\rightarrow 0^+} \frac{\partial }{\partial \epsilon} \frac{\partial }{\partial {z}} T_\epsilon({z}(t)))

然后对 T ϵ ( z ( t ) ) T_\epsilon({z}(t)) 作泰勒展开即可:

log p ( z ( t ) ) t = t r ( lim ϵ 0 + ϵ z ( z + ϵ f ( z ( t ) , t ) + O ( ϵ 2 ) + O ( ϵ 3 ) +   ) ) \frac{\partial\log p({z}(t))}{\partial t}= -tr ( \lim_{\epsilon\rightarrow0^+} \frac{\partial }{\partial \epsilon} \frac{\partial }{\partial {z}} ( {z} + \epsilon f({z}(t), t) + \mathcal{O}(\epsilon^2) + \mathcal{O}(\epsilon^3) + \dots ) )
= t r ( lim ϵ 0 + ϵ ( I + z ϵ f ( z ( t ) , t ) + O ( ϵ 2 ) + O ( ϵ 3 ) +   ) ) = -tr ( \lim_{\epsilon\rightarrow0^+} \frac{\partial }{\partial \epsilon} ( I + \frac{\partial }{\partial {z}}\epsilon f({z}(t), t) + \mathcal{O}(\epsilon^2) + \mathcal{O}(\epsilon^3) + \dots ) )
= t r ( lim ϵ 0 + ( z f ( z ( t ) , t ) + O ( ϵ ) + O ( ϵ 2 ) +   ) ) = -tr ( \lim_{\epsilon\rightarrow0^+} (\frac{\partial }{\partial {z}} f({z}(t), t) + \mathcal{O}(\epsilon) + \mathcal{O}(\epsilon^2) + \dots ) )
= t r ( z f ( z ( t ) , t ) ) = -tr ( \frac{\partial }{\partial {z}} f({z}(t), t))


一点八卦

但是我们隐约感觉修过ODE的工科生貌似不难想到这个idea,果然,有人称,这个idea是之前有人想到的:

知乎上一个人之前的idea

知乎上一个人的看法

谁是谁非,大家自己判断吧;

发布了142 篇原创文章 · 获赞 71 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/hanss2/article/details/85331863