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

链接:https://arxiv.org/abs/2106.13112
代码:https://github.com/sail-sg/volo
作者单位:新加坡国立大学颜水成团队

导读

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

2介绍

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

如上图所示,Outlook attention简单,高效,易于实现。它的主要创新点就是:
每个空间位置上的特征足够全面,可以聚集其邻近特征然后生成局部注意力权值;
稠密的局部空间聚合可以高效的编码细粒度信息。
对于每个空间位置, outlook注意力计算以为中心的大小为 的局部窗口内所有邻近结点的相似度。不同于自我注意力需要一个Query-Key矩阵乘法来计算注意力,outlook直接通过一个简单的reshape操作来简化这个过程。具体来说,输入 每个 token使用两个线性层
进行映射得到outlook权重, value表示,然后我们用来表示在以为中心的局部窗口的所有value:
最后,在位置的outlook 权重可以直接用作注意力权值,首先可以通过一个reshape操作()后接Softmax:
权值投影过程可以表示为:
2.3 Dense Aggregation
outlook 注意力将特征进行聚集映射,即将同一位置的不同加权值相加得到输出:
具体代码如下:

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

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


4实验结果
4.1 Image Classification

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

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

可以看出,在相同的训练配置和架构下,我们的outlooker比局部自我注意力和空间卷积都表现得更好。此外,我们还可以观察到,在以LV-ViT-S为基准模型时,局部自注意力和空间卷积也可以提高性能,这表明对细粒度级别的标记表示进行编码对性能提升是有帮助的。
4.2 Semantic Segmantation
如下表9所示,在Cityscapes数据上,所提方法超过了其他所有方法,包含最近的SegFormer-B5.

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

5
消融实验
5.1 Model Scaling
我们对VOLO-D1模型进行缩放得到4个不同模型(VOLO-D2-VOLO-D5) 主要缩放策略如下:
增加训练模型大小,包括MLP中的网络深度,隐藏维度,expansion ratio;Outlookers和Transformer中的head数量; 在微调和测试阶段提高图像分辨率。

上表对比了模型缩放的性能影响,从中可以看到:
模型缩放有助于提升模型性能,比如VOLO-D1到VOLO-D2可以带来1%的性能提 升,VOLO-D5可以带来额外的1%提升; 更高分辨率的微调同样可以带来性能提升,约1%。

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。

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