Residual Attention: A Simple but Effective Method for Multi-Label Recognition论文阅读笔记

残差注意力:一种简单有效的多标签识别方法

ICCV2021
论文链接
代码链接

摘要: 多标签图像识别是一项具有挑战性的计算机视觉任务。该领域的进展方法往往复杂、计算繁重且缺乏直观解释。为有效捕捉不同类别对象所占据的不同空间区域,我们提出了一个非常简单的模块:类特定残差注意力(class-specific residual attention:CSRA)(class-specific也称作class-aware的检测:输入一张图片,返回检测到的每一个类的bbox,即检测器在完成检测的同时也知道所检测的每一个bbox属于哪一类。这种方式对于有多类前景的数据集来说,效率不高;class-agnostic :只得到前景和背景两类bounding box,然后利用一个专门的分类器计算每个box中所有类别的得分,最终得到图片中所有类别的检测结果。这种方式大幅减少了bbox的回归参数)。CSRA通过提出一个简单的 空间注意力分数 为每个类别生成 class-specific特征,然后将其与class-agnostic 平均池特征相结合。 CSRA在多标签识别方面取得sota结果,且更简单。此外,仅需4行代码,无需任何额外的训练,CSRA就可以在许多不同的预训练模型和数据集上实现一致改进。CSRA易于实现,计算量小,且可以被直观的解释及可视化。


1. Introduction

卷积神经网络(CNN)在许多计算机视觉任务中独占鳌头,尤其在图像分类中。尽管目前已经有许多用于单标签分类的网络架构,例如VGG、ResNet、EfficientNet和VIT,但多标签识别的进展仍然不大。多标签任务中,对象的位置和大小变化很大,难以学习适合所有对象的单个深度表示。
最近的多标签识别研究主要集中在三个方面:标签间的语义关系、object proposals和注意力机制。为探索语义关系,采用了贝叶斯网络、递归神经网络(RNN)和图卷积网络(GCN),但它们的计算成本很高或需要手动定义邻接矩阵。基于 proposals 的方法在处理 object proposal 方面太耗时。虽然注意力模型是端到端的且相对简单,但多标签分类要借助于复杂的空间注意力模型,难以优化、实现或解释。相反,我们提出了一个非常简单且易于训练的类特定残差注意力(CSRA)模块,以分别充分利用每个对象类的空间注意力,并实现更高的准确性。 CSRA模块的计算成本也可以忽略不计。
我们的动机来自图1,仅4行代码,无需额外的训练,就能在许多不同的预训练模型和数据集上改善多标签识别,如表1所示。唯一的变化是在常用的全局平均池的基础上添加一个全局最大池,但能取得持续的改进。 在单标签识别任务ImageNet上也验证了其优势。

在这里插入图片描述

图1。使用 Pytorch 在测试阶段进行的简单修改,其中Lambda(或λ)是一个超参数,它结合了全局平均和最大池分数。当Lambda(λ)为0时,分数等于y_avg,这是 baseline 模型的分数。


在这里插入图片描述

表1。在3个多标签识别数据集和1个单标签识别数据集上,对现有的一组不同模型进行了非常简单、几乎零成本、无需训练的改进。


本文证明了这种操作,即每个类的不同空间区域间的最大池,实际上是一种 class-specific attention 操作,可以进一步视为 class-agnostic 全局平均池的残差部分 因此,我们对其进行了推广,提出了一个简单的类特定残差注意力模块(CSRA),并在四个多标签数据集(VOC2007、VOC2012、MSCOCO和 WIDER-Attribute)上实现了sota。此外,CSRA对如何将空间注意力整合到其中有一个直观的解释。
我们的贡献总结如下:

  • 一种非常简单但有效的方法,用于改进预训练模型,无需任何进一步训练;
  • 一个简单有效的CSRA模块,在四个多标签识别数据集上取得了优异的结果;
  • 对注意力模块的直观解释(加上可视化)。

2. Related Work

