每周论文13

1️⃣[Depthwise Separable Convolutions for Neural Machine Translation]

将depthwise separable convolution 深度可分离卷积 用于翻译任务,并在此基础上对depthwise separable进行更进一步的参数量优化,也即super-separable。(其实我觉得并没有啥创新性的感觉)

首先介绍什么是depthwise separable convolution,实际上就是一个depthwise+pointwise。

几种convolution的参数量对比:

其中k是kernel size,c是channel,g是group。

g-Sub-separable是指将channel分为几个group,每个group进行常规的convolution操作;g-Super-separable,也即本文中提出的convolution,同样是将channel分为几个group,然后对每个group进行depthwise-separable的卷积。


2️⃣[Squeeze-and-Excitation Networks]

提出一种新型的网络,能够通过建模channel之间的关系,使得每个channel能够获得全局的信息,进而提高模型的能力。

分为两步:第一步是获得一个全局的表示,第二步是根据全局信息更新每个channel的信息。

符号

输入:$ \mathbf{X} \in \mathbb{R}^{H^{\prime} \times W^{\prime} \times C^{\prime}} $
经过特征提取后(如Convolution):$\mathbf{U} \in \mathbb{R}^{H \times W \times C}$,也即:$\mathbf{U}=\mathbf{F}_{t r}(\mathbf{X})$
将$\mathbf{U}$写成:$\mathbf{U}=\left[\mathbf{u}_{1}, \mathbf{u}_{2}, \dots, \mathbf{u}_{C}\right]$
$\mathbf{V}$ 是可学习的卷积核参数: $\mathbf{V}=\left[\mathbf{v}_{1}, \mathbf{v}_{2}, \ldots, \mathbf{v}_{C}\right]$

则上述卷积变换可写成:$\mathbf{u}_{c}=\mathbf{v}_{c} \ast \mathbf{X}=\sum_{s=1}^{C^{\prime}} \mathbf{v}_{c}^{s} \ast \mathbf{x}^{s}$

Squeeze: Global Information Embedding

第一步,将所有的特征进行整合得到全局的特征:

论文提取全局特征的方法直接用简单的global average pooling。那么$\mathbf{z} \in \mathbb{R}^{C}$的每一维就代表每一维的channel。

Excitation: Adaptive Recalibration

与attention不同的是,论文希望能够同时强调不同多个channel的重要(而不是one-hot的形式),因此使用一个简单的门控制机制,采用sigmoid激活函数:(这里的想法挺有意思,相对attention的softmax似乎确实会更好的样子)

为了减少参数这里的MLP采用了bottleneck的形式。亦即:
${\mathbf{W}_{1} \in \mathbb{R}^{\frac{C}{r} \times C}}$ $ {\mathbf{W}_{2} \in \mathbb{R}^{C \times \frac{C}{r}}}$
$r$是reduction ratio。

贴上作者的思路:

To make use of the information aggregated in the squeeze operation, we follow it with a second operation which aims to fully capture channel-wise dependencies. To fulfill this objective, the function must meet two criteria: first, it must be flexible (in particular, it must be capable of learning a nonlinear interaction between channels) and second, it must learn a non-mutually-exclusive relationship since we would like to ensure that multiple channels are allowed to be emphasised (rather than enforcing a one-hot activation). To meet these criteria, we opt to employ a simple gating mechanism with a sigmoid activation.

最后对每个channel进行放缩,获得新的表示:


3️⃣[Non-local Neural Networks]

提出一种新的结构,与上一篇类似,希望模型的每个位置都能感知到其他位置,从而捕获长程依赖,拥有全局信息。

Non-local Network

定义non-local网络:

其中$\mathcal{C}$是归一化函数;$f$是第$i$个位置与第$j$个位置的交互函数;$g$计算第$j$个位置的表示。

$g$的具体形式

一个线性函数:$g\left(\mathbf{x}_{j}\right)=W_{g} \mathbf{x}_{j}$
在实现的时候是一个$1\times1$或 $1\times1\times1$的convolution。

$f$的具体形式

①Gaussian
$f\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=e^{\mathbf{x}_{i}^{T} \mathbf{x}_{j}}$
则归一化定义为$\mathcal{C}(\mathbf{x})=\sum_{\forall j} f\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)$ 。

