论文笔记(9)--Residual Attention Network for Image Classification

论文:《Residual Attention Network for Image Classification》
https://arxiv.org/abs/1704.06904
https://github.com/fwang91/residual-attention-network

这是CVPR2017的一篇论文,在图像分类问题上,首次成功将极深卷积神经网络与人类视觉注意力机制进行有效的结合,并取得了远超之前网络结构的准确度与参数效率。仅用与ResNet-50的相当的参数量和计算量就得到了远超过了ResNet-152的分类性能。

主要创新点:

  • stacked network structure:通过堆叠多个Attention Module来构建residual attention network,这点类似其它深度网络;
  • attention residual learning:作者发现单纯的堆叠attention modules,模型精度会明显降低,所以提出了attention residual learning的思想,来优化residual attention network
  • bottom-up top-down feedforward attentionbottom-up top-down就是FCN中的特征图先变小,然后通过上采样将图像变大的方法,作者利用这种方法将特征权重添加到特征图上。

Abstract

论文提出了Residual Attention Network,一种使用注意机制的卷积神经网络,它可以以端到端的训练方式与最新的前馈网络结构相结合。Residual Attention Network是通过堆叠Attention Module来构建的,这些模块产生attention-aware features。随着层的深入,来自不同模块的attention-aware features会自适应地改变。在每个Attention Module内部,bottom-up top-down的前馈结构将前馈和反馈attention过程展开到单个前馈过程中。重要的是,提出attention residual learning来训练非常深的Residual Attention Networks,这可以很容易地扩展到数百层。

在CIFAR-10和CIFAR-100数据集上对上述每个模块的有效性进行了验证。Residual Attention Network在CIFAR-10、CIFAR-100和CIFAR-100三个数据集上取得到最好的目标识别性能,CIFAR-10 (3.90% error)、CIFAR-100 (20.45% error)、ImageNet (4.8% single model and single crop, top-5 error)。与ResNet-200相比,本文方法在仅46%主干深度和69%的前向计算量FLOP下实现了0.6%的top-1提升。实验还表明,网络对噪声标签具有鲁棒性。

1. Introduction

不仅是一张友好的脸,红色也会引起我们的注意。在以前的文献中[34,16,23,40]注已经广泛研究了注意力attention的混合性。注意力不仅用于选择聚焦位置,还增强了该位置上对象的不同表示。以前的工作将注意力漂移作为一个连续的过程来捕捉不同关注的方面。然而,据我们所知,在图像分类任务中,没有将注意力机制应用到前馈网络结构中,以实现最新的结果。图像分类的最新进展集中于使用“非常深”的结构训练前馈卷积神经网络[27,33,10]。

受注意力机制和深度神经网络最新进展的启发,作者提出了Residual Attention Network,一种在“非常深”的结构中采用混合注意机制的卷积网络。残差注意网络由多个注意模块组成,产生注意力感知特征attention-aware features。随着层越来越深,不同模块的attention-aware features会自适应地改变。

除了注意机制带来的更具辨别力的特征表示之外,模型还具有以下特性:

  1. 增加Attention Module可以提高性能,因为这样可以捕获到不同类型的注意力。图1热气球图像中,有气球,又有蓝天(背景),低层(前面层)提取背景的attention,高层(后面层)提取气球的attention,前后层相结合就能很好的提取出目标。
  2. 它能够以端到端end-to-end的训练方式与最先进的深层网络结构相结合。具体来说,网络深度可以轻松扩展到数百层。残差注意网络在CIFAR-10,CIFAR-100和具有挑战性的ImageNet [5]图像分类数据集上优于最先进的残差网络,显著减少了计算量(69%的前向FLOP)。

在这里插入图片描述
所有上述特性都可以通过以下方法实现:

  1. Stacked network structure:本文的残差注意网络是通过堆叠多个注意模块构建的。堆叠结构是混合注意机制的基本应用。因此,能够在不同的注意模块中捕获不同类型的注意力。
  2. Attention Residual Learning:直接堆叠注意模块会导致明显的性能下降。因此,作者提出了注意残差习机制,以优化具有数百层的非常深的注意残差网络。
  3. Bottom-up top-down feedforward attentionBottom-up top-down的前馈结构已成功应用于人体姿态估计human pose estimation[24]和图像分割image segmentation[22,25,1]。我们使用这种结构作为Attention Module的一部分来增加特征的soft weights。这种结构可以在单个前馈过程中模拟bottom-up的快速前馈过程和top-down的注意反馈,这使我们能够开发一个具有top-down attention的端到端的可训练网络。本文工作中bottom-up top-down的结构与堆叠hourglass network[24]的不同之处在于其引导特征学习的意图。

