【论文略读1】

此博客略读文献列表:

  1. Densely Connected Convolutional Networks(写完笔记之后觉得略读个🔨…)

  2. Augmented Neural ODEs

  3. Model-based Reinforcement Learning for Semi-Markov Decision Processes with Neural ODEs

    updated on 12th, Oct

  4. DelugeNets: Deep Networks with Efficient and Flexible Cross-layer Information Inflows(读得不太懂…)

    updated on 12th, Oct

  5. IDENT: Identifying Differential Equations with Numerical Time Evolution

    updated on 20th, Oct

最近读文章有两个比较大的困惑,一个是速度很慢,因为读得相对还是有点细的,很多细节没怎么放过;另一个是效率的问题,即使做了一堆堆的笔记,也未必能把重点都表现出来,甚至还会混淆文章重点。

因此考虑锻炼自己的略读能力,不过略读论文毕竟不是读网络小说,看过不能随随便便丢掉。而觉得单开博客记录略读笔记有些浪费空间,所以决定开一些略读博客,把略读的笔记集中起来,方便日后查阅。

Densely Connected Convolutional Networks

读这篇文章是因为我希望了解一些网络跨层连接的知识。感觉这个文章关系很大也比较基础,就拿来了

Why DenseNet?

该网络跨层模型的背景是CNN若在输入输出两端之间有更短的连接时效果一般更好(没去找这个结论的出处),基于此,本文的初始目的应当是减小CNN网络中层与层之间的连接长度。

What’s and How DenseNet?

这个DenseNet名称的来源是因为给CNN网络加了跨层连接,使得网络更加“密集连结”,因此就称为DenseNet了。注意这里DenseNet还是一个CNN的结构

而它的跨层也是真的进行了完全跨层,假设网络一共 $L$ 层,比如原文的图 $1$ 就是5层,输入和输出也各算一层。那么所有层与层之间的连接数(正向)有 $\displaystyle 1+2+\cdots+L = \dfrac{L(L+1)}{2}$,画个图自己连一下就推出来了

由于跨层连接是forward的,它并没有考虑反传,DenseNet考虑每个layer的输入都是前面所有layer输出的特征图的concatenating(这隐含了靠后layer输入可能维度大的问题),也就是说把前面所有的特征图都通通用上了😄

Advantages

这个是文章直接列的,我觉得都差不多,比较有道理,就也通通列出来:

  • 保持了CNN的结构,可以堆砌到一般网络中,好像有个Dense层的命令就是干这个的

  • 真的是跨层连接啊,都是forward方向的,有加强特征前向传播的意思

  • 跨层的方式是特征图的充(全)分(部)重复使用,这进一步有一些优点:

    • 特征图的充分利用,其实是保持了数据信息流的完整性

    • 不用像其它模型每次训练都重新学习大量特征图导致网络的参数量减小,计算消耗减小

      Why?特征图该有还是有啊,网络还是那么多层,哪里参数不用学习了?

    • 特征图充分利用,可以看成是良好的特征提取器,方式包括特征图的reuse,恒等映射的使用,深度监督(最后的loss在每一层都对之前的特征图有梯度?我猜是这个意思)的使用,多样化的深度(我觉得是指跨层变相加深网络深度?)

  • 实验效果SOTA啊,且实验发现DenseNet参数量增加时,模型性能保持增加,没有出现明显的过拟合

  • 缓解了梯度消失问题

    暂时没看出来在哪里…

最后ps一下,之前提到“靠后layer输入可能维度大”的问题,原文对此似乎有个操作,精心设计了一些结构,应该是通过每次下采样(原图图2)减小了特征图的深度,以及有一些 $1\times 1$ 卷积和pooling的操作,等等

Thinking

  • 堆叠特征图是不是有些冗余的感觉呢❓
  • 有没有反向的跨层?不知道会不会有什么意义🙄
  • “保持了数据信息流的完整性”这个说法与流模型的建模有关联么🙊
  • 直接通通跨层有些暴力,有没有后续工作做部分跨层的选择呢🤔

References

DenseNetIdentity mappings

[1] G. Huang, Z. Liu, L. Van Der Maaten, and K. Q. Weinberger. Densely connected convolutional networks. In 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 2261–2269, Los Alamitos, CA, USA, jul 2017. IEEE Computer Society.

[2] Kaiming He, X. Zhang, Shaoqing Ren, and Jian Sun. Identity mappings in deep residual networks. ArXiv, abs/1603.05027, 2016.

Augmented Neural ODEs

这篇文章本来打算列为精读,但是一方面读了很久了,另一方面我能写的其实不多,所(偷)以(懒)就列为略读了。

文献链接:https://arxiv.org/abs/1904.01681v2http://papers.nips.cc/paper/8577-augmented-neural-odes

