Dynamic Region-Aware Convolution详解

区域感知动态卷积论文笔记

论文地址:https://arxiv.org/pdf/2003.12243.pdf 该论文提出了DRConv。传统的卷积结构由于权值共享,所以只有通过增加网络宽度和深度来增加网络捕获的图像特征,这种方法会浪费大量的算力。本论文提出的DRConv构造出了一个“智能通道过滤器”,且该过滤器即实现了类似local conv 1的不同像素不同权重的效果,又保证了网络存在平移不变性,同时整个网络的复杂度并没有提升,同时该网络在几大任务图像任务 2中的表现都好于传统网络 3

Introduction

由于现在主流的卷积神经网络都是权值共享的,所以每一层能够抽取的信息是有限的,如果想要增加抽取的信息,只能通过增加网络的宽度 4和深度 5来实现。
这种传统的方式有很多的缺点,比如:

  1. 计算量大,计算效率低
  2. 这会造成优化困难,网络调试变得十分复杂

为了解决这一问题,一些学者提出了local conv 6 7 这种对每个像素都有不同权重的做法虽然取得了不错的效果,计算复杂度也没有显著的增加,但是它仍然有两个致命的缺点:

  1. 由于取消了权重共享,导致整个网络的参数量非常大,占用空间也很高。
  2. 由于失去了平移不变性,这使得该网络不能做分类任务。

除此之外,对于不同的样本local conv仍然共享滤波器,这使得该网络对特殊的样本样本不敏感 8

为了克服上面的问题,作者提出了DRConv,其执行过程如下: DRConv
首先,通过标准卷积生成guided feature,根据guided feature将整个图像分成多个区域,卷积核生成模块\(G(X)\)根据输入图片动态生成每个区域对应的卷积核,且在每个区域的卷积核是权重共享的,保证了平移不变性。
DRConv可以根据不同的区域匹配不同的卷积核,由于卷积核是动态生成的,所以它要比local conv参数少很多,同时其计算复杂度和标准卷积基本一致。
为了验证效果,本文对比了当前效果较好的网络结构,并对卷积常见的任务都做了对比。

最早的空间相关的卷积网络是local conv,思路很简单,对于每个像素,均使用独立的非共享的滤波器。这种网络对于不同的区域有不同的特征分布的时候(如人脸识别)有很大的应用空间,比较典型的代表就是DeepeFaceDeepID系列网络
在目标检测方面,R-FCN使用基于区域的全卷积去提取局部表征。
除了上面的两个卷积网络结构外,一些模型则通过改变空间特征来更好地模拟语义变化,STNet(Spatial Transform Networks)可以通过学习来转动特征图,但是它非常难训练。ACU(active convolution unit)没有固定的卷积单元形状,它的形状(偏移量)是在训练中改变的。 ACU Deformable Convolutional Network 进一步使得相对位移更加动态 DCN

Dynamic Mechanism

由于网络对数据的依赖性很强,动态机制也应运而生,首先是SKNet , 该网络通过抽取不同感受野的特征提升了网络的精度。使用Attention机制的SENet 则通过动态给各个通道加权来提升网络的精度。
在动态权重方面,CondConv 通过对多个权重进行动态的线性组合来获取最终的权重。
对于不同的样本调整特殊的卷积核也是动态机制的运用,Deformable Kernels 通过学习卷积核的偏移来对原卷积进行重采样,而不改变输入数据。
DK
NonLocal 通过计算每个像素点和整体像素点的关系来实现完整的感受野操作。

Dynamic Region-Aware Convolution

首先为了对比,先看一下标准卷积的公式:
\[Y_{u,v,o}=\sum_{c=1}^C X_{u,v.c} \ast W_c^{(o)} \qquad (u,v) \in S\]
对于标准卷积,定义输入\(X\in \mathbb{R}^{U \times V \times C}\),空间维度\(S \in \mathbb{R}^{U \times V}\),输出\(Y \in \mathbb{R}^{U \times V \times O}\),权重\(W \in \mathbb{R}^C\),输出的第o个channel的计算如上,\(\ast\)为二维卷积操作。
为了方便理解,附上一张卷积的计算过程图:
卷积计算图
然后我们再看看local conv的计算:
\[Y_{u,v,o}=\sum_{c=1}^C X_{u,v.c} \ast W_{u,v,c}^{(o)} \qquad (u,v) \in S\]
这里我们定义非共享权重为\(W \in \mathbb{R}^{U \times V \times C}\),输出的第o个channel公式如上,其中\(W_{u,v,c}^{(o)}\)表示位置\((u,v)\)上的独立非共享卷积核,即卷积在特征图上移动时,每次更换不同的卷积核。
最后我们看一下guided mask的计算公式:
\[Y_{u,v,g}=\sum_{c=1}^C X_{u,v.c} \ast W_{t,c}^{(o)} \qquad (u,v) \in S_t\]
结合以上公式,定义guided mask\(M=S_0, \cdots , S_{m-1}\)用来表示空间维度划分的\(m\)个区域,\(M\)根据输入图片的特征进行提取,每个区域\(S_t (t \in [0, m-1])\)仅使用一个共享的卷积核。定义卷积核集\(W = [W_0 , \cdots , W_{m-1}]\),卷积核\(W_t \in \mathbb{R}^C\)对应于区域\(S_t\)。输出的每个channel的计算如上,即卷积在特征图上移动时,每次根据guided mask更换对应的卷积核。

