paper:Early Convolutions Help Transformers See Better
出发点
本文的出发点是解决 ViT 模型在优化性方面的问题。作者假设问题主要出现在 ViT 的早期视觉处理部分,即 "patchify" 过程,这是通过一个大的步幅和大核卷积来实现的。这种设计与典型卷积层的设计选择相矛盾。为了验证这个假设,作者将 ViT 的 "patchify" 过程替换为一个由少量叠加的 3×3 卷积组成的简单对照组。
创新点
作者通过实验表明,用卷积替换 ViT 的 "patchify" 过程显著提高了优化稳定性,并提高了最终模型的准确性。具体包括:
- 卷积stem的引入:通过在 ViT 模型中引入轻量级的卷积stem,提高了模型的优化稳定性和性能。
- 优化器选择的灵活性:卷积stem使得 ViT 模型可以在不显著降低准确率的情况下,首次实现了 AdamW 和 SGD 的灵活使用。
- 学习率和权重衰减选择的稳定性:卷积stem使得 ViT 模型对学习率和权重衰减选择的敏感性显著降低。
- 性能提升:卷积stem的 ViT 模型在 ImageNet 顶级错误率方面的性能改进,使其能够超过最先进的 CNNs,而原始 ViT 模型则不能。
方法介绍
\(\mathbf{ViT}_P\) models. 之前的ViTs包括不同大小的variants如ViT-Tiny、ViT-Small、ViT-Base等,为了便于与CNN比较,CNN通常标准化为1 gigaflop(GF)、2GF、4GF等,作者对原始的ViT进行了修改来得到对应这些复杂度的模型,如表1左所示。下表P表示这些模型使用了原始的patchify stem。
\(\mathbf{ViT}_C\) models. 这里下标C表示使用的是conv stem,卷积stem堆叠多个3x3卷积和一个1x1卷积用来对齐通道维度。通过conv stem将224x224的输入图像快速降采样到14x14大小,其中所有的3x3卷积要么步长为2同时输出通道翻倍,要么步长为1且输出通道保持不变。在 \(\mathbf{ViT}_C\) 中为了弥补conv stem带来的额外FLOPs作者还去掉了一个transformer block,如图1所示。
具体配置如表1右所示,\(\mathbf{ViT}_P\) 和 \(\mathbf{ViT}_C\)
对应的模型在所有复杂度指标上都紧密匹配包括flops和runtime。
许多文献都指出ViT模型的优化具有挑战性,例如在中等大小的数据集(ImageNet-1K)上训练时只能得到一般的精度、对数据增强和优化器的选择敏感、当网络较深时表现不佳等,作者将这些优化特征称为 \(optimizability\) 可优化性。作者通过实验对比了patchify stem和conv stem在训练长度稳定性、优化器稳定性、超参稳定性和最佳性能这四点上的差异。
Training length stability. 在ImageNet数据集上,作者将400个epoch的top-1精度作为近似的渐近结果approximate asymptotic result,即训练更长时间也不会有意义的提高top-1精度了。然后将其与训练50、100、200个epoch的模型精度进行对比,并将与渐近精度之间的差距定义为训练长度稳定性。直观上来说这是一种衡量收敛速度的指标,收敛速度更快有明显的好处,特别是在训练多个模型时。
Optimizer stability. ViTs一般采用AdamW优化器,在DeiT这篇文章中指出将优化器替换为SGD时精度下降了7%。相反在CNN如ResNet中使用各种优化器并不会有明显的精度差异。作者将优化器稳定性定义为AdamW和SGD之间的精度差距。
Hyperparameter (lr, wd) stability. 学习率(learning rate, lr)和权重衰减(weight decay, wd)是控制SGD和AdamW算法优化的最重要的超参之一。新的模型和数据集通常需要搜索它们的最优值,它们的选择会极大地影响模型的结果。作者希望有一个模型和优化器可以在lr和wd较广的选择范围内都能得到良好的结果。作者通过比较使用不同lr和wd值训练的模型的误差分布函数(EDFs)来探索这种超参的稳定性。
Peak performance. 每个模型的最佳精度是常用的衡量指标,它通常没有仔细控制训练细节,如数据增强、正则化方法、训练epoch数、lr和wd调优等。为了进行更鲁棒的比较,作者将最佳性能定义为训练400个epoch得到的结果,且使用表现最好的优化器和调整过的lr和wd。
稳定性实验
在定义了四种指标后,作者进行了详细的实验来比较patchify stem和conv stem的表现。
Training Length Stability
图2展示了50、100、200个epoch和渐近精度(400个epoch)之间的绝对误差deltas(\(\Delta
\)top-1),可以看到在多个模型复杂度范围下 \(\mathbf{ViT}_C\) 比 \(\mathbf{ViT}_P\) 的收敛速度更快,并缩小了与CNN收敛速度的差距,在50个epoch下最为明显。
Optimizer Stability
图3展示了不同优化器的训练结果,作为baseline,RegNetY在用SGD或AdamW训练时几乎没有差距,而在使用SGD进行训练时,\(\mathbf{ViT}_P\) 下降明显,与之相比,\(\mathbf{ViT}_C\) 分别用SGD和AdamW训练表现出了更小的差距。
Learning Rate and Weight Decay Stability
作者用误差分布函数EDFs来量化不同模型对lr和wd的敏感性,EDFs的计算方法是对一组从低到高的误差结果进行排序,并绘制误差增加时结果的累积比例。作者生成一个模型的EDFs作为lr和wd的函数,直观上看,如果一个模型对这些超参的选择比较鲁棒,那么EDFs曲线会比较steep(所有模型的表现相似),而如果模型对超参的选择比较敏感那么EDFs曲线会比较shallow(性能比较分散)。
图4展示了AdamW训练的模型的散点图和EDFs,图5展示了SGD的结果。可以看到在所有情况下,相较于 \(\mathbf{ViT}_P\),\(\mathbf{ViT}_C\) 显著提高了对lr和wd的稳定性。
Peak Performace
图6展示了训练速度和top-1误差的曲线图,左侧是CNN模型的对比,从中间图可以看到 \(\mathbf{ViT}_C\) 比 \(\mathbf{ViT}_P\) 的误差更小,右侧是在ImageNet-21k上预训练后在ImageNet-1k上测试的结果,同样 \(\mathbf{ViT}_C\) 比 \(\mathbf{ViT}_P\) 的误差更小。
结论
通过上述实验, 作者建议在 ViT 模型中使用标准、轻量级的卷积stem作为一种更稳健的架构选择。这个研究表明,在网络早期视觉处理阶段引入卷积可以显著改善 ViT 模型的优化性和性能。