深度学习,已经不需要归一化了。我们知道,在传递给机器学习模型的数据中,我们需要对数据进行归一化(normalization)处理。在数据归一化之后,数据被「拍扁」到统一的区间内,输出范围被缩小至0到1之间。人们通常认为经过如此的操作,最优解的寻找过程明显会变得平缓,模型更容易正确的收敛到最佳水平。
然而这样的「刻板印象」最近受到了挑战,DeepMind的研究人员提出了一种不需要归一化的深度学习模型NFNet,其在大型图像分类任务上却又实现了业内最佳水平(SOTA)。该模型(红色)与其他模型在ImageNet分类准确度和训练时间上的对比。
该论文的第一作者,DeepMind研究科学家Andrew Brock表示:「我们专注于开发可快速训练的高性能体系架构,已经展示了一种简单的技术(自适应梯度裁剪,AGC),让我们可以训练大批量和大规模数据增强后的训练,同时达到SOTA水平。」该研究一经提交,便吸引了人们的目光。NFNet是不做归一化的ResNet网络。
具体而言,该研究贡献有以下几点:提出了自适应梯度修剪(Adaptive Gradient Clipping,AGC)方法,基于梯度范数与参数范数的单位比例来剪切梯度,研究人员证明了AGC可以训练更大批次和大规模数据增强的非归一化网络。设计出了被称为Normalizer-Free ResNets的新网络,该方法在ImageNet验证集上大范围训练等待时间上都获得了最高水平。
NFNet-F1模型达到了与EfficientNet-B7相似的准确率,同时训练速度提高了8.7倍,而NFNet模型的最大版本则树立了全新的SOTA水平,无需额外数据即达到了86.5%的top-1准确率。如果在对3亿张带有标签的大型私人数据集进行预训练,随后针对ImageNet进行微调,NFNet可以比批归一化的模型获得更高的Top-1准确率:高达89.2%。
在没有归一化的情况下,许多研究者试图通过恢复批归一化的好处来训练深度ResNet以提升其准确率。这些研究大多数通过引入小常数或可学习的标量来抑制初始化时残差分支上的激活尺度。DeepMind的这项研究采用并建立在「Normalizer-Free ResNet(NF-ResNet)」上,这是一类可以在没有归一化层的情况下,被训练成具有训练和测试准确率的预激活ResNet。
NF-ResNet使用如下形式的残差块:其中,h_i代表第i个残差块的输入,f_i代表由第i个残差分支计算的函数。为了将NF-ResNet扩展到更大的批规模,研究者探索了一系列梯度裁剪策略。借助一种称为AGC的梯度裁剪方法,该研究探索设计了Normalizer-Free架构,该架构实现了SOTA的准确率和训练速度。
当前图像分类任务的SOTA大多是EfficientNet系列模型取得的,该系列的模型经过优化以最大化测试准确率,同时最小化参数量和FLOP计数,但它们的低理论计算复杂度并没有转化为训练速度的提高。该研究通过手动搜索设计导向来探索模型设计的空间,这些导向对比设备上的实际训练延迟,可带来ImageNet上holdout top-1的帕累托前沿面的改进。
实验表3展示了六个不同的NFNets(F0-F5)与其他模型在模型大小、训练延迟和ImageNet验证准确率方面的对比情况。此外,研究者使用了一个3亿标注图像的数据集对NFNet的变体进行了预训练,并针对ImageNet进行微调。最终,NFNet-F4+在ImageNet上获得了89.2%的top-1准确率。
这是迄今为止通过额外训练数据达到的第二高的验证准确率,仅次于目前最强大的半监督学习基线和通过迁移学习达到的最高准确率。Andrew Brock表示,虽然我们对于神经网络信号传递、训练规律的理解还有很多需要探索的方向,但无归一化的方法已经为人们提供了一个强有力的参考,并证明了发展这种深度理解能力可以有效地在生产环境中提升效率。