Neural ODEs (Oridinary Differential Equations)

Neural ODEs: breakdown of another deep learning breakthrough

常微分方程,一个栗子

d x d t + x = 1 \frac{dx}{dt}+x=1 dtdx+x=1

通用形式

d y d t = f ( t , y ) \frac{dy}{dt}=f(t,y) dtdy=f(t,y); y ( t 0 ) = y 0 y(t_0)=y_0 y(t0)=y0
y n + 1 = y n + f ( t n , y n ) ⋅ ( t n + 1 − t n ) y_{n+1} = y_n + f(t_n, y_n)\cdot(t_{n+1}-t_n) yn+1=yn+f(tn,yn)(tn+1tn)

神经ODE的主要思想:神经网络中的残差块链基本上是用欧拉方法求解的ODE

y n + 1 = y n + f ( t n , y n ) y_{n+1} = y_n + f(t_n, y_n) yn+1=yn+f(tn,yn)Rsenet的残差连接
在这种情况下,t=0就代指神经网络的第一层, x(0)归一化输入

ODESolveNet
ODESolve是一个函数,提供ODE的解。

nn = Network(
  Dense(...), # making some primary embedding
  ODESolve(...), # "infinite-layer neural network"
  Dense(...) # output layer
)

神经网络是一个可微函数,所以我们可以用基于梯度的优化例程来训练它。
如何在ODEsolve()里后向传播
这里可以使用一个数据的trick伴随灵敏度方法(adjoint sensitivity method)

Neural ODEs (Oridinary Differential Equations)_第1张图片

反向传播

关于这个还不是很理解,欢迎评论区讨论


但是我们需要注意的是,这个方法目前还不能很好用于土壤水,
因为我们一般关注非稳态流
土壤水方程

∂ θ ∂ t = ∂ ∂ z [ K ( h ) ( 1 + ∂ h ∂ z ) ] \frac{\partial \theta}{\partial t}=\frac{\partial}{\partial z}[K(h)(1+\frac{\partial h}{\partial z})] tθ=z[K(h)(1+zh)]

偏微分方程用以对非稳态流的数学描述,如是稳态流,上式变为常微分方程

你可能感兴趣的:(机器学习,神经网络,深度学习)