分享

重大里程碑!VOLO屠榜CV任务,无需额外数据,首次在ImageNet 上达到87.1%

 黄爸爸好 2021-06-26
深度学习技术前沿
126篇原创内容
Official Account
Image
  •  链接:https:///abs/2106.13112

  •  代码:https://github.com/sail-sg/volo

  • 作者单位:新加坡国立大学颜水成团队

Image

导读

Image

近期Transformer的一系列变体在Imagenet分类任务上取得了显著的效果提升,指标屡创新高。如果没有额外数据的输入,它们的性能仍然不如最新的SOTA CNN模型。就在今天,颜水成大佬团队提出的VOLO打破了Transformer无法打败最优CNN的宿命,成为了ImageNet数据上首个无需额外数据达到87.1%的模型;此外,预训练好的VOLO模型还可以很好地迁移到下游任务,如语义分割。我们在Cityscapes验证集上获得了84.3% mIoU,在ADE20K验证集上获得了54.3% mIoU。

1摘要

视觉识别任务已被CNN主宰多年。基于自注意力的ViT在ImageNet分类方面表现出了极大的潜力,在没有额外数据前提下,Transformer的性能与最先进的CNN模型仍具有差距。在这项工作中,我们的目标是缩小这两者之间的性能差距,并且证明了基于注意力的模型确实能够比CNN表现更好。与此同时,我们发现限制ViTs在ImageNet分类中的性能的主要因素是其在将细粒度级别的特征编码乘Token表示过程中比较低效,为了解决这个问题,我们引入了一种新的outlook注意力,并提出了一个简单而通用的架构,称为Vision outlooker (VOLO)。outlook注意力主要将fine-level级别的特征和上下文信息更高效地编码到token表示中,这些token对识别性能至关重要,但往往被自注意力所忽视。实验表明,在不使用任何额外训练数据的情况下,VOLO在ImageNet-1K分类任务上达到了87.1%的top-1准确率,这是第一个超过87%的模型。此外,预训练好的VOLO模型还可以很好地迁移到下游任务,如语义分割。我们在Cityscapes验证集上获得了84.3% mIoU,在ADE20K验证集上获得了54.3%的mIoU,均创下了最新记录。

Image

2介绍

在这项工作中,我们提出了一种新的简单和轻量级的注意力机制,称为Outlooker,它可以有效地丰富token表示中更细粒度级别的特征信息。Outlooker创新的采用了将token进行聚合然后生成注意力的方式,这样可以使得模型能够有效地对细粒度级别信息进行编码表示。特别是,它是一种可以通过有效的线性映射直接从锚点标记特征中推断出聚合周围标记的机制,从而可避免昂贵的点积注意力计算。最后,基于所提出的outlook,我们提出了VOLO,一个简单而强大的视觉识别模型结构。VOLO采用两阶段架构设计,同时考虑了更具细粒度的标记表示编码和全局信息聚合。具体来说,给出一个大小为的输入图像,在利用自注意力在coarse level级别特征上构建全局依赖关系之前(例如,), VOLO将图像标记在较小尺寸的patch上(例如,),并使用多个outlook在细粒度级别上编码标记表示(例如,)。这样,最后所获得的token表示会更具有代表性,从而可显著提高模型在图像分类中的性能。VOLO与目前的SOTA模型的性能比较,如下表所示:
Image

2方法

VOLO可以看作是一个具有两个独立阶段的结构。第一阶段多个用于生成细粒度token表示的Outlookers。第二阶段我们部署一系列Transformer block来聚合全局信息。在每个阶段的最开始,使用一个patch embedding模块将输入映射到期望形状大小的的token表示中。

2.1 Outlooker 

outlook包括用于空间信息编码的outlook注意力层和用于通道间信息交互的多层感知器(MLP)。给定输入token表示序列, outlooker可以写成如下:

2.2 Outlook attention

Image

如上图所示,Outlook attention简单,高效,易于实现。它的主要创新点就是:

  1. 每个空间位置上的特征足够全面,可以聚集其邻近特征然后生成局部注意力权值;

  2. 稠密的局部空间聚合可以高效的编码细粒度信息。

对于每个空间位置, outlook注意力计算以为中心的大小为 的局部窗口内所有邻近结点的相似度。不同于自我注意力需要一个Query-Key矩阵乘法来计算注意力,outlook直接通过一个简单的reshape操作来简化这个过程。具体来说,输入 每个 token使用两个线性层

进行映射得到outlook权重, value表示,然后我们用来表示在以为中心的局部窗口的所有value:

最后,在位置的outlook 权重可以直接用作注意力权值,首先可以通过一个reshape操作()后接Softmax:

权值投影过程可以表示为:

2.3 Dense Aggregation

outlook 注意力将特征进行聚集映射,即将同一位置的不同加权值相加得到输出:

具体代码如下:

Image

2.4 Discuss 

outlook attention继承了卷积和自我注意力的优点。具体如下:

  1. outlook注意力通过度量每对标记表示之间的相似性来对空间信息进行编码,在特征学习方面比卷积更具有参数效率;
  2. outlook attention采用滑动窗口方式,在细粒度级别实现了对标记表示进行局部编码,并在一定程度上保留视觉任务的关键位置信息;
  3. outlook产生注意力权重的方法简单有效。与依赖于query-key矩阵乘法的自我注意力不同,我们的outlook权重可以通过一个简单的reshape操作直接产生,节省计算。具体示例如下:我们比较了在滑动窗口大小为, token大小为上计算参数量:
