NCDE
本文涉及些许NODE相关知识,可以参见另一篇博客:神经常微分方程(NODE)介绍
与NODE的比较
NCDE想解决的问题是NODE在方程求解过程中只利用到了初始状态的值,而忽略了中间时刻系统状态的影响,因此NCDE拟在每一预测时刻都利用到先前所有时刻的系统状态值,给出具有累积意义的预测结果。NODE一般的计算过程如下公式所述,旨在找到从输入数据 x x x到输出数据 y y y的映射,可以看出其中的积分过程即考虑到了累积时刻的影响,有别于NODE仅仅包含初值项的设置。在目标函数设置合理的情况下,我们可以将 l θ 1 , l θ 2 l_{\theta}^1,l_{\theta}^2 lθ1,lθ2分别视为解码器和编码器,从而实现任意时间点的数据生成。
y ≈ l θ 1 ( z T ) , w h e r e z t = z 0 + ∫ 0 t f θ ( z s ) d s a n d z 0 = l θ 2 ( x ) y\approx l_{\theta}^1(z_T),\ where\ z_t=z_0+\int_0^tf_{\theta}(z_s)ds\ and\ z_0=l^2_\theta(x) y≈lθ1(zT), where zt=z0+∫0tfθ(zs)ds and z0=lθ2(x)
当网络参数 θ \theta θ训练完成后,数据的生成过程只由初值 z 0 z_0 z0所唯一决定,而无法利用到后续时间点的数据。因此在实际应用层面,NODE更多的是作为ResNet的平替,并不能很好的对序列数据进行处理。以NODE的原始代码为例,针对阿基米德螺旋线数据生成过程,在训练过程是利用到了所有时间的数据对网络参数进行训练,但无论是在训练还是测试过程中,不同时间点的隐变量生成都是只使用了初始时刻的隐状态 z 0 z_0 z

NCDE(Neural Controlled Differential Equations)旨在解决NODE(Neural Ordinary Differential Equations)在处理序列数据时只依赖初始状态的局限。NODE通常用于静态数据的映射,而NCDE利用所有时间点的数据,更适合作为RNN的替代。NCDE的计算中,积分变量由时间变为时序值,通过自然三次样条插值模拟输入序列,使得模型能够考虑所有时间点的信息。这种方法允许NCDE在处理非等间隔采样的数据时进行批处理,并且可以直接使用NODE的计算工具。NCDE的实际应用中,需要计算插值函数并解特定的微分方程,以处理隐状态和时间点插值函数的导数。
最低0.47元/天 解锁文章
140

被折叠的 条评论
为什么被折叠?



