一种关于Neural ODE的新架构的思考
Neural ODE的基本形式为:
dX/dt = f(X(t), t, W)
其中f代表任意一个神经网络,W为网络f的权重。
在上一篇我们讨论过,Neural ODE既是将离散网络连续化又是一种ResNet。
现在的问题在于,上面形式的Neural ODE的参数W,并不会随其层数t而变化,这就使Neural ODE更像是一种连续化的RNN,在不同层数t上共享的参数可能会使其拟合效果并不一定更好。
为了解决这个可能存在的问题,从Transformer网络架构中得到灵感,我们可以让参数或者权重W,随t而变化,即W(t)。
那么如何组织W(t)的形式使它变得可训练就成了一个问题。一种想法是泰勒展开或傅里叶展开,如:
W(t) = a0+a1*t+a2*t^2+...
然后训练aj (j = 0, 1, 2, ...)。但是我们还有更好的想法。当已知t与W之间存在函数关系,但是并不知道具体的函数关系时,我们充分利用统计学,让神经网络代劳,即:
W(t) = net(t, θ)
net(t, θ)是一个输入为t,参数为θ,输出为W的神经网络,是一个升维的过程,将标量t映射为向量/矩阵W。
这样,我们可以得到一种关于Neural ODE的新架构:
dX/dt = f1(X(t), W(t))
f1为任意神经网络,W为权重,Neural ODE作为一个“连续的”神经网络有t层,而f1作为一个“离散的”神经网络有层数i, i∈N。神经网络f1每层的权重Wi也分别用神经网络f2i表示:
Wi(t) = f2i(t, θi)
这样,Neural ODE依托于网络f1,而网络f1依托于i个网络f2i,训练Neural ODE就相当于训练参数θi, i∈N。相当于Neural ODE每层(t取不同值)的权重W都不一样,随t变化。
另外,由于f1是任意的神经网络,所以f1可以取Transformer,也许效果会更佳。