我们先简要回顾多标签图像分类的最新进展。
许多方法通过使用依赖网络、成对 co-occurrence 邻接矩阵或条件图来关注对象或对象类之间的语义关系,然而,由于指数增长的标签空间,图中的推理可能非常困难,并且通常通过 Gibbs 采样进行近似。最近,由于图卷积网络(GCN)的流行,许多工作关注一阶邻接矩阵构造的成对统计。但小训练集中的 co-occurrence 统计数据不可靠,且容易导致过拟合。此外,高阶关系超出了GCN所能代表的范围。递归神经网络(RNN)也被应用于探索高阶标签相关性,但RNN在多标签任务中的有效性有待证明。此外,训练RNN常需要专门的超参数调整,不适合实际应用。
生成 object proposals 是另一种方法。object proposals 通过EdgeBoxes 或 Selective Search 等方法生成,然后送到共享CNN中,最后,使用一个 category-wise max-pooling 来融合 proposals 的分数。然而,proposals 数量庞大,计算成本高昂。
注意力机制广泛应用于各种视觉任务中,例如检测和跟踪。在多标签识别中,一个代表性示例是SRN,它使用空间正则化网络来校正原始预测。Sarafianos等人提出了一个类似的 pipeline 来聚集visual attention,Durand等人生成多类热图来收集预测分数。这些注意力方法需要精细的设计,且无法直观解释。最近,You等人使用一个 cross-domain 模型来提取 class-specific 特征,但他们放弃了class-agnostic 的平均池化。高和周提出了一种用于多标签图像分类的detection-like pipeline,但推理过程代价高昂。还有其他复杂的基于注意力的方法,如知识蒸馏、visual attention consistency 和 suppressing negative class activation map 。
现有的基于注意力的方法要么放弃类不可知平均池,要么设计复杂的pipeline,不同于它们,本文提出了一种残差注意力模块,该模块使用一个 class-agnostic average pooling 和一个 class-specific spatial pooling 来获得多标签图像分类的鲁棒特征。我们想强调CSRA与之前的注意力模型SRN有很大不同,CSRA重用分类器的权重,没有额外的参数,而SRN有一个复杂的 pipeline 和许多额外的参数。我们还将CSRA推广到 mutil-head attention,这与SRN中的整体结构完全不同。我们的CSRA是端到端可训练的,而SRN需要一个三阶段的专用模型训练和微调过程。

3. Class-specific Residual Attention

为了展示CSRA模块,我们从图1中的代码和表1中的结果开始。

3.1. Why global max pooling helps? 为什么全局最大池有帮助?

表1列出了不同数据集上不同 backbone 网络的实验结果。由于之前关于多标签识别的研究很少发布其代码或预训练模型,因此除了GCN 方法外,我们还使用MobileNet、ResNet、EfficientNet和VIT训练我们自己的模型以获得 baseline 结果。在我们的简单修改中,λ有两种选择方式:① 在第一个(“Varying λ”)中,为每个实验调整λ;② 在第二个(“Fixed λ”)中,始终使用0.02表示ResNet系列中的模型,0.2表示所有其他模型。对多标签任务,使用mAP作为评估指标,对于ImageNet(单标签),使用精度(“acc”)评估。
表1中,表示使用CutMix在ImageNet上预训练ResNet-101,pretrained “ResNet-50/-101”从PyTorch官方网站下载。“EfficientNet”和“MobileNet”分别是EfficientNet-B3和MobileNet-V2。除“VIT-B16-384”(384×384分辨率)外,所有VIT模型均在ImageNet-21k上预训练,并在ImageNet上以224×224分辨率进行微调。对于VIT模型,我们放弃了 class token,并使用最终输出patch embedding 作为特征张量,在VOC2007和MS-COCO上以更高分辨率微调时,插值 positional embeddings 。
这些结果表明,简单添加 max pooling 可以持续改进多标签识别,尤其是在baseline 模型 mAP不高的情况下。事实上,正如“Fixed λ”结果所示,我们的简单修改对λ具有鲁棒性,这意味着这4行代码就已经是一种改进多标签识别的实用方法:简单、成本最小、training-free,且对超参数不敏感。

为什么简单的全局最大池有帮助? 首先,图1中的 y_max 为每个类别找到了其在所有空间位置中的最大值。因此,它可以被视为一种 class-specific 注意力机制。我们猜想它将我们的注意力集中在不同对象类别在不同位置的分类分数上。 直观而言,这种注意力机制对于多标签识别非常有用,尤其是当存在来自多个类别且大小不一的对象时。

3.2. Residual attention 残差注意力

