来源商业新知网,原文标题:NeurIPS18最佳论文NeuralODE,现在有了TensorFlow实现 | 附56页讲解PPT
还记得NeurIPS 18的最佳论文Neural Ordinary Differential Equations(后简称NeuralODE)吗,最近,有一个小哥用TensorFlow实现了它。
今天,小哥kmkolasinski一口气抛出了NeuralODE的复现代码、Jupyter notebook笔记,还放出了56页的PPT,具体讲解了论文思路与求解方法,简洁清晰,在Reddit上引发热烈讨论。
来看具体实现过程。
啥是NeuralODE
这项研究来自多伦多大学向量研究所,一作陈天琦为华裔,本硕毕业于加拿大不列颠哥伦比亚大学,目前在多伦多大学读博。
在论文中,陈天琦等提出了一种新的深度神经网络模型家族:NeuralODE,它能进行自适应评估,并可以在控制计算速度和准确度之间进行权衡。
另外,NeuralODE也可以应用于时间序列建模、监督学习、密度估计中。
陈天琦等人研究了黑盒常微分方程(ODE)求解器作为模型组件,展此外,NeuralODE还可以应用于时间序列建模、监督学习、密度估计。
最后,作者推导了变量公式变化的瞬时版本,并开发了连续归一化流程,而且可以拓展到更大的层尺寸。
就是这篇论文,在4856篇NeurIPS 2018投稿中脱颖而出,成为4篇最佳论文之一。
就是这么厉害的研究,已经被小哥kmkolasinski实现了。
实现过程
在PPT和Jupyter Notebook中,小哥先解释了什么是ODE。ODE通常被用来描述很多动力系统,比如放射性衰变问题。
用放射性衰变的案例,小哥进行了详细解释。
然后,kmkolasinski继而展示了如何求解这个方程,也就是如何实现简单的黑盒求解器。
针对在神经网络提出问题函数的情况下,小哥对如何整合ODE进行了详细的解读。
以及用Adjoint方法Naive Approach两种方法计算梯度的优劣。
最后,小哥还推导了连续归一化流。
具体的实现代码可以在GitHub repo中找到,作者表示,只实现了几个求解积分的方法,包括简单的Euler和Runge-Kutta方法的高阶变种,即RK2和RK4。
讲解细致,代码也并不复杂,接下来就看你了~
— 完 —