My Marvelous Confusion (solved)

已经读了很久了,是因为有一个问题一直想不通,直到今天上午开始写总结才反应过来是怎么一回事😭。就是文章的proposition 1提出ODE的流,即原来的NODE函数不能描述这样的一个函数:

ps: 这样的一个流函数希望把ODE $\displaystyle \dfrac{h(t)}{dt} = f(h(t), t),\ h(t_0) =h(0) \triangleq x_0$ 中的初始状态 $x_0$ 映射到某一固定时刻 $t_1$ 的状态 $h(t_1)$,即 $g(x):h(t_0)\mapsto h(t_1)$。但是我想了很长时间,暂时都没有举出一个这样的例子😭…后来才反应过来,这他🐱是举不出例子的啊,这样的轨线不存在啊啊啊啊啊啊啊啊啊

但是我之前想,为什么要去要求NODE描述这样的一个表示轨线相交的函数呢?不是已经证明了这样的函数不能成为一个ODE的流函数么?这样的 $g(x)$ 作为所谓的“流函数”应该是不存在的,那你去学习个🔨❓

后来又想了想,如果能采用增广维度的方式,确实,在子空间中其实就不存在轨线相交的情形了,所以ANODE其实是通过维度的增广扩宽了NODE能学到的函数空间吧,这样就解决了我的困惑了…

Why ANODE

为什么读这个文章呢?

  • 人家是NIPS2019
  • 最近顺着ODE看这个,挺有意思

这个文章是核心思想是在NODE的基础上进行数据(状态)的维度增广,通过增广的那部分维度拓宽了可以学习到的函数空间,i.e. 学到了一些原来NODE在原空间中学习不到的函数

How ANODE

没啥可说的了,原来NODE是考虑ODE方程(不要求自治)

但是现在增广维度,可以克服原空间中轨线相交型流函数的学习:

我看到这个式子就全明白轨线相交、NODE学习不了的函数这些东西都是在干啥了~

Advantages

直接列举:

  • 从思想出发,基础的NODE学习不了有的流函数,增广维度可以克服这一点
  • 所提ANODE表达能力🚀,稳定性🚀,泛化🚀,计算量➖🚀(均未确认)
  • 保留了NODE的一个优点,保持了原始输入空间的拓扑(阿巴阿巴…)

Thinking

有个固有的想法是:

  • 维度的增广本来就是在拓宽模型的函数空间的,从这角度提出ANODE的话,就是inductive的
  • 而从这个角度——NODE不能学习的函数,来引入维度增广的思想,这样就是deductive的

这样一想,这篇ANODE真的就是个idea啊,顶会密码🔞get嗷嗷嗷嗷嗷嗷嗷🤣

References

[1] Emilien Dupont, Arnaud Doucet, and Yee Whye Teh. Augmented neural odes. In H. Wallach, H. Larochelle, A. Beygelzimer, F. d’Alché-Buc, E. Fox, and R. Garnett, editors, Advances in Neural Information Processing Systems 32, pages 3140–3150. Curran Associates, Inc., 2019.

Model-based Reinforcement Learning for Semi-Markov Decision Processes with Neural ODEs

这篇文章是NODE在RL上进行应用的例子,2020/06/29挂在了ArXiv上,文献地址链接

RL Concepts

这篇文章涉及到了很多RL,但是我没怎么细看过,所以需要先补一些文中出现的概念。

  • RL中的model-free方法,指的是啥?懒得总结,引用奶油花诶在知乎问题model-based和model-free,on-policy和off-policy区别?中的解释:

    model-free, 是agent和environment进行实时的交互;而model-based,从名字上我们就能感受到的到,是先根据真实的情况先学得一个model,即比model-free多了一个对真实世界建模的过程罢了”

    由于直接由agent和环境交互学习,这里应当在训练中用到大量训练数据

Why RL Framework for SMDPs with NODE?

本文针对的问题还是对连续的ODE动力系统进行建模。一个背景需求就是现实中很多数据都是连续化的。

过去是怎么做的呢?文中Intro部分第二段开头2-4段给出了过去的方法列表,缺点一是统一的,使用了简单的线性函数估计器;缺点二是这些方法基本上是model-free的,似乎需要在训练中用到大量训练数据;缺点三是它们似乎都是启发式的方法,把连续的系统离散化成离散动力系统,再用标准RL方法,自然,离散话若是粗糙了会丢失信息,离散太细了又太耗时。

ps:对缺点1,那为啥不用复杂点的呢❓

What’s RL Framework for SMDPs with NODE

该文所提方法是利用NODE建立对SMDPs的基于模型的RL框架,其中SMDPs是本文针对的基本模型,全名semi-Markov decision processes

