论文笔记:ARTNet、Non-local Neural Networks

《Appearance-and-Relation Networks for Video Classification》

链接: https://arxiv.org/abs/1711.09125.
论文笔记:ARTNet、Non-local Neural Networks
这篇文章中,作者认为在分类视频工作时最主要要抓住两点,1是每一帧的静态外观,2、是跨多帧之间的时序关系。

帧的静态外观很好提取,处理视频最重要的难点就在于如何表示多帧之间的时序关系。主流的做法有两种,1是双流架构,用光流图表示时序信息,2是3DCNN。这篇论文主要的贡献在于提出了一种新的架构,叫作ARTNet,它由多个SMART组成,仅用RGB帧输入,实现端到端的训练。

什么是SMART?

论文笔记:ARTNet、Non-local Neural Networks
看上图的c部分,SMART的输入端是RGB帧(后面的可以是处理后的特征图),在SMART中有两个重要的分支,分别叫做appearance branch和relation branch。其中appearance branch为标准化的2D卷积,它就是用来处理外观信息的,由2DCNN,BN,Relu组成。relation branch是基于像素之间的乘法交互或过滤响应跨多个帧捕获时间动态的。对堆叠的连续帧进行操作,作者设计了一个方形池架构来对该卷输入的时间间隔进行建模。最后,relation branch的输出与appearance branch相结合。这一融合步骤的目的是将它们压缩成更紧凑的表现形式。

Multiplicative interactions

作者构建relation branch的灵感思路是基于Multiplicative interactions。在原文第2节的最后两段详细的阐述了作者的灵感来源。作者的思路是假设我们有两个来自连续帧中的一小块(patch) x和y,我们的目标是学习它们之间的转换(关系)z。以前的解决方案是将这两个patch拼接起来进行标准的特征学习,就像一个3D卷积一样论文笔记:ARTNet、Non-local Neural Networks
这里的Zk就是W和[x,y]一次的线性组合,如果[x,y]变了但其中的时序关系没变,那么Zk还是变了,这样Zk不能很好的表示时序关系,且这种训练容易造成过拟合。如果在设计学习模块时,假设外观和交互之间是独立的,那么将这两种信息解耦是合理的。利用x和y之间的乘法交互作用,可以得到:
论文笔记:ARTNet、Non-local Neural Networks
这里的Zk为x和y的二次型的线性组合,也就是外积的集合,zk的每个元素代表了特定类型转换关系。这种情况下Zk对x和y的外观依赖要小点。
但(2)式实现还有个问题,整个视频的参数量一张帧中像素个数的平方,所以要减少参数量,将(2)转化为
论文笔记:ARTNet、Non-local Neural Networks
对w做了拆分,并且该分解公式与能量模型(在文章的参考文献[1]里)密切相关,可以用它来实现。其中,能量模型中的隐含单位zk计算如下:
论文笔记:ARTNet、Non-local Neural Networks
后面的二次项对隐含单位影响不显著。这种能源模型可以有效地实现与标准的操作在三维CNNs,并很容易堆叠。

《Non-local Neural Networks》
链接: https://arxiv.org/abs/1711.07971

论文笔记:ARTNet、Non-local Neural Networks
Convolutional 和recurrent都只是对领域的像素或者帧进行操作,如果要找长跨度对象之间的联系,之前只能在重复应用这些操作通过传播信息来捕获。这样的方法计算效率很低,而且优化困难。在这篇论文中,作者将 non-local operations作为用于捕获深度神经网络的长期依赖关系。直观的思路就是,视频或图片中某个位置的特征值是由全局的其他位置的特征的平均加权值得来的。

non-local operations

第三节中,作者给出 non-local operations的定义,论文笔记:ARTNet、Non-local Neural Networks
这里i是输出位置(在空间、时间或时空中)的索引,j是枚举所有可能位置的索引。x为输入信号(图像、序列、视频;或者是处理过的特征图)y是与x相同大小的输出信号。f计算i和所有j之间的关系,一元函数g计算输入信号在位置j处的表示信息,C(x)是归一化参数。
non-local operations是一个灵活的构建块,我们可以在公式(1)中改变输入大小,并在输出中保持相应的大小。它与fc不同,它的输出可以表达出xi和xj的关系。

接下来则是考虑选用什么函数做f和g的时候了,为简单起见,作者只考虑线性嵌入形式的g: g(x j) = W g x j,其中W g是要学习的权矩阵。具体表现为空间上的1×1卷积或时空上的1×1×1卷积。
在选f时,作者挑了四个形式,
Gaussian,这里x(T)ixj是点积相似度,
论文笔记:ARTNet、Non-local Neural Networks
论文笔记:ARTNet、Non-local Neural Networks
Embedded Gaussian:高斯函数的一个简单扩展是计算嵌入空间中的相似度
论文笔记:ARTNet、Non-local Neural Networks
C(x)和上面的一样。

其中, self-attention module是non-local operations中embedded Gaussian的一个特例,
论文笔记:ARTNet、Non-local Neural Networks
Dot product:
论文笔记:ARTNet、Non-local Neural Networks
C(x)=N,N是x中的位置数目,

Concatenation:
论文笔记:ARTNet、Non-local Neural Networks
这里[·,·]表示连接,w 是一个权向量, C(x) = N。

Non-local Block

论文笔记:ARTNet、Non-local Neural Networks
作者定义了一个Non-local Block,这个块类似一个残差单元,y即是(1)的输出,剩余连接允许将一个新的非本地块插入到任何预先训练的模型中,而不会破坏它的初始行为。
论文笔记:ARTNet、Non-local Neural Networks
由上图可以看到,在Non-local Block中,为了优化计算设置通道的数量W g, W Wθ,φ是x的通道数量的一半。并且还对φ和g输出采取pooling方式进行抽样。