2. Related Work

3. Residual Attention Network

本文的Residual Attention Network是通过堆叠多个Attention Module来构建的。每个Attention Module分为2个分支:mask branchtrunk branch

下图为attention结构图
在这里插入图片描述
trunk branch进行特征提取,可以适应任何最先进的网络结构。这里使用预激活残差单元[11],ResNeXt[36]和Inception[32]作为Residual Attention Network的基本单元来构建Attention ModuleAttention Module H的输出为:
在这里插入图片描述
其中,T(x)表示trunk branchM(x)表示mask branch

在Attention Module中,attention mask不仅仅在前向传播中进行特征的选择,并且在反向传播中进行梯度的过滤。在soft mask分支中,输入特征的mask梯度为:
在这里插入图片描述
其中,θmask branch的参数,φtrunk branch的参数。此属性使Attention Module对噪声标签具有鲁棒性。mask branch可以防止错误的梯度(来自噪声标签)更新trunk参数。第4.1节中的实验表明了本文Residual Attention Network对噪声标签具有鲁棒性。

3.1. Attention Residual Learning
然而,单纯的堆叠Attention Module会导致明显的性能下降。

  • 首先,mask范围是0到1,反复的相乘会使特征值逐渐变小。
  • 其次,soft mask可能会破坏trunk branch的好的特征,例如Residual Unit的相同映射。

因此,作者提出Attention Residual Learning来缓解上述问题。与residual learning中的想法类似,如果soft mask单元可以被构造成相同的映射,那么在没有注意的情况下,其性能不应比对应单元差。即,即使M的大小为0,还保留F(x)的大小,这就是Attention Residual Learning。因此,将Attention Module的输出H修改为:
在这里插入图片描述
我们堆叠的注意残差学习和残差学习不同。在原始ResNet中,残差学习为 H i , c ( x ) = x + F i , c ( x ) H_{i,c}(x)=x+F_{i,c}(x) ,其中F_{i,c}(x)近似于残差函数。在我们的公式中, F i , c ( x ) F_{i,c}(x) 表示深度卷积网络生成的特征。关键在于我们的mask branch M ( x ) M(x) 。它们起特征选择器的作用,增强了好的特征并抑制了主干特征的噪音。

此外,堆叠Attention Module还可以通过其增量性质(incremental nature)来支持Attention Residual LearningAttention Residual Learning既能保持原有良好的特征,又能绕过soft mask分支继续反向传播,以削弱mask branch的特征选择能力。堆叠的Attention Module可以逐步细化特征图。如图1所示,随着深度的增加,特征变得更加清晰。通过使用Attention Residual Learning,增加Residual Attention Network的深度,始终能提高性能。如实验部分所示,残差注意网络的深度增加到452,其性能在CIFAR数据集上大幅超过ResNet-1001。

3.2. Soft Mask Branch
根据DBN[21]中先前的注意机制(attention mechanism idea),我们的mask branch包含了快速前馈扫描(fast feed-forward sweep)自上而下的反馈(top-down feedback)步骤。前一种操作快速收集整个图像的全局信息,后一种操作将全局信息与原始特征图相结合。在卷积神经网络中,这两个步骤展开为bottom-up top-down的全卷积结构。

作者主要采用简单的类似于FCN的网络实现mask branch,从输入开始,先执行几次max pooling以在少量Residual Units之后快速增加感受野,达到最低分辨率后,通过一个对称的网络结构将特征放大回去(采用线性插值)。(Linear interpolation up sample the output after some Residual Units. The number of bilinear interpolation is the same as max pooling to keep the output size the same as the input feature map.)然后,接2个连续的1×1卷积层,最后接一个sigmoid层将输出归一化到[0,1]。在mask branch中,作者还在bottom-up和top-down之间添加了skip connections,以捕获不同比例的信息。完整的模块如图2所示。

这里作者解释,虽然同样采用了FCN网络,但是与之不同的是,FCN直接应用于复杂问题,而这里是应用到提高trunk branch的feature的质量,两者的目的不同。第4.1节中的实验用于验证上述论点。
在这里插入图片描述

3.3. Spatial Attention and Channel Attention
mask branch提供的attention随着trunk branch特征的变化而变化。
针对mask branch,同样可以采用一些方法进行约束,使之达到最好的效果。这里,作者尝试了3种方法,分别对应mixed attentionchannel attentionspatial attention

  • mixed attention f 1 f_{1} ,对通道和空间的每个位置使用sigmoid
  • channel attention f 2 f_{2} 对每个空间位置,求所有channel的 L 2 L2 范数,进行归一化,以去除空间信息;
  • spatial attention f 3 f_{3} 在每个channel先进行归一化,然后对每个位置进行sigmoid操作。
    在这里插入图片描述
    其中, i i 为在所有空间位置上的范围和在所有通道上 c c 的范围。 m e a n c mean_{c} s t d c std_{c} 表示来自第 c c 个通道的特征图的平均值和标准差。 x i x_{i} 表示第 i i 个空间位置处的特征向量。