Image

可以看到,当C=384,K=3,N=6时,因为,,所以outlook attention在计算资源利用上更高效。

3模型架构

主要借鉴了LV-ViT模型,VOLO的具体设置如下:为了获取到细粒度的token表示,在第一阶段,我们首先调整patch嵌入模块,使其在大小为的小图像patch上进行标记序列化,而不是然后通过堆叠一系列Outlookers生成更具细粒度特征表达能力的token表示。第二阶段,利用另一个patch embedding 模块对标记进行下采样。然后采用一组Transformer block对全局信息进行编码。我们基于VOLO提出了五个版本: VOLO: VOLO-D1, VOLO-D2,VOLO-D3, VOLO-D4, and VOLO-D5. 具体详细结构及配置信息如表2,表3所示:
Image
Image

4实验结果

4.1 Image Classification

Image

如上表所示,在不同的模型尺寸水平上,我们提出的VOLO取得了比当前最先进的模型更佳的性能。具体如下:

  1. VOLO-D1只有26.6M参数量,在输入图片为224分辨率大小时,VOLO-D1在ImageNet上已经可以获得84.2%的top-1精度。对输入图片为384分辨率大小进行微调后,性能进一步提高到85.2%,明显优于所有具有相同训练参数的模型。
  2. 当模型尺寸缩放到296M时,我们可以在ImageNet上达到87.1%的top-1精度,在没有额外训练数据的情况下创造了新的记录。VOLO-D5是业界首个仅需ImageNet训练数据即可达到87.1%top1精度的模型。

与当前最先进的Transformer模型LV-Vit-S相比,具体如下表所示:

Image显然,VOLO仅使用27M的参数量,性能可以从83.3提高到85.2(+1.9)。我们还尝试用其它的细粒度征编码方法替代所提出的outlook注意,包括局部自注意力和空间卷积。为了进行公平的比较,我们将窗口大小设置为结果见表6。

Image可以看出,在相同的训练配置和架构下,我们的outlooker比局部自我注意力和空间卷积都表现得更好。此外,我们还可以观察到,在以LV-ViT-S为基准模型时,局部自注意力和空间卷积也可以提高性能,这表明对细粒度级别的标记表示进行编码对性能提升是有帮助的。

4.2 Semantic Segmantation

如下表9所示,在Cityscapes数据上,所提方法超过了其他所有方法,包含最近的SegFormer-B5.

Image

如下表10所示,在ADE20K数据集上,所提方法同样取得了超过其他所有方法的性能。VOLO-D5取得了54.3%的指标,同样刷新了ADE20K数据集上的记录。

Image

5
消融实验

5.1 Model Scaling

我们对VOLO-D1模型进行缩放得到4个不同模型(VOLO-D2-VOLO-D5) 主要缩放策略如下:

  1. 增加训练模型大小,包括MLP中的网络深度,隐藏维度,expansion ratio;Outlookers和Transformer中的head数量;
  2. 在微调和测试阶段提高图像分辨率。
Image

上表对比了模型缩放的性能影响,从中可以看到:

  1. 模型缩放有助于提升模型性能,比如VOLO-D1到VOLO-D2可以带来1%的性能提 升,VOLO-D5可以带来额外的1%提升;
  2. 更高分辨率的微调同样可以带来性能提升,约1%。
Image

5.2 Number of Outlookers

我们观察到,在VOLO中使用的Outlookers的数量对分类性能有影响。在这里,我们研究了使用不同数量的outlook在VOLO中的影响。请注意,所有的Outlooker都作用于更精细的标记表示(28  28)。结果显示在表8的顶部部分。在没有outlook的情况下,有16个变压器的基线精度为83.3%。增加Outlookers的数量可以改善结果,但性能饱和时使用4 Outlookers。进一步增加更多的outlook不会带来任何性能的提高。因此,当放大模型时,我们大约使用1:3的比例为outlook和transformer。

Image

5.3 Head Number in Ourlookers

在Transformer中,每个head的通道维度与给定的固定隐藏维度的head数量成反比,基于此,我们展示了不同head数量的Outlookers性能比较。实验表明,在Outlookers中使用更多的head可以略微改善性能,几乎没有额外的参数增加,但当head数量大于6时,性能增益将消失。因此,默认情况下,我们将Outlookers中的head数量设置为6,用于384个隐藏维度。当隐藏维度设置为768时,我们在Outlookers中使用12个head。

Image

6总结

我们提出了一种新的模型——Vision Outlooker (VOLO),它解决了ViT在对细粒度特征编码为token表示过程比较低效的问题,我们提出的outlook注意力能够将更具细粒度级别的特征和上下文信息高效地编码到token表示中。我们提出VOLO主要包括两个阶段,第一个阶段包含多个用于生成细粒度token表示的Outlookers;第二个阶段部署Transformer block来聚合全局信息。最后,无需任何额外训练数据,VOLO在ImageNet分类任务上成为了首个达到87.1%top1精度的模型。预训练的VOLO在下游任务上的迁移能力也非常好,在语义分割任务中,在ADE20K验证集上达到了54.3%,在Cityscapes验证集上达到了84.3%的mIoU指标,均创下了新记录。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多