②Embedded Gaussian
$f\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=e^{\theta\left(\mathbf{x}_{i}\right)^{T} \phi\left(\mathbf{x}_{j}\right)}$
其中:$\theta\left(\mathbf{x}_{i}\right)=W_{\theta} \mathbf{x}_{i} $, $ \phi\left(\mathbf{x}_{j}\right)=W_{\phi} \mathbf{x}_{j}$
归一化:$\mathcal{C}(\mathbf{x})=\sum_{\forall j} f\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)$

可以看到self-attention是Embedded Gaussian的一种形式。虽然有这样的关系,但作者在实验中发现softmax并不是必要的。

③Dot product
$f\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=\theta\left(\mathbf{x}_{i}\right)^{T} \phi\left(\mathbf{x}_{j}\right)$
归一化:$\mathcal{C}(\mathbf{x})=N$

④Concatenation
$f\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=\operatorname{ReLU}\left(\mathbf{w}_{f}^{T}\left[\theta\left(\mathbf{x}_{i}\right), \phi\left(\mathbf{x}_{j}\right)\right]\right)$
$\mathcal{C}(\mathbf{x})=N$

有了上面的non-local的介绍,可以直接将其用于residual network。
$\mathbf{z}_{i}=W_{z} \mathbf{y}_{i}+\mathbf{x}_{i}$
$y$则是non-local network的输出。

Non-local block的策略/tricks

①设置$W_g$,$W_θ$,$W_ϕ$的channel的数目为x的channel数目的一半,这样就形成了一个bottleneck,能够减少一半的计算量。Wz再重新放大到x的channel数目,保证输入输出维度一致。

②在$\frac{1}{\mathcal{C}(\hat{\mathbf{x}})} \sum_{\forall j} f\left(\mathbf{x}_{i}, \hat{\mathbf{x}}_{j}\right) g\left(\hat{\mathbf{x}}_{j}\right)$使用下采样,如max-pooling,减少计算量。


4️⃣[Bilinear CNN Models for Fine-grained Visual Recognition]

提出一种双线性模型,由两个特征提取器组成,他们的输出做外积,最终获得图像描述特征。

Motivation(?不确定是不是这样):对于细粒度物体的分类,先对局部定位,再提取特征。两个特征提取器一个是提取location,另一个提取特征。

为什么用外积

outer product captures pairwise correlations between the feature channels

有意思的是作者将该模型和人脑视觉处理的两个假设联系在一起(stream hypothesis):
here are two main pathways, or “streams”. The ventral stream (or, “what pathway”) is involved with object identification and recognition. The dorsal stream (or, “where pathway”) is involved with processing the object’s spatial location relative to the viewer.
不过看看就好,并没有什么道理。

对于一个分类的双线性模型而言,其一般形式是一个四元组:$\mathcal{B}=\left(f_{A}, f_{B}, \mathcal{P}, \mathcal{C}\right)$。其中$f$是特征函数,$\mathcal{P}$是pooling函数,$\mathcal{C}$是分类函数。具体而言,$f$是一个映射,${f : \mathcal{L} \times \mathcal{I} \rightarrow} {R^ {c\times D}} $。也即将一个image和一个location L 映射成feature。(We refer to locations generally which can include position and scale 其实这里不是很懂location的意思)

将feature a和feature b结合在一起:
$\text { bilinear }\left(l, \mathcal{I}, f_{A}, f_{B}\right)=f_{A}(l, \mathcal{I})^{T} f_{B}(l, \mathcal{I})$

pooling有好几种,可以直接加起来,或者使用max-pooling。这里使用直接加起来的方式,可以理解为,这些特征是无序(orderless)的叠加。

在获得输出后再做一些操作/trick能够提升表现:
$\begin{array}{l}{\mathbf{y} \leftarrow \operatorname{sign}(\mathbf{x}) \sqrt{|\mathbf{x}|}} \\ {\mathbf{z} \leftarrow \mathbf{y} /|\mathbf{y}|_{2}}\end{array}$

讨论:
①But do the networks specialize into roles of localization (“where”) and appearance modeling (“what”) when initialized asymmetrically and fine-tuned?
通过可视化发现,并没有明确的功能分开。
Both these networks tend to activate strongly on highly specific semantic parts

②bilinear的好处还可以扩展成trilinear,添加更多的信息。