说实话,RL我真的一下子看不下去…

这个SMDPs的数学表达大概是:

其中元组 $(\mathcal{S}, \mathcal{A}, \mathcal{R}, \mathcal{T}, \gamma)$ 中,$\mathcal{S}$ 是状态空间,$\mathcal{A}$ 是行动空间,$\mathcal{R}$ 代表行动的奖励函数,即 $r = R(s, a, s^\prime)$ ,其中奖励函数也可以有不(改)同(进)的表达形式,$\mathcal{T}$ 是采取每次行动的时间间隔设置,$\gamma \in (0,1]$ 是每一步奖励的衰减因子(RL中的一般要求)。最后说一下状态转移规则 $\mathcal{P}$,具体的意义就是给定当前状态和行动给出下一次状态,也可以给出一些附加的辅助变量,一般的形式是 $P(s^\prime|s,a)$。

以上是一般强化学习对SMDPs过程的设置,现在考虑了NODE的应用,具体的方式是对状态变量 $s$ 进行处理。我们把 $s$ 看作像图像一类的原始特征,对它进行编码得到隐空间中的隐变量 $z$,形成编码的过程。按照原文的说法,这就是压缩了原始的状态 $s$。

对于隐空间变量 $z$,我们把它看作NODE模拟的状态,这样的状态维度是可控的,而且暗含了模拟状态变量 $s$ 在低维空间中显示出的流模型,流的变化规律,这一点我很喜欢!

Omitted Details

略读,很多细节没有再去深入了。部分为:

  • 原文其实还有一个辅助模型,应该是针对RL学习的过程的,用来优化训练过程
  • 作者表示这是首篇结合RL和NODE的文章,思想可借鉴

Pros and Cons

Pros Cons
首次结合RL和NODE broader impact中提到应用的时候要小心(必须啊)
在隐空间中完成模拟连续动力系统背后状态的流模型 TBD

References

[1] Jianzhun Du, Joseph Futoma, and Finale Doshi-Velez. Model-based reinforcement learning for semi-markov decision processes with neural odes, 2020.

DelugeNets: Deep Networks with Efficient and Flexible Cross-layer Information Inflows

这篇文章是2017CVPR的文章,作者来自新加坡南洋理工,和阿里巴巴,2020/10/12在百度学术上查到的引用量为10。文献地址可以有ICCV 2017 Open Access RepositoryArXiv: 1611.05552

说实话这篇文章没有太看明白,既然是略读,就把已经读得的思考写下来吧。

卷积概念回顾

这篇文章中有个关键的卷积操作,叫cross-layer depthwise convolution

这个卷积操作其实还是一种separable convolution,本文在Intro部分提到这是本文的思想来源。后者操作则相当于把一般的卷积进行分块,分解为depthwise convolutionpointwise convolution两部分 $^{[3]}$

Why and What’s DelugeNets?

这个概念看起来很有意思,但是这个所谓的洪(什)水(么)网络是啥呢,我也不知道。所以按顺序慢慢来,先讲怎么来的,再概括这是啥。

首先声明DelugeNets基于DenseNet $^{[5]}$ ,并由separable convolution启发得到,但我们先从ResNet讲起。

ResNet的一大特点是信息流毫无障碍,通过残差的形式一层接一层,梯度传播的时候用链式法则非常轻松。但是这样一溜烟传播过去有个缺点,就是后面隐层可能难以突出前面特定隐层的信息,进而阻碍ResNet学习网络跨层连接的信息。

而DenseNet作者在Intro部分介绍了一大堆DenseNet的缺点,然后,提出了DelugeNets。

DenseNet具体的缺点有:

https://blog.csdn.net/qq_19329785/article/details/84677841

https://www.cnblogs.com/Alliswell-WP/p/Deeplearning_CNN_Review001.html

References

[1] Jason Kuen, Xiangfei Kong, Gang Wang, and Yap-Peng Tan. Delugenets: Deep networks with efficient and flexible cross-layer information inflows. In Proceedings of the IEEE International Conference on Computer Vision (ICCV) Workshops, Oct 2017.

[2] Wei Ji. 使用Relu的原因及好处[EB/OL]. https://blog.csdn.net/qq_19329785/article/details/84677841, 2018-12-01.

[3] YIN GUOBING. 卷积神经网络中的Separable Convolution[EB/OL]. https://yinguobing.com/separable-convolution/#fnref2, 2018-02-27.

[4] 干巴他爹. Depthwise卷积与Pointwise卷积[EB/OL]. https://blog.csdn.net/tintinetmilou/article/details/81607721, 2018-08-12.

[5] G. Huang, Z. Liu, L. Van Der Maaten, and K. Q. Weinberger. Densely connected convolutional networks. In 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 2261–2269, Los Alamitos, CA, USA, jul 2017. IEEE Computer Society.