图1的注意力解释启发我们对其进行推广,并设计一种可训练的注意力机制。
对于给定的图像 I,先将其送到特征提取器(CNN backbone) ϕ \phi ϕ 中获得特征张量 x ∈ R d × h × w x∈ R^{d×h×w} xRd×h×w,其中d,h,w是特征张量的维数、高和宽:
在这里插入图片描述
θ 是 CNN backbone 的参数。简单起见,采用ResNet-101,输入分辨率 224 × 224 为例,因此,特征张量 x 的 shape 为: 2048×7×7,能解耦为: x 1 , x 2 , . . . , x 49 ( x i ∈ R 2048 ) x_1, x_2, . . . , x_{49} (x_i ∈ R^{2048}) x1,x2,...,x49(xiR2048),接下来,全连接(1×1卷积)层作为分类器(图1中的FC), m i ∈ R 2048 m_i∈ R^{2048} miR2048是第 i 类的分类器。当使用不同的设置时,可以相应地更改常量,例如49。
现在,将第 i 个类和第 j 个位置的 class-spacific 注意力分数定义为:
在这里插入图片描述
其中, ∑ j = 1 49 s j i = 1 \sum_{j=1}^{49} s_{j}^i=1 j=149sji=1,T>0是控制 scores’ sharpness 的温度(温度这个参数的解释参考链接:原始的softmax函数是T=1时的特例, T<1 时,概率分布比原始更“陡峭”,T>1 时,概率分布比原始更“平缓”。温度越高,softmax上各个值的分布就越平均(思考极端情况: (i) T->0 , 此时softmax的值是平均分布的;(ii) T->∞,此时softmax的值就相当于 argmax, 即最大的概率处的值趋近于1,而其他值趋近于0))。可将 s j i s_{j}^i sji 视作第 i 类出现在第 j 位置的概率。
然后,可以将 class i 的 class-specific feature vector 定义为feature tensor的加权组合,第i类的注意力分数 s k i s^i_k ski(1 ≤ k ≤ 49) 是权重,如下所示:
在这里插入图片描述
相反,整个图像的经典的 global class-agnostic feature vector是:
在这里插入图片描述
由于g已被广泛应用并取得了良好效果,所以将其作为主要特征向量。 a i a^i ai视为 class-specific 残差特征。 如图2所示,add 这两个向量获得第 i 类的类特定残差注意力(CSRA)特征 f i f^i fi
在这里插入图片描述
这就构成了CSRA模块。
最后,将所有这些 class-specific feature vectors 送到分类器以获得最终 logits:

在这里插入图片描述
C是类别数。

在这里插入图片描述

图2: CSRA模块用于获取第 i 类的特征和分类结果。

3.3. Explaining the CSRA module 解释CSRA模块

我们首先证明了图1实际上是CSRA模块的特例。通过将等式(2)到等式(5)代入到等式(6),可以很容易地导出第i类的logit为:
在这里插入图片描述
等式(7)右侧的第一项( m i T g m_i^Tg miTg)是第 i 类的基本 logit ,可以写成 1 49 ∑ k = 1 49 x k T m i \frac{1}{49}\sum_{k=1}^{49}x_k^Tm_i 491k=149xkTmi(图1中的y_avg),第二项中, x k T m i x^T_km_i xkTmi是第 i 类在位置k(1≤ k≤ 49)处的分类分数,然后通过正则化注意力分数 s k i s^i_k ski进行加权,形成平均 class-specific 分数。
众所周知,当T→ ∞ 时,softmax输出 s k i = e x p ( T x k T m i ) ∑ l = 1 49 e x p ( T x l T m i ) s^i_k=\frac{exp(Tx^T_km_i)}{∑^{49}_{l=1}exp(Tx^T_lm_i)} ski=l=149exp(TxlTmi)exp(TxkTmi)成为 Dirac delta 函数(除0外的点取值都为0,其在整个定义域上的积分等于1),其中 s i k s_i^k sik(1≤ k≤ 49)中的最大元素对应于所有的概率质量(probability mass) ,而其他所有元素均为0。因此,当T→ ∞ 时,
在这里插入图片描述
显然,等式(9)中的最后一项恰好对应于图1中的 Lambda*y_max,图1中的测试时间修改不仅是CSRA的动机,也是CSRA的特例。
对比等式(8)与等式(9),CSRA不仅依赖于一个位置来获得残差注意力,而是依赖所有位置获得残差注意力特征。直观而言,当输入图像中有来自同一类的多个小对象时,CSRA与单独的全局平均池或单独的全局最大池相比具有明显的优势。 更具体地说,我们有:
在这里插入图片描述
其中 ∑ k = 1 49 1 49 = 1 且 ∑ k = 1 49 s k i = 1 ∑^{49}_{k=1}\frac{1}{49}=1 且 ∑^{49}_{k=1}s^i_k=1 k=149491=1k=149ski=1,且常量乘数 1+λ 可以忽略,因此,第 i 类的最终CSRA特征向量是特征张量 x k x_k xk 的加权组合。位置 k 的权重: 1 49 + λ s k i 1 + λ \frac{\frac{1}{49}+λs^i_k}{1+λ} 1+λ491+λski是正则化的,因为 ∑ k = 1 49 1 49 + λ s k i 1 + λ = 1 \sum_{k=1}^{49}\frac{\frac{1}{49}+λs^i_k}{1+λ}=1 k=1491+λ491+λski=1,该权重也是两项的加权组合: 1 49 和 s k i \frac{1}{49}和 s^i_k 491ski

  • 1/49对应于一个先验项,独立于类别 i 和位置 k ;
  • s k i s^i_k ski表示类别 i 中的对象占据位置 k 的概率(基于 x k x_k xk计算),对应于数据似然项,该似然项取决于第 i 类的分类器 m i m_i mi 和位置 k 的特征 x k x_k xk。从这个角度来看,使用这个 class-specific and data-dependent score 作为注意力分数既直观又合理。

