关注公众号,发现CV技术之美
本文分享论文『Resolution Adaptive Networks for Efficient Inference』,由清华黄高团队提出分辨率自适应的高效推理网络RANet!MSDNet加强版!
详细信息如下:
论文链接:https://arxiv.org/abs/2003.07326
项目链接:https://github.com/yangle15/RANet-pytorch
导言:
![9accdffe609e577a503e0270f53a8a16.png](https://i-blog.csdnimg.cn/blog_migrate/b4b12ede98789640cc5817720c6764cc.png)
自适应推理是在深度网络中实现精度和计算成本之间动态权衡的有效机制,现有的工作主要是利用网络深度或宽度上的结构冗余。在本文中,作者关注输入样本的空间冗余,并提出了一种新的分辨率自适应网络(Resolution Adaptive Network,RANet),其灵感来源于低分辨率的表示足以对包含大对象的“简单”输入进行分类,而只有一些“困难”输入样本需要空间上的更详细信息。
在RANet中,输入图像首先被路由到一个轻量级子网络中,该子网络有效地提取低分辨率表示,高预测置信度的样本将提前退出网络,而无需进一步处理,从而降低计算资源。同时,网络中的高分辨率路径用于识别数据集中的“困难”样本。因此,RANet可以有效减少高分辨率输入的空间冗余。通过实验,作者在CIFAR-10、CIFAR-100和ImageNet数据集上证明了RANet的有效性。
01
Motivation
尽管计算机硬件的进步使得训练非常深的卷积神经网络(CNN)成为可能,如ResNe和DenseNet,但在许多应用中,深度CNN的高计算成本仍然是无法承受的。目前,很多方法已经被提出用来加速深层模型的推理,比如轻量级网络结构设计、网络剪枝和模型量化等等。其中,自适应推理的方案旨在通过动态调整网络结构或以每个输入为条件的参数来减少“简单”样本上的计算冗余,该方案已被证明具有良好的性能。
现有的自适应推理研究大多集中于减少“简单”图像的网络深度或宽度上。研究表明,不同样本的分类难度差异很大:其中一些样本可以用较少层或通道的小模型进行正确分类,而另一些样本可能需要较大的网络。目前在这一方向上也有很多的研究,比如MSDNet允许一些样本在一定的预测置信度条件下提早退出分类器。
在本文中,作者从一个新的角度来考虑自适应推理。现有研究集中于网络结构中的计算冗余,而本文的目标是利用数据样本中的信息冗余。本文的动机是,低分辨率特征表示足以对“简单”样本进行分类(如上图a所示),而包含细节的高分辨率特征对于准确识别某些“困难”样本(如上图b所示)是必要的。
同时,这也符合“coarse to fine processing ”的设计思想。从信号频率的角度,可以使用低分辨率特征中包含的低频信息对“简单”样本进行正确分类。当无法准确预测具有低分辨率特征的样本时,高频信息可以用于识别“困难”样本。
基于上述思想,作者提出了一种解决方案——分辨率自适应网络(Resolution Adaptive Network,RANet),它实现了在深层CNN中执行了分辨率自适应的思想。它由具有不同输入分辨率的子网络组成,“简单”样本通过处理低分辨率特征图的子网络进行分类。当前一个子网未能达到给定标准时,将采用分辨率较高的子网。同时,将前面子网络中的粗粒度特征重新利用并融合到当前子网络中。RANet的自适应机制通过避免在高分辨率特征上执行不必要的卷积,提高计算效率。
02
方法
2.1. Adaptive Inference Setting
作者提出了一个自适应推理的模型。作为一个带有K个分类器的网络,这些分类器添加在模型的不同深度。给定一个输入图像x,第k个分类器(,,)的输出可以表示为:
其中θ表示与第k个分类器对应部分网络的参数,每个元素是第c个类的预测置信度。
自适应模型根据样本的复杂性,动态分配适当的计算资源来预测样本。样本将在输出满足特定标准的第一个分类器处退出网络。在本文中,作者使用Softmax输出的最高置信度作为决策依据,阈值为。该过程可以表示为:
阈值用于控制测试时分类精度和计算成本之间的权衡。
2.2. Overall Architecture
上图展示了展示了本文方法的框架图,它包含对应于不同分辨率的初始层和子网络,每个子网络在最后几个块上都有多个分类器。与MSDNet类似,作者在本文中采用了多尺度结构(multi-scale architecture)和密集连接(dense connection)。
尽管RANet和MSDNet具有相似的多尺度结构,但它们的结构设计和计算图存在着显著的差异。最显著的区别是RANet需要首先提取低分辨率特征,这与经典深度CNN(包括MSDNet、ResNet、DenseNet等)中提取高分辨率特征的传统设计惯例是不同的。
RANet的基本思想是,网络将首先基于最低空间分辨率的特征,使用第一个子网络预测样本,以避免对高分辨率特征执行卷积导致的高计算成本。如果第一个子网络对样本做出不可靠的预测,则低分辨率的中间特征将融合到具有更高分辨率的下一个子网络中。然后由下一个较高分辨率特征的子网络执行分类任务。重复此过程,直到一个子网络产生可靠的预测,或使用最后一个子网络。
RANet的自适应推理过程如上图所示:使用H个子网络(图中H=3)和输入样本x,网络将首先生成H个S尺度的基本特征图(例如,图中有3个尺度,s=1表示最低分辨率)。与子网络相对应的基本特征可以表示为。
然后,子网络1首先使用最小分辨率的特征执行分类任务。如果子网络1未能以高置信度实现分类结果,则将使用处理较大尺度特征()的子网络2对样本进行进一步分类。子网1中的中间特征会融合到子网2中。如果子网络2未能做出可靠的预测,将对子网络3重复此过程。
上述推理过程符合人类对图像识别的直觉。具有代表性特征的“简单”样本有时可以以高置信度正确分类,即使仅提供低分辨率表示。具有非典型特征的“困难”样本只能基于从高分辨率特征图中提取的具有细节的全局信息进行正确识别。
2.3. Network Details
2.3.1 Initial Layer
初始层用于生成S个尺度的H个基础特征,其垂直布局视为一个微型的“H层”卷积网络(如上图所示)。上图显示了有三个尺度的3个基本特征的RANet。第一个具有最大尺度的基本特征来自于常规卷积,后面低分辨率的特征由在上一个尺度的特征上进行步长>1的卷积获得。这些基本特征的尺度可以相同。例如,一个RANet可以具有3个尺度中的4个基本特征,其中最后两个基本特征的尺度具有相同的分辨率。
2.3.2 Sub-networks with Different Scales
由于初始层生成H个基础特征,因此本文的网络可以分为H个子网络,H个子网络由不同的卷积块组成。
Sub-network 1
具有输入的子网络1处理最低分辨率的特征。作者选用了l层的Dense Blocks作为子网络1,如上图所示。此外,每个Dense Blocks第i层的输出也会传到子网络2中以重用特征。通常,可以将子网络1视为具有多个分类器的DenseNet,用来处理最低分辨率的特征映射。
Sub-networks on larger-scale features
具有尺度s的子网络h处理基本特征,融合了上一个子网络(h-1)的特征。用于融合特征的卷积模块称为融合模块(如上图所示)。假设子网络(h-1)中有个块,那么子网络h的前个块都是融合模块。
作者设计了两种不同的特征融合方法。一个保持输入分辨率,如上图(b)所示,而另一个通过步长大于1的卷积层减小特征尺度,如上图(c)所示。
为了生成具有更高分辨率的新特征图作为输入,上图(b)中的融合模块首先用常规卷积来生成。上一个子网络中尺度(s-1)的特征通过Up-Conv(即,常规卷积+上采样)进行处理,这确保生成的特征具有相同的空间分辨率。然后,通过密集连接的concatenation融合得到的特征。
上图(c)中,下采样的融合模块使用步长大于1的卷积来减少空间维度,如蓝色虚线箭头所示,然后在池化操作之后执行密集连接的concatenation。由于当前子网中的特征尺度减小,因此前一个子网中的特征由常规卷积处理以保持低分辨率,然后在末端的块中进行融合。
子网络h可以通过以下方式构建:对于一个有个块的子网络,前个块可以看做是融合模块(Fusion Blocks),剩下的模块为常规的密集模块(Dense Blocks)。此外,作者在第个模块中进行了s次下采样,确保在附加分类器的每个子网络的末端,特征具有最低的分辨率。
Transition layer
在网络中,作者实现了过渡层(Transition layer)来进一步压缩每个子网络中的特征映射。过渡层由1×1卷积后面接上BN层和ReLU层实现,过渡层进一步保证了所提出网络的计算效率。
Classifiers and loss function
作者在不同子网络的最后几个块中加上了分类器,在训练阶段,输入样本依次通过不同的子网络,每个分类的损失函数均为交叉熵损失函数,RANet的总体损失函数设置为这些分类器的损失之和,在实验中,作者为每个损失分类器的损失函数赋予了相同的权重。
2.4. Resolution and Depth Adaptation
本文提出的RANet可以同时实现MSDNet中采用的深度自适应和分辨率自适应,上显示了MSDNet(左)和RANet(右)之间的主要区别。在RANet中,具有小尺度输入的Dense Blocks被依次激活,深度自适应在单个尺度内进行。
如果前一个子网络不能进行高置信度的预测,则输入样本将传播到下一个子网络,并重复深度自适应的过程,直到预测置信度满足标准,或达到整个网络的最后一个分类器。这种推理方案自然地结合了分辨率和深度自适应,实现了MSDNet的显著性能提升。
03
实验
3.1. Anytime Prediction
在anytime prediction设置中,作者评估自适应网络中的所有分类器,上表展示了相应的 计算量和准确率。可以看出,本文的RANet具有性能和计算量上的优势。
3.2. Budgeted Batch Classification
上表展示了budgeted batch classification设置下,本文方法和其他方法的性能和计算量对比,可以看出,本文方法在性能和计算量上的优越性。
3.3. Visualization and Discussion
作者还可视化了一些“简单样本”和“困难样本”的例子。
Multiple objects
从上图可以看出,图中包含多个目标的样本通常为困难样本。
Tiny objects
从上图可以看出,图中目标较小的样本通常为困难样本。
Objects without representative characteristics
从上图可以看出,图中的目标没有显著特征的样本通常为困难样本。
04
总结
在本文中,作者提出了一种基于多尺度密集连接结构的分辨率自适应神经网络——RANet。RANet首先将处理粗粒度特征的轻量级子网络用于图像分类。具有高预测置信度的样本将提前从网络中退出,具有更精细细节的较大尺度特征将仅进一步用于那些在上一个子网络中没有得到高置信度输出的样本。这种分辨率自适应机制和RANet中各子网的深度自适应保证了其较高的计算效率。在三个图像分类基准数据集上的实验结果证明了RANet的有效性。
▊ 作者简介
研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。
知乎/公众号:FightingCV
END
欢迎加入「超分辨率」交流群👇备注:SR