Learnable guided mask

guided mask决定了卷积核在空间维度上的分布情况,其重要性可想而知,为了能适应不同的样本,该模块必须设计成可以通过损失函数进行反向传递而进行优化。下面讨论一下如何对该模块进行反向传递。
首先,guided mask 上的值的计算公式如下:
\[M_{u,v}=argmax(F_{u,v}^0 , F_{u,v}^1 , \cdots , F_{u,v}^{m-1})\]
其中,F我们称之为guided feature,M为guided mask,上面的公式表示M上每个位置\((u,v)\)的计算公式,\(F_{u,v}\)表示位置\((u,v)\)上的guided feature向量,其实上面的公式就是指示M个feature map中位置\((u,v)\)上的最大值的下标。
这里有一个问题,就是argmax函数不可导,无法获得梯度,这样就没办法做反向传播,为了解决这一问题,作者用softmax来近似的替代argmax。

forward propagation

guided mask的前向传播比较简单:
\[\hat{W_{u,v}}=W_{M_{u,v}} \qquad M_{u,v} \in [0, m-1]\]
\(M_{u,v}\)表示guided feature在\((u,v)\)位置上的最大下标,\(W_{M_{u,v}}\)是m个卷积核集中的一个。

back propagation

这里我们使用softmax来代替之前的one hot 编码,以方便进行反向传播:
\[\hat{F_{u,v}^j} = \frac{e^{F_{u,v}^j }}{\sum_{n=0}^{m-1}e^{F_{u,v}^{n}}} \qquad j \in [0, m-1]\]
定义\(\hat{F}\)来代替guided mask中的one hot表示,如上,在channel维度上做了softmax,以期望\(\hat{F_{u,v}^j}\)近似的接近0和1。
由于对onehot无法求导,我们对上述公式进行反向传播:
\[\nabla_{F_{u,v}} \pounds = \hat{F_{u,v}} \odot ( \nabla_{\hat{F_{u,v}}} \pounds - 1<\hat{F_{u,v}} , ( \nabla_{\hat{F_{u,v}}} \pounds>)\]
这个公式看起来有些复杂,其实本质就是softmax反向求导公式,首先softmax的导函数为\(y(1-y)\)。上面公式中,\(\nabla_{\hat{F_{u,v}}} \pounds\) 表示loss对\(\hat{F}\)求导,我们提出这一个公因子就会发现其本质就是softmax求导再乘于loss对\(\hat{F}\)求导。这也正是反向传播的规律。

正向传播和反向传播
上图中的反向求导公式就是前向传播中公式的反向传播

Filter generator module

这部份我们主要讨论多个卷积核是如何生成的,如下图:
卷积核生成
过程并不复杂,其实就是通过了两个一维卷积最后分成\(m \times C\)个channel,只需要注意第一个一维卷积使用\(sigmoid(\bullet)\)进行激活,而第二个不使用激活函数即可。

Experiments

Classification

分类效果对比
分类效果对比

Face Recognition

面部识别效果
面部识别效果

COCO Object Detection and Segmentation

目标检测效果
目标检测效果

Ablation Study

这一部分通过可视化来解释为什么这样做有用,以及使用什么参数比较好。

Visualization of dynamic guided mask

效果图
效果图

Different model size

不同模型正确率对比
不同模型正确率对比

Different region number

区域数对结果的影响
区域数对结果的影响

Different spatial size

空间尺寸对效果的影响
空间尺寸对效果的影响

  1. 对每个像素都有权重,这样做的好处是可以充分的学习图像的特征

  2. 分类、人脸识别、目标检测、语义分割

  3. 使用ImageNet数据集,Mobile Net、ShuffleNetV2, etc.

  4. 增加每次抽取的信息量

  5. 增加抽取信息的次数

  6. Gregor, K., LeCun, Y.: Emergence of complex-like cells in a temporal product network with local receptive fields. arXiv preprint arXiv:1006.0448 (2010)

  7. Taigman, Y., Yang, M., Ranzato, M., Wolf, L.: Deepface: Closing the gap to humanlevel performance in face verification. In: IEEE Conference on Computer Vision and Pattern Recognition (CVPR). pp. 1701{1708 (2014)

  8. 比如在面部识别和目标检测种,对于不同姿势或者角度的图像