实验结果如表1,采用的是Attention-56。如实验所示,在没有额外约束的情况下,通过自适应地改变注意力可以获得最佳性能。mixed attention具有最佳的性能
在这里插入图片描述

4. Experiments

在本节中,作者在CIFAR-10,CIFAR-100 [19]和ImageNet [5]上评估了Residual Attention Network的性能。
实验包含两部分:

  • 第一部分,分析了Residual Attention Network中每个组件的有效性,包括Attention Residual Learning机制和Attention Module中不同的soft mask分支结构。之后,对其抗噪性能进行了研究。因计算资源有限,选择CIFAR-10和CIFAR-100数据集进行实验。最后,将本文网络与CIFAR数据集的最新结果进行比较。
  • 第二部分,用InceptionResNeXt替换残差单元,以证明Residual Attention Network在参数效率和最终性能方面均优于原始网络。还将图像分类性能与ImageNet数据集上最先进的ResNetInception进行了比较。

4.1. CIFAR and Analysis
Implementation.
CIFAR-10和CIFAR-100数据集分别由10,000100个类别的60,00032×32彩色图像组成,具有50,000个训练图像和10,000个测试图像。采用最先进的网络结构ResNet作为baseline方法。为了进行公平比较,我们将大部分设置与ResNet论文相同[10]。图像每个边填充4个像素,值为0,得到40×40的图像。从图像或其水平翻转中随机采样32×32裁剪,并减去每像素RGB平均值。采用了与[9]相同权重初始化方法,并使用nesterov SGD训练Residual Attention Networkmini-batch=64。权重衰减weight decay0.0001,动量momentum0.9初始学习率设置为0.1学习率64k96k迭代除以10。共迭代160k次。

图2所示是一个使用在ResNet-50上的例子,和原始的ResNet-50的区别是在每个阶段的Residual Block之间添加了Attention Module
在每一个Attention Modulesoft mask branch中,作者使得down sample到的最小feature map的尺寸与整个网络中的最小feature map大小一致,首先7x7feature map对于Attention来说不至于太粗糙,作者不希望在浅层的Attention丢失的信息太多,其次也保证了它们具有相同大小的感受野。至于这么做能带来多大的性能提升,就不太清楚了。
在这里插入图片描述
Attention Residual Learning.
在这个实验中,评估了Attention Residual Learning机制的有效性。
对含Attention Residual Learning模块(ARL)和不含Attention Residual Learning模块即naive attention learning(NAL)分别进行实验。
具体而言,NAL使用注意模块,其中特征是通过soft mask直接点积(dot product)而没有Attention Residual Learning。设置不同数量的Attention Module,得到网络Attention-56、Attention-92、Attention-128和Attention-164