IDENT: Identifying Differential Equations with Numerical Time Evolution

文献链接: http://people.math.gatech.edu/~wliao60/Research/papers/IDENT.pdfhttps://arxiv.org/abs/1904.03538

这个文章很长,所以不总结了,走翻译的老路子。而且这里只把算法的思路搞明白,看看大家是怎么做的,具体证明的细节都略掉。

摘要——姑且算是文献简介

背景问题是如何由离散的时间序列数据来识别DE的模式,其难处是noise即便小也会炸,且非线性性非常复杂,容易存在多成分。这个问题的一些偏执归纳是背后的流模型——PDE是一系列成分的线性组合,因此主要的问题抽象为找DE多成分的系数

对此问题,提出IDENT(Identifying Differential Equations with Numerical Time Evolution)方法,其训练的约束用到了是Time Evolution Error (TEE),顺便提出噪声等级的度量Noise-to-Signal ratio。后面一堆方法就不管了。

文献思路翻译

$2.1$ 节全是记号,没问题。 $2.2$ 定义问题:

假设数据背后的PDE模型为分量的线性组合:

一共 $10=4+3+2+1$ 个分量: $1, u, u^2, u_x, u_x^2, uu_x, u_{xx}, u_{xx}^2, uu_{xx}, u_xu_{xx}$。其中

其中每个单项式是一个特征,特征数 $N_3 = 10$ ,RHS的线性组合可以看成 $\mathcal{F}$ 的泰勒展开。

已有的时间数据(注意还有个已知条件是非周期的边界条件)是函数值 $u_i^n = u(x_i, t_n)$ ,以及时空间的分割方式, $(x_i, t_n), i = 1, \cdots, N_1, n = 1, \cdots, N_2$ ,网格式的数据。离散数据可以写成矩阵的形式:

啊这,这排版功力绝了~🍗你阿巴阿巴了么💯

目标问题就是求解系数 $\mathbf{a}$ ,而普通的实际问题中,RHS的形式不一定有这么多项,所以系数 $\mathbf{a}$ 的形式很可能是稀疏的。进一步,系数 $\mathbf{a}$ 可能是和 $x$ 相关的,所有的分量都可以写成 $x$ 的函数的形式;再进一步,系数 $\mathbf{a}(x)$ 可以用基函数的形式表出,如分段线性连续(设分 $L$ 段)基函数。那么目标函数可以考虑为泛函 $L^p$ 范数(应该是这样):

在基函数的分解形式下, $\mathbf{F}$ 可以把每一列(特征)的基都写开,那么维度变成 $\mathbb{R}^{N_1N_2\times N_3L}$ ,同理, $\mathbf{a}$ 和 $\mathbf{b}$ 的维度也相应改变。

此时由于系数 $\mathbf{a}(x)$ 成为真实 $\mathbf{a}$ 的近似表出,那么离散数据对应的矩阵方程可以分离出残差项,即

上式需要注意维度已经被基函数扩大了,那么目标函数也变成

$2.3$ 节正式提出IDENT算法:

首先要由函数值导出对时间 $t$ 的导数,即方程中的 $\mathbf{b}$ ,直接用差分近似(文章这个地方好像打错了个下标):

这就作为 $\mathbf{b}$ 的近似 $\mathbf{\hat{b}}$ 的分量。

其它的特征,包括 $u_x, u_{xx}$ 等不直接用一阶差分近似,引用别人的方法,叫做5点ENO,哎,这样一顿操作,大矩阵 $\mathbf{F}$ 的近似出来了,记作 $\hat{\mathbf{F}}$ 。这样近似基本上都弄好了。原先的矩阵方程成为:

总的近似误差 $\mathbf{e}$ 满足(应该是后面证明的)

第二步似乎就是求解了?不,不是求解!第二步是用LASSO筛选出稀疏的成分,判断哪些特征对应的系数是比较重要的,方法是使用了LASSO并构造了带 $L_1$ 稀疏正则的能量函数。

第三步则是根据已经知道了方程中含有哪些重要的成分(特征),再用TEE方法(Time Evolution Error)最小二乘进行拟合,得到最后的稀疏系数。

这篇文章后面其实还有很多内容,但是感觉不太能看得下去了,先码在这里,把后面的一些重点列在这里:

  1. Why LASSO 选取稀疏特征
  2. TEE效果不错
  3. 噪声水平指标NSR:Noise-to-Signal Ratio
  4. 对噪声稳健性及采样方法

Reference

[1] Sung Ha Kang, Wenjing Liao, and Yingjie Liu. Ident: Identifying differential equations with numerical time evolution, 2019.