ViT优化难?那是你的stem有问题,FAI的Ross Girshick团队提出了新的Stem设计方案

2021-07-05 18:50:55 浏览数 (1)

近来,Transformer在CV领域各种“搅局”,不断刷新其指标。但ViT存在先天的不足:优化难、依赖大尺度数据、依赖数据增强、超参敏感等等。关于这些因素背后根本原因一直尚未有学者进行探索。今天FAIR的Tete Xiao、Ross Girshick、Piotr Dollar等人对此进行了深入挖掘,找到了其背后的“根因”,也提出了一种Stem设计选择。

标题&作者团队

本文是FAIR的Ross Girshick团队关于ViT优化难问题的深度思考。从ViT对优化、超参、训练周期敏感性出发,揭示了其背后的根本原因patchify stem,并在此基础上提供了一种选择:轻量型堆叠卷积stem。虽然本文没有提出什么特别新的架构,但这篇文章的分析、实验、归因等做的非常到位,值得各位CVer一读。

Abstract

近来ViT在CV领域一篇火热,各个子领域不时会有新成果面世。然而,ViT存在严重的优化难问题。具体来说,ViT对优化器的选择、优化器超参、训练周期等极为敏感。相反,主流CNN非常易于优化。为什么会发生这种现象呢?

在本文中,我们认为:ViT模型的优化难主要在于patchify stem模块,它采用stride=p的

ptimes p

卷积实现(默认p=16)。这种大核 大步长卷积背离了主流CNN的卷积设置(小核)。为验证是否该非典型设计导致了该问题,我们通过替换stem分析了ViT的优化行为。我们发现:采用简单的堆叠卷积替换ViT的大尺度卷积可以引起完全不同的训练行为。也就是说,采用Convolutional stem可以极大提升ViT的优化稳定性,同时提升其峰值性能(提升~1-2%)。而且,这种改善跨数据集、跨模型大小。上述发现促使我们采用标准的、轻量型stem构建ViT模型的stem进而得到一个更鲁棒的ViT架构。

Vision Transformer Architectures

上图为我们在ViT基础上进行了架构微调,主要包含两点:

  • 采用堆叠卷积替换原始的大核卷积;
  • 为补偿堆叠卷积带来的计算量提升,我们移除了一个Transformer模块。

需要说明的是:混合CNN/ViT架构设计并非本文的目的,更高性能的ViT架构设计与探索也并非本文目的。本文旨在挖掘ViT优化难背后的原因并提出一种有效的解决方案用于构建鲁棒高性能ViT

Vision Transformer ViT首先将图像块块化为非重叠块,然后将其投影为

d

维特征现象。一般来说,块尺寸为

16times 16

,输入图像大小为

224 times 224

。所得块嵌入(加上位置嵌入、分类词嵌入)经由标准Transformer模块处理后送入分类头。采用标准网络命名法,我们将ViT中Transformer模块之前的视作stem,即原始ViT的stem为大核卷积,我们暂且将其称之为patchify stem。我们将CNN中的堆叠卷积形式称之为convolutional stem

ViT_p

models 之前的工作设计了不同大小的ViT模型,比如ViT-Tiny,ViT-Small,ViT-Base。为更方面与CNN进行对比,我们将其标准化为1GF、2GF、4GF、8GF形式,见下表。注:下角标p表示采用patchify stem

ViT_C

models

ViT_p

相对的,我们将采用convolutional stem的ViT称之为

ViT_C

。配置同样见上表。

Experiments

已有研究表明:ViT在优化方面极具挑战,对训练数据大小、数据增强、优化器选择等均非常敏感。接下来,我们将从这样几个方面进行对比分析。在正式呈现结果之前,我们先对待评价的不稳定因子进行简单说明。

Training Length Stability

上表对比了不同大小、不同配置模型在不同训练周期下的性能对比,可以看到:

ViT_C

表现出了比

ViT_P

更快的收敛速度,且跨模型大小、跨训练周期;

  • 训练周期为50epoch时,stem的调整改善最明显。比如
ViT_p-1GF

的误差为10%,而

ViT_C-1GF

则下降到了6%。

Optimizer Stability

上图对比了优化器的影响,其中上三角表示SGD优化器,下三角表示AdamW优化器。从中可以看到:

  • 基线模型RegNetY对于优化器的选择非常不敏感,几乎没有明显性能差异;
  • 相反的,
ViT_P

则存在严重的性能差异,最高甚至达到了10%;

  • 当采用convolutional stem时,ViT采用SGD与AdamW优化的性能差异得到了显著缩小,小于0.2%;
  • 也就是说,RegNetY与
ViT_C

可以通过SGD或者AdamW进行轻易优化,而

ViT_P

却不行。

Learning Rate and Weight Decay Stability

上面两个图对比了优化器超参的影响性,可以看到:

ViT_C

对于学习率与权重衰减的稳定性敏感优于

ViT_P

Peak Performance

最后,我们再对比一下模型的峰值性能,见上图与表。从中可以看到:Convolutional Stem不仅可以改善优化稳定性,同时可以提升模型的峰值性能

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

0 人点赞