结果如表3所示,带Attention Residual Learning模块的网络效果更好。且在使用Attention Residual Learning时,性能随着Attention Module的数量而增加。相比之下,NAL情况相反。
在这里插入图片描述
为了深入解析Attention Residual Learning,作者计算了每个阶段输出层的平均绝对响应值mean absolute response。使用Attention-164进行实验,结果如图4所示。不带学习模块,在第2个stage的时候,response已经降为0了,模型肯定是不行的。
作者说明了原因,Attention Module通过在feature和soft mask之间应用点积来抑制噪声,增强有效信息。但是,重复的点积不仅会抑制噪声的梯度同时会抑制有用信息的梯度。所以,通过Attention Residual Learning方法,可以使用identical mapping单元来减轻信号衰减。因此,它在没有造成显著信息丢失的情况下从降噪中获益,这使得优化变得更加容易。(The Attention Module is designed to suppress noise while keeping useful information by applying dot product between feature and soft mask. However, repeated dot product will lead to severe degradation of both useful and useless information in this process. The attention residual learning can relieve signal attenuation using identical mapping, which enhances the feature contrast.

在这里插入图片描述

Comparison of different mask structures.
作者进行了mask的对比,对比结果发现采用encoder and decodermixed attention效果会好一些,如如表4:
在这里插入图片描述
Noisy Label Robustness.
实验发现,在CIFAR-10数据集上,Residual Attention Network在论文[31]的设置下具有抗噪性。实验中的混淆矩阵(confusion matrix)Q设置如下:
在这里插入图片描述
其中r表示整个数据集的干净标签比率。

我们将ResNet-164网络与Attention-92网络在不同的噪声水平下进行比较。结果如表5。相同噪声水平下,Attention-92网络的测试误差明显低于ResNet-164网络。此外,当我们提高噪声比时,与ResNet-164网络相比,Attenion-92的测试误差缓慢下降。这些结果表明,我们的Residual Attention Network可以很好地使用高比率的噪声数据进行训练。当标签有噪声时,相应的mask可以防止由标签错误引起的梯度更新trunk branch参数。这样,只有trunk branch正在学习错误的监督信息,soft mask分支屏蔽了错误的标签。
在这里插入图片描述

Comparisons with state-of-the-art methods.
我们将Residual Attention Network与最新方法进行比较,包括CIFAR-10和CIFAR-100数据集上的ResNet[11]和Wide ResNet[39]。结果如表6。我们的Attention-452优于CIFAR-10和CIFAR-100数据集上的所有baseline方法。注意,在相同参数下,Attention-92在CIFAR-10上的测试误差为4.99%,在CIFAR-100上的测试误差为21.71%,而ResNet-164在CIFAR-10和CIFAR-100上的测试误差分别为5.46%24.33%。此外,Attention-236仅使用一半参数就优于ResNet-1001。结果表明,我们的Attention ModuleAttention Residual Learning方案可以有效地减少网络中的参数量,同时提高分类性能。
在这里插入图片描述
4.2. ImageNet Classification
在本节中,我们使用ImageNet LSVRC 2012数据集[5]进行实验,其中包含1,000个类,120万张训练图像,50,000个验证图像和100,000个测试图像。评估是在ImageNet LSVRC 2012验证集的非黑名单图像上做的。我们使用Attention-56和Attention-92进行实验。网络结构和超参数见表2。

Implementation.
我们的实施通常遵循之前研究中的实践[20]。我们将scale和aspect ratio数据增强方法[33]应用于原始图像。从增强图像或其水平翻转中随机抽取图片裁剪为224×224,RGB像素值归一化到[0,1],减去平均值并除以标准差。我们采用标准颜色增强[20]。使用SGD训练网络,动量momentum为0.9。初始学习率设置为0.1。在200k,400k,500k次迭代时学习率除以10530k次迭代终止训练。

Mask Influence.
在本实验中,我们探讨了Residual Attention Network的效率。我们比较了Attention-56和ResNet-152[10]。ResNet-152有50个主干残差单元和 60.2 × 1 0 6 60.2×10^{6} 个参数,相比在Attention-56中有18个主干残差单元和 31.9 × 1 0 6 31.9×10^{6} 个参数。我们使用ImageNet验证集上的single crop方案评估我们的模型,结果见表7。Attention-56网络大幅优于ResNet-152,top-1 error减少了0.4%,top-5 error减少了0.26%。更重要的是,与ResNet-152相比,Attention-56网络仅仅52%的parameters和56%的FLOPs就达到了更好的性能,这表明所提出的注意机制可以显着提高网络性能,同时降低模型复杂性。
在这里插入图片描述
Different Basic Units.
作者使用三个流行的基本单元:Residual UnitResNeXt[36]和Inception[32]来构建Residual Attention Network。为了使其与参数和FLOPs的数量保持相同,简化了Inception。结果如表7所示。

当基本单元为ResNeXt时,AttentionNeXt-56的性能与ResNeXt-101相同,而参数和FLOPs明显少于ResNeXt-101。对于InceptionAttentionIncepiton-56的优势超过了Inception-ResNet-v1[32],top-1 error减少了0.94%,top-5 error减少了0.21%。结果表明,该方法适用于不同的网络结构。

Comparisons with State-of-the-art Methods.
作者在ILSVRC 2012验证集上使用single crop评估的Attention-92与最先进的算法进行比较。结果如表7所示。Attention-92在很大程度上优于ResNet-200。top-1 error减少0.6%。注意,ResNet-200包含的参数比Attention-9232%。表7中显示的Attention-92的计算复杂度表明,与ResNet-200相比,通过增加注意机制和减少主干深度,我们的网络减少了近一半的训练时间。以上结果表明,我们的模型具有较高的效率和良好的性能。

5. Discussion


作者提供了Caffe版的相关实现代码,网络结构文件见Attention-56-deploy.prototxt
https://github.com/fwang91/residual-attention-network
在Caffe版的网络实现中,定义了一个Interp层,做插值操作,用来实现上采样。

可以参考帖子 https://blog.csdn.net/lwplwf/article/details/82418342 中的方法,在Netcope中可视化网络结构,对网络有一个整体上的认识。
下图所示为Attention-56的第1个stage的attention部分:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lwplwf/article/details/85709138