栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Neural ODE introduction

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Neural ODE introduction

Neural ODE和Resnet有很多类似之处,两者的表达式非常相似,首先看一下resnet的表达式:
h t + 1 = h t + f ( h t , θ t ) h_{t+1} = h_{t}+f(h_{t},theta_{t}) ht+1​=ht​+f(ht​,θt​)
当我们增加层数,并且逐渐缩短步长,网络层将趋于连续。我们使用由神经网络指定的常微分方程 (ODE) 参数化隐藏单元的连续过程:
d h ( t ) d t = f ( h ( t ) , t , θ ) frac{dh(t)}{dt}=f(h(t),t,theta) dtdh(t)​=f(h(t),t,θ)
因此当我们给定一个初值 h ( 0 ) h(0) h(0),就会得到一个微分方程的解 h ( T ) h(T) h(T)。它代表了隐藏状态随时间变化的序列,若能得出该常微分方程在时刻 T T T的数值解,那么就相当于完成了前向传播。这样,神经网络就变成了一个常微分动力系统,它的训练和预测都可以归结为ODE的求解问题。这种连续化表示在时间序列分析,交通预测会有更精准的表征,因此在适当的场景我们可以利用ode神经网络去替换resnet。
他有以下优势:
1.内存优化
对于Neural ODE来说,若直接通过积分器来做反向传播,则需要对一个积分求微分,内存开销会很大,且计算的误差会逐渐累加,因此,作者采用伴随灵敏度方法(adjoint sensitivity method) 来计算ODE的梯度,该方法将梯度的计算归结为解一个ODE,该ODE能够简单地调用ODE Solver求解。值得注意的是,如果让参数依赖于时间,那参数就不是一系列离散的值了,而是一个连续的高维函数。
2.自适应计算
在评估或训练过程中,通过显式地改变数值积分的精度,我们可以自由地权衡模型的速度和精度,比如,我们可以花更多的时间去训练一个高精度的模型,而在评估预测时降低精度以提高系统的响应速度。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/981995.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号