【论文夜读】陈天琦神作Neural Ordinary Differential Equations(NuerIPS2018最佳paper)
【論文夜讀】陳天琦神作Neural Ordinary Differential Equations(NuerIPS2018最佳paper)
在最近結(jié)束的 NeruIPS 2018 中,來自多倫多大學(xué)的陳天琦等研究者成為最佳論文的獲得者。在與機器之心的訪談中,陳天琦的導(dǎo)師 David Duvenaud 教授談起這位學(xué)生也是贊不絕口。Duvenaud 教授認(rèn)為陳天琦不僅是位理解能力超強的學(xué)生,鉆研起問題來也相當(dāng)認(rèn)真透徹。他說:「天琦很喜歡提出新想法,他有時會在我提出建議一周后再反饋:『老師你之前建議的方法不太合理。但是我研究出另外一套合理的方法,結(jié)果我也做出來了?!弧笵ucenaud 教授評價道,現(xiàn)如今人工智能熱度有增無減,教授能找到優(yōu)秀博士生基本如同「雞生蛋還是蛋生雞」的問題,頂尖學(xué)校的教授通常能快速地招納到博士生,「我很幸運地能在事業(yè)起步階段就遇到陳天琦如此優(yōu)秀的學(xué)生。」
本文的精粹
最近慢慢涌現(xiàn)了一些對該文的解讀,而我主要從定理推導(dǎo)的角度談?wù)勥@篇文章的一些精粹:比如文中關(guān)于一個導(dǎo)數(shù)計算的變量變元定理(它將一個不太容易計算的梯度?log?p(t)?t\frac{\partial \log p(t)}{\partial t}?t?logp(t)?轉(zhuǎn)化為了好計算的梯度?tr(dfdz(t))-tr( \frac{d f}{d z}(t))?tr(dzdf?(t)));
本文的核心內(nèi)容復(fù)習(xí)
在這里過一下這篇論文說了啥:大概就是根據(jù)常微分方程ODE的啟發(fā)引入了一種新型的神經(jīng)網(wǎng)絡(luò)ODE Net,區(qū)別于過去的多個離散層的神經(jīng)網(wǎng)(文中用ResNet作對比).總體來說是一篇比較偏理論,邏輯完善推導(dǎo)嚴(yán)密的論文;
常規(guī)的 ResNet 的層迭代相當(dāng)于:ht+1=ht+f(ht,θt)h_{t+1} = h_t + f(h_t, \theta_t)ht+1?=ht?+f(ht?,θt?);
這等價于一個微分方程的 Euler 迭代求解,如果用更多的層數(shù)和但更小的步長,可以優(yōu)化為:
dh(t)dt=f(h(t),t,θ)\frac{dh(t)}{dt} = f(h(t), t, \theta) dtdh(t)?=f(h(t),t,θ)
這里就是論文的全部核心idea了,剩下的問題是如何用于網(wǎng)絡(luò)訓(xùn)練.對于訓(xùn)練,作者展示了如何在不涉及任何特殊ODE求解器內(nèi)部操作的情況下(意思是所有的微分方程采樣一種通用的辦法求解),可擴展地反向傳播.這允許在更大的模型中對ODE進行端到端訓(xùn)練.
梯度變元定理
- 定理:Let x(t)x(t)x(t) be a finite continuous random variable with probability p(x(t))p(x(t))p(x(t)) dependent on time.Let dxdt=f(x(t),t)\frac{dx}{dt} = f(x(t), t)dtdx?=f(x(t),t) be a differential equation describing a continuous-in-time transformation of x(t)x(t)x(t).Assuming that fff is uniformly Lipschitz continuous in xxx and continuous in ttt, then the change in log probability also follows a differential equation(這是一堆眾所周知的前提條件,可以跳過):
?log?p(z(t))?t=?tr(dfdz(t))\frac{\partial \log p(z(t))}{\partial t} = -tr(\frac{d f}{d z}(t))?t?logp(z(t))?=?tr(dzdf?(t))
這里講講證明的核心思想,首先,將?\epsilon?時長后的zzz值表達為:z(t+?)=T?(z(t))z(t+\epsilon) = T_\epsilon({z}(t))z(t+?)=T??(z(t)),然后容易推導(dǎo)出:
?log?p(z(t))?t=?tr(lim??→0+?????zT?(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?logp(z(t))?=?tr(?→0+lim??????z??T??(z(t)))
然后對T?(z(t))T_\epsilon({z}(t))T??(z(t))作泰勒展開即可:
?log?p(z(t))?t=?tr(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?logp(z(t))?=?tr(?→0+lim??????z??(z+?f(z(t),t)+O(?2)+O(?3)+…))
=?tr(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 ) ) =?tr(?→0+lim?????(I+?z???f(z(t),t)+O(?2)+O(?3)+…))
=?tr(lim??→0+(??zf(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 ) )=?tr(?→0+lim?(?z??f(z(t),t)+O(?)+O(?2)+…))
=?tr(??zf(z(t),t))= -tr ( \frac{\partial }{\partial {z}} f({z}(t), t))=?tr(?z??f(z(t),t))
一點八卦
但是我們隱約感覺修過ODE的工科生貌似不難想到這個idea,果然,有人稱,這個idea是之前有人想到的:
知乎上一個人之前的idea
知乎上一個人的看法
誰是誰非,大家自己判斷吧;
總結(jié)
以上是生活随笔為你收集整理的【论文夜读】陈天琦神作Neural Ordinary Differential Equations(NuerIPS2018最佳paper)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根据accept-language 设置
- 下一篇: Python学习(4)——数学类问题解答