3.4. Multi-head attention

温度超参数T可能难以调整,不同的类可能需要不同的温度(或不同的注意力分数。因此,我们进一步提出了一个简单的多头注意力来扩展CSRA,如图3所示。
使用残差注意力的多个分支(或head)(图2/等式7),每个分支使用不同的温度T,但共享相同的λ。 H 代表注意力 head 的数量。为避免调节温度T,要么选择具有固定温度T=1的单头(H=1),要么使用具有固定温度序列 T 1 , T 2 , … , T H T_1,T2,…,T_H T1,T2,,TH 的多头注意力(H>1)。除H=1外,还使用了H=2、4、6、8。具体而言:
在这里插入图片描述
也就是说,当H>1时,最后的 T H T_H TH总是∞, 其他T按递增顺序选择。不同的T值可以为分支带来多样性,因此形成更好的分类结果。简而言之,CSRA中不需要调整T。
为提高收敛速度,将分类器的权重归一化为单位向量(unit vectors)(即, m i ← m i ∣ ∣ m i ∣ ∣ m_i ← \frac{m_i}{∣∣m_i∣∣} mi∣∣mi∣∣mi),实验表明,这种归一化在准确性上没有差异,但它可以加快训练过程的收敛。
不同 head 的 logits: y ^ T 1 , y ^ T 2 , y ^ T H ( y ^ T i ∈ R C ) \hat{y}_{T_1},\hat{y}_{T_2},\hat{y}_{T_H}(\hat{y}_{T_i}∈ R^C) y^T1y^T2y^THy^TiRC相加获得最终的 logits:
在这里插入图片描述
其中, T i T_i Ti 是第 i 个 head 的温度。
最后,使用经典的 binary cross entropy(BCE)损失来计算预测 y ^ o \hat{y}_o y^o 与 ground truth标签间产生的损失,并使用随机梯度下降(SGD)优化方法来最小化该损失函数。因此,CSRA(单头或多头)结构简单,易于实现。

4. Experimental Results

4.1. Experimental settings

训练细节: 如上所述,通过使用SGD最小化BCE损失,以端到端的方式构建多标签识别模型。通过随机水平翻转和随机调整大小的裁剪进行数据增强。当训练 baseline 模型(无CSRA的BCE损失),对backbone和分类器使用0.01的初始学习率。为了训练残差注意力模型,分别为CSRA模块和分类器选择0.1的学习率,为CNN backbone 选择0.01的学习率。应用 warmup scheduler 来训练 baseline 模型和CSRA模型。CNN backbone 从各种预训练模型初始化,并在多标签数据集上微调30个epoch。momentum=0.9, weight decay=0.0001。WIDER Attribute数据集的 batch size=64, input image resolution=224 × 224, MS-COCO,VOC2007和VOC2012 的 batch size=16,input image resolution=448 × 448。

评估指标: 广泛使用的平均精度(mAP)是主要评估指标。设置正阈值=0.5,也采用了总体精度(OP)、总体召回率(OR)、总体F1度量(OF1)、每类精度(CP)、每类召回率(CR)和每类F1度量(CF1)。

4.2 与sota对比

VOC2007: 在VOC2007上,,H=1,T=1,λ=0.1,如表2所示,CSRA超越了先前的SOTA模型。

在这里插入图片描述

表2:VOC2007数据集SOTA模型与CSRA对比结果。“-”表示未提供结果;“extra date”是指在MS-COCO上预训练;“+”表示使用较大的输入图像分辨率。


VOC2012: 如表3所示,当仅使用ResNet-101 ImageNet预训练模型时,CSRA超过了以前的方法。

在这里插入图片描述

表3:VOC2012数据集SOTA模型与CSRA对比结果


MS-COCO: MS-COCO中对象形状和大小的变化比VOC更复杂,因此采用更大的λ和多个head来提高attention。从表中可看出:ResNet-101添加CSRA 后,mAP显著提高,在非ResNet系列模型上,CSRA也实现了SOTA。注意,ASL使用了多种复杂的数据扩充方法,而ours只使用了简单数据扩充(水平翻转和随机调整裁剪)。

在这里插入图片描述

表4:MS-COCO上各指标对比结果,上部块对应于基于ResNet-101的模型,下部块对应于非ResNet模型。∗符号意味着使用RandAugment。


WIDER-Attribute: 采用VIT作为backbone,H=1,T=1,λ=0.3。由下表可知,对VIT的改进幅度很大。结合在MS-COCO上的实验结果,表明所CSRA模块不仅适用于经典的ResNet backbones,也适合于非卷积深度网络,如VIT。

在这里插入图片描述

表5:WIDER-Attribute上与SOTA对比

4.3. Effects of various components in CSRA 各部件的作用

Class-agnostic vs. class-specific: 只改变计算第 i 类的总体特性的过程: 仅使用average pooling,则整体特征 f i = g f^i=g fi=g;仅使用spatial pooling,则 f i = a i = ∑ k = 1 49 s k i x k f^i=a^i=∑^{49}_{k=1}s^i_kx_k fi=ai=k=149skixk,两者结合则是CSRA采用的: f i = g + λ a i f^i=g+λa^i fi=g+λai
如表6所示:class-specific attention(spatial pooling)比class-agnostic attention(average pooling)更有效。而两者的结合CSRA明显优于两者单独使用。所以,CSRA更适合于小对象的识别。
在这里插入图片描述

表6:在MS-COCO数据集上应用平均池与空间池的效果。


可视化attention: 表6证实了类特定注意力对多标签识别很重要。直观而言,当存在许多小对象时,CSRA特别有用。如heatmap所示,即使有多个人(包括仅占用少量像素的人),CSRA的注意力得分也能有效地捕捉到这些人的位置,图4 借助注意力分数的可视化来验证此观点。

在这里插入图片描述

图4。一张来自MS-COCO 2014的样本图像(左侧)和“person”类的注意力分数重叠在其上(右侧)。将分数图调整为与输入图像相同的大小。


可视化的结果表明,即使有多人(包括仅占用少量像素的人),CSRA的注意力分数(等式2中的 s j i s^i_j sji,i对应于“person”类,j枚举所有位置)也能有效捕捉人的位置。

λ 的作用:以VIT-L16和ResNet-cut为backbone,在MS-COCO和VOC2007数据集上评估不同λ的性能。如图5所示,VIL-L16的性能在λ=1附近稳步上升至峰值;ResNet-cut在λ=0.1时达到最高分数。
由图可知,CSRA对λ相对稳健,但不同的backbone可能需要不同的λ。当λ变大时,average pooling的影响逐渐下降,spatial pooling将主导模型。

在这里插入图片描述

图5。λ对使用VILL16作为backbone的MS-COCO数据集和使用ResNet-cut的VOC2007的影响。分别为其设置分类器数量 num H=8和H=1。


attention head 的数量:使用VIT-L16和ResNet-cut作为backbone,并评估不同数量head的性能,表7所示,当H增加到较大数量(6或8)时,mAP稳步增加,证明了CSRA的mutil-head attention 的有效性。
在这里插入图片描述

表7:在MS-COCO数据集上测试CSRA中attention head 数量的影响


Normalization:测试分类器 m i m_i mi 的normalization效果,采用ResNet-101作为backbone,并在MS-COCO上评估性能,由表8可知,由于所有的mAP结果彼此接近,正则化的效果在mAP方面是有限的。使用normalization不是为了提高精度,而是为了在训练过程中提高收敛速度

在这里插入图片描述

表8。分类器正则化对ResNet-101 CNN主干的MSCOCO数据集的影响。这些数字是不同设置下的 mAPs。

5. 总结展望

  1. 该研究提出了一种简单有效的多标签图像分类框架 CSRA。 仅通过四行代码,就能够提高多标签分类任务的准确率。
  2. CSRA的mutil-head attention 版本不仅能提高识别精度,而且能消除对超参数的依赖。
  3. CSRA在4个基准数据集上的表现优于现有的SOTA方法,不仅简单,而且可解释性更强。
  4. 在未来,可以将CSRA推广到通用图像表示学习中,并进一步验证残差注意力。
  5. 在其他cv任务,例如目标检测中是否有用。
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值