Press "Enter" to skip to content

打破Transformer宿命,新秀VOLO开源!横扫CV多项记录,首个超越87%的模型

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

 

作者丨Happy

 

近来,Transformer在CV领域遍地开花,取得了非常好的性能,指标屡创新高。但Transformer的性能距离最佳的CNN仍存在差距,不由产生出一种Transformer不过如此的感觉。可是,就在今天,Transformer领域的新秀VOLO打破了Transformer无法打败最优CNN的宿命, 成为了ImageNet数据上首个无需额外数据达到87.1%的模型 ;与此同时,VOLO在下游语义分割任上也创新了新记录,比如Cityscapes数据上的 84.3% ,ADE20K数据上的 54.3% 。

标题&作者团队

paper: https://arxiv.org/abs/2106.13112

 

code: https://github.com/sail-sg/volo

 

Abstract

 

视觉识别任务已被CNN主宰多年。基于自注意力的ViT在ImageNet分类方面表现出了极大的潜力,在没有额外数据前提下,但其性能距离最优秀的CNN仍具有差距。

 

本文旨在缩小上述性能差异并证实: 基于注意力的模型确实可以做的比CNN更好 。我们发现: 限制ViT在ImageNet分类方面性能的主要原因在于其将细粒度特征编码为词表达过程的低效性 。为解决该问题,本文提出了一种新颖的 outlook 注意力并构建了一种广义架构 Vision Outlooker (VOLO)。不同于仅仅聚焦于粗粒度全局依赖建模的自注意力,所提Outlook注意力旨在更高效的将细粒度特征与上下文信息编码到词表达中,而这对于识别性能非常重要,但往往被自注意力所忽视。

 

实验结果表明: 无需任务额外训练数据,所提出的VOLO成为ImageNet分类任务上首个达到87.1%top1精度的模型 。此外,预训练VOLO在下游任务上的迁移能力同样非常好,比如,在语义分割任务上,所提方案在ADE20K验证集上达到了54.3%,在Cityscapes验证集上达到了84.3%的mIoU指标,均创下了新记录。

Method

 

本文所提方法可以视作两阶段架构,第一个阶段包含多个用于生成细粒度词表达的Outlookers;第二个阶段采用Transformer序列集成全局信息。在每个阶段的开始,我们需要采用一个块嵌入模块将词表达映射到期望的形状。

 

Outlooker

 

Outlooker包含一个用于空间信息编码的outlook注意力层与一个用于通道间信息交互的多层感知器。给定C维词表达输入,Outlooker可以表示为如下形式:

 

Outlook Attention

Outlook注意力非常简单、高效且易于实现(见上图),其背后隐含的主要洞察在于:

 

每个空间位置的特征是足够成分并用于生成近邻特征聚合的注意力权值;

 

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

 

对于每个空间位置(i,j),Outlook注意力计算局部窗口内全部相似性。不用于自注意力仅需Query-Key矩阵乘(即),outlook通过简单的reshape操作简化了上述过程。

 

给定输入X,每个C维词首先采用两个线性层投影为Outlook权值与。假设表示局部窗口内所有值,即

 

Outlook Attention

 

(i,j)处的Outlook权值可以直接用作注意力权值,并reshap为后接Softmax函数。因此,值投影可以写成如下形式:

 

Dense Aggregation

 

Outlook注意力采用稠密方式聚合上述投影值表达,描述如下:

 

下图给出了Pytorch风格的伪代码实现,其中Eqn3,Eqn4, Eqn5对应上面三个公式。

Multi-Head Outlook Attention

 

多头Outlook注意力的实现非常简单,假设头数为N。我们仅需调节的形状为。因此,outlook权值与值嵌入被均匀的拆分为N份:。对于每对,Outlook注意力分别计算后并结果拼接构成多头Outlook注意力的输出。

 

Discussion

 

本文所提Outlook注意力继承了卷积与自注意力各自的优点,包含如下:

 

它通过度量成对词表达之间的相似性编码了空间信息,比卷积更加高效;

 

