深度学习的早期成功可归功于卷积神经网络(ConvNets)的发展。近十年来,ConvNets 主导了计算机视觉基准测试。然而近年来,它们越来越多地被 ViTs(Vision Transformers)所取代。
很多人认为,ConvNets 在小型或中等规模的数据集上表现良好,但在那种比较大的网络规模的数据集上却无法与 ViTs 相竞争。
与此同时,CV 社区已经从评估随机初始化网络在特定数据集 (如 ImageNet) 上的性能转变为评估从网络收集的大型通用数据集上预训练的网络的性能。这就提出了一个重要的问题:在类似的计算预算下,Vision Transformers 是否优于预先训练的 ConvNets 架构?
本文,来自 Google DeepMind 的研究者对这一问题进行了探究,他们通过在不同尺度的 JFT-4B 数据集(用于训练基础模型的大型标签图像数据集)上对多种 NFNet 模型进行预训练,从而获得了类似于 ViTs 在 ImageNet 上的性能。
论文地址:https://arxiv.org/pdf/2310.16764.pdf
本文考虑的预训练计算预算在 0.4k 到 110k TPU-v4 核计算小时之间,并通过增加 NFNet 模型家族的深度和宽度来训练一系列网络。本文观察到这一现象,即 held out 损失与计算预算之间存在 log-log 扩展率(scaling law)。
例如,本文将在 JFT-4B 上预训练的 NFNet 从 0.4k 扩展到 110k TPU-v4 核小时(core hours)。经过微调后,最大的模型达到了 90.4% 的 ImageNet Top-1,在类似的计算预算下与预训练的 ViT 相竞争。
可以说,本文通过评估按比例扩大的 NFNets,挑战了 ConvNets 在大规模数据集上表现不如 ViTs 的观点。此外,在足够的数据和计算条件下,ConvNets 仍然具有竞争力,模型设计和资源比架构更重要。
看到这项研究后,图灵奖得主 Yann LeCun 表示:「计算是你所需要的,在给定的计算量下,ViT 和 ConvNets 相媲美。尽管 ViTs 在计算机视觉方面的成功令人印象深刻,但在我看来,没有强有力的证据表明,在公平评估时,预训练的 ViT 优于预训练的 ConvNets。」
不过有网友评论 LeCun,他认为 ViT 在多模态模型中的使用可能仍然使它在研究中具有优势。
来自 Google DeepMind 的研究者表示:ConvNets 永远不会消失。
接下来我们看看论文具体内容。
预训练的 NFNets 遵循扩展定律
本文在 JFT-4B 上训练了一系列不同深度和宽度的 NFNet 模型。
如下图 2 所示,验证损失与训练模型的计算预算呈线性关系,这与使用 Transformer 进行语言建模(Brown et al., 2020; Hoffmann et al., 2022)时观察到的双对数(log-log)扩展定律相匹配。最佳模型大小和最佳 epoch 预算(实现最低验证损失)都会随着计算预算的增加而增加。
下图 3 绘制了 3 个模型在一系列 epoch 预算中观察到的最佳学习率(最大限度地减少验证损失)。研究团队发现对于较低的 epoch 预算,NFNet 系列模型都显示出类似的最佳学习率 ? ≈ 1.6。然而,随着 epoch 预算的增加,最优学习率会下降,并且对于大型模型,最优学习率下降得更快。研究团队表示可以假设最优学习率随着模型大小和 epoch 预算的增加而缓慢且单调地下降,从而在 2 次试验内有效地调整学习率。
值得注意的是,图 2 中一些预训练模型的表现不如预期。研究团队认为出现这种情况是因为如果训练运行被抢占 / 重新启动,那么数据加载 pipeline 不能保证每个训练样本在每个 epoch 都会采样一次,如果训练运行多次重新启动,则可能导致某些训练样本采样次数不足。
NFNet vs ViT
该研究在 ImageNet 上的实验表明:经过微调的 NFNet 与 Vision Transformer 性能相当。
具体来说,该研究在 ImageNet 上微调了预训练 NFNet,并绘制了预训练计算与 Top-1 error 关系图,如上述图 1 所示。
随着计算预算的增加,ImageNet Top-1 准确性不断提高。其中最昂贵的预训练模型是预训练 8 个 epoch 的 NFNet-F7+,ImageNet Top-1 准确率达到了 90.3%,需要大约 110k TPU-v4 核小时进行预训练和 1.6k TPU-v4 核小时进行微调。此外,如果在微调期间额外引入重复增强(repeated augmentation),那么可以实现 90.4% 的 Top-1 准确率。NFNet 从大规模预训练中受益匪浅。
尽管 NFNet 和 ViT 两种模型架构之间存在显著差异,但预训练 NFNet 与预训练 ViT 性能相当。例如,在 JFT-3B 上预训练 210k TPU-v3 核小时后,ViT-g/14 在 ImageNet 上实现了 90.2% 的 Top-1 准确率,在 JFT-3B 上预训练超过 500k TPU-v3 核小时后,ViT-G/14 实现了 90.45% 的 Top-1 准确率。
本文评估了这些模型在 TPU-v4 上的预训练速度,并估计 ViT-g/14 需要 120k TPU-v4 核小时来预训练,而 ViTG/14 则需要 280k TPU-v4 核小时数,SoViT-400m/14 将需要 130k TPU-v4 核小时数。本文使用这些估计来比较图 1 中 ViT 和 NFNet 的预训练效率。研究注意到,NFNet 针对 TPU-v4 进行了优化,在其他设备上评估时表现较差。
最后,本文注意到,预训练的 checkpoints 在 JFT-4B 上实现了最低的验证损失,然而微调后并不总能在 ImageNet 上实现最高的 Top-1 准确率。特别是,本文发现,在固定的预训练计算预算下,微调机制始终倾向于稍大的模型和稍小的 epoch 预算。直观上来说,更大的模型具有更大的容量,因此能够更好地适应新任务。在某些情况下,稍大的学习率(在预训练期间)在微调后也能获得更好的性能。