【论文阅读27】RODE-Net——不确定性引入与GAN的精妙引入

许久的颓废之后重新开始看文章,这次给大家带来一首隐式meta和GAN结合的思想之歌!

RODE-Net: Learning Ordinary Differential Equations with Randomness from Data

Overview & Target

这是董彬老师组于2020/06挂在Arxiv上的文章,文章链接:https://arxiv.org/abs/2006.02377

文献主要研究对象叫RODE,全称Random ordinary differential equations,指的是ODE系统中的参数看成随机变量。研究的基本问题还是从ODE的轨线(轨迹)数据学习背后的方程究竟是什么

不过读完了文章不是很推荐,因为走的还是拟合(如果ODE-Net基本模型有解释性那么不错)的路子。只是觉得有些思路可以借鉴

Background & Motivation

文献背景

  • RODE这类方程引入了一定的随机性
  • 实际数据可能有不同量纲的特征,这对拟合影响很大

过去方法缺点:

  1. 如果采用暴力拟合,总归是不好的
  2. 从实际数据获取背后的ODE系统往往需要强先验(ODE形式的归纳偏置)
  3. 即使加了强先验,大家过去也假设参数固定,因此只是平均意义下近似真实ODE系统;真实情况下还有随机性

进一步地,文章的动机就出来了,其实就是一般的从轨线找背后ODE规律的问题,只是相当于直接把原来的ODE中参数添加先验,期以引入不确定性更符合实际,然后为了拟合加了GAN的对抗机制,请见下文

Method

Data generation

刚开始看不懂数据是怎么采样出来的,后来明白了,数据生成的过程以文中 $(4.1)$ 节为例。先有模型参数的归纳偏置即先验假设,然后生成 $M$ 组参数,这样就有 $M$ 个ODE,选择初始点 $N_i$ 个,分别用4阶龙格-库塔法生成轨线,这样每个确定的ODE采样了 $N_i$ 条轨线,共 $M$ 个确定的ODE。所以最后得到的数据就是

其中 $(1)$ 中 $x$ 是其实是轨线向量,下标 $\eta_i$ 就是每次采样的参数,上标 $j$ 表示初值的编号,后面的 $t_k$ 就是龙格-库塔得到的不同采样时刻

原文表述:

we generate data $x_{\eta_i}^j(t_k)$ by solving $ODE-\eta_i$ using the fourth order Runge-Kutta method with $N_i$ different initial values$x_{\eta_i}^j(t_0),j=1,\cdots,k$

RODE-Net

文章提出的引入不确定性的模型,以及对应的网络模型称为RODE-Net。前者即:

其中 $\eta$ 就是假定有先验分布的参数。后者RODE-Net的结构图如下:

ps:上面的先验假设应该是可以嵌套的

这个结构里有如下亮点:

  • 中间的ODE-Net其实就可以是以往的暴力拟合框架,这里文章用了所谓的SymNet中包含了符号运算,内蕴了dynamic操作,因此某种程度上有可解释性。这个SymNet我不知道具体是怎么进行符号运算的,但是我推测是他们组PDE-Net2.0中卷积相关的操作,这个可以;但是后文提到引入GAN的目的之一是避免符号预算的求导,我就不懂了,既然符号运算不便求导,那主网络是怎么BP的?
  • 基础模型ODE-Net之外引入GAN,目的之一是避免SymNet中符号运算求导,目的之二是提供原网络参数更好的监督,进而形成目的三是作为了原网络的正则。联想到之前的ODE2VAE应该是有类似的考虑!
  • 引入GAN的同时有meta-learning的味道,体现在GAN的double使用,生成之后反过来指导主网络的训练,类比一下是不是所有模型与GAN嵌套都有这个作用,生成的数据质量越来越高,乃至接近于meta数据,大概也是为什么GAN效果好的解释之一?

RODE-Net中具体用的ODE-Net主模型就是PDE-Net中变过来的带有符号运算性质的网络;GAN用了WGAN(Wasserstein GAN),细节应该问题不大

最后讲一下整个RODE-Net是怎么训练的以及其目标函数,从这里感觉,其训练方式是有meta-learning的味道的,这个GAN的double使用,但是loss上看还是所谓的外练筋骨皮

训练的过程很像meta方法。先是主网络正常训练,有数据点拟合的监督和对应于异常点不容忍的Huber正则;第二步是第一步得到的模型参数生成,扔到WGAN里训练一下,期中也加了一个梯度惩罚正则,即WGAN-GP;第三步是WGAN返回来作为主模型的正则,希望对抗前后主模型的参数不要相差过大,这样提供了一种整体上的控制

Huber损失介绍,介于 $L_1$ 和 $L_2$ 之间,思想是调整对异常的容忍程度,因此有额外的一个超参数,很棒,可以日后借鉴:

知乎用户景略集智的专栏文章机器学习从业者必知的5种回归损失函数,细节满满

博客园用户nowgood的博客Huber Loss,主要是函数的介绍

Pros & Cons

Pros
RODE建模的不确定性是指参数本身的不确定性,实际意义挺好 文章有一处不懂的:既然符号运算不便求导而引入GAN,那主网络是怎么BP的
GAN交替使用,相当于用两个GAN,有meta的味道 这里的多次正则也只是相对于ob数据的,没有真正意义上的泛化
GAN作为数据驱动正则的思想(目前比 $L_1$ 效果上好) 文章最后提了一句先验引入可以使高维参数降维,我寻思着不是一般升维了…
GAN和RODE的”R”天然契合,因为GAN本身就是参数分布的一种估计 文章最后说non-transparency,确实某种程度上没有建模深层次的dynamic性质(符号运算?)

References

这次会用EndNote了,试试APA 7th格式,其它参考链接见文中注释部分

[1] Liu, J., Long, Z., Wang, R., Sun, J., & Dong, B. (2020). RODE-Net: Learning Ordinary Differential Equations with Randomness from Data. arXiv:2006.02377. Retrieved June 01, 2020, from https://ui.adsabs.harvard.edu/abs/2020arXiv200602377L