它采用滑动窗口形式在细粒度层面编码局部词表达,在某种程度上保持了对视觉任务非常重要的位置信息;

 

生成注意力权值的方式简单且高效。

 

Network Architecture Variants

 

我们在LV-ViT基础上构建了本文所提VOLO,在ImageNet上仅需150M参数即可取得86.2%的top1精度。原始的LV-ViT采用块嵌入模块将输入投影为的词,然后通过一系列Transformer模块在词上进行处理。为利用细粒度词表达,在第一阶段,我们调整了块嵌入模块并的图像块进行词化,而非;后接Outlookers堆叠生成细粒度的更具表达能力的词表达。在第二阶段,我们采用另一个块嵌入模块进行词下采样,然后采用一系列Transformer编码全局信息。

 

基于上述网络架构,我们构建了五个版本的VOLO,见下表。

Experiments

 

我们首先在ImageNet上进行了所提方法的性能对比,然后在下游任务上进行迁移能力对比。

 

ImageNet Classification

上表给出了所提方法与其他CNN、Transformer等方法的性能对比,从中可以看到:

 

在不同水平模型下,所提方法均取得了比其他方案更佳的性能;

 

以VOLO-D1为例,它仅需26.6M参数,在224分辨率即可取得84.2%的top1精度,在384分辨率可以进一步提升到85.2%,显着优化其他同等参数量的模型;

 

当模型参数量提升到296M,所提方案在ImageNet上达到了87.1%的top1精度,此为无额外训练数下的新记录。也即是说, VOLO-D5是业界首个仅需ImageNet训练数据即可达到87.1%top1精度的模型

 

所提方案在RealTop1与V2Top1基准上同样取得了最佳指标。VOLO-D4仅需193M参数量即可超过其他模型,包含CaiT-M48与NFNet。

 

更具体地, 所提方法在ImageNetV2上的表现更佳 。比如VOLO-D3可以在此前最佳指标的基础上提升0.8%且参数量更少;而VOLO-D5则可以进一步将模型性能提升到78%。

 

Semantic Segmantation

 

接下来,我们以前述预训练模型在语义分割任务上进行迁移能力验证。

上面两个表分别给出了Cityscapes与ADE20K数据上的性能对比,从中可以看到:

 

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

 

所提VOLO-D4+UperNet取得了当前最佳84.3%,以0.3%指标优于此前最佳,创造了Cityscapes验证集的新记录。

 

在ADE20K数据集上,所提方法同样取得了超过其他所有方法的性能。

 

VOLO-D5+UperNet的组合取得了54.3%的指标,同样取得了ADE20K数据上的新记录。

 

Ablation Analysis

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

 

模型缩放有助于提升模型性能,比如VOLO-D1到VOLO-D2可以带来1%的性能提升,VOLO-D5可以带来额外的1%提升;

 

更高分辨率的微调同样可以带来性能提升,约1%。

上表对比了,Outlooker数量与头数的影响对比,从中可以看到:

 

当步采用Outlooker时,基线模型的性能为83.3%,添加Outlooker可以提升模型型性能,当增加到4时性能达到饱和。Outlooker与Transformer的比例约为1:3时取得最佳性能。

 

Outlooker中使用更多的头可以带来轻微的性能提升且几乎不会造成额外参数量提升。

 

全文到此结束,更多消融实验与分析建议查看原文。

 

本文亮点总结

 

1.  本文发现,限制ViT在ImageNet分类方面性能的主要原因在于其将细粒度特征编码为词表达过程的低效性。

 

2.  VOLO可以视作两阶段架构,第一个阶段包含多个用于生成细粒度词表达的Outlookers;第二个阶段采用transformer序列集成全局信息。

 

3.  无需任务额外训练数据,VOLO成为ImageNet分类任务上首个达到87.1%top1精度的模型。预训练VOLO在下游任务上的迁移能力也非常好,在语义分割任务中,在ADE20K验证集上达到了54.3%,在Cityscapes验证集上达到了84.3%的mIoU指标,均创下了新记录。

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注