谷歌开源预训练新范式BiT,准确率提高近25%!网友评价:CV界BERT

大规模预训练+简单迁移策略

鱼羊 发自 凹非寺
量子位 报道 | 公众号 QbitAI

BERT在NLP界无往不利,大大提高了自然语言模型的性能,那么,在计算机视觉领域,有没有可能一个CNN打天下?

现在,谷歌大脑给出了一个答案——开源CV预训练新范式BiT

BiT(Big Transfer),简而言之,是一个可以作为任意视觉任务起点的预训练ResNet。

在这项研究中,谷歌大脑证明:用大量通用数据进行预训练的情况下,简单的迁移策略就能让CV模型在下游任务上获得良好的性能。

研究人员希望,BiT能取代现在常用的ImageNet预训练模型,推动计算机视觉研究的发展。

甚至有网友这样评价:BiT是CV界的BERT。

预训练的ResNet

所以BiT具体是怎么一回事呢?

首先,要说到研究人员的3个新发现。

其一,是数据集大小和模型容量之间的关系。

研究人员利用经典的ResNet架构,在ILSVRC-2012(1.28M)、ImageNet-21K(14M)和JFT(300M)这三个数据集上,分别训练了从标准的50层R50x1,到4倍宽、152层深的R152x4等几个变体。

观察结果显示,想要在更大的数据集上获得更好的预训练效果,就需要增加模型容量。

另外,在较大的数据集上进行预训练,不一定会提高性能。但是,通过增加计算预算和训练时间,性能能得到明显的改善。

第二个发现更加重要:训练时间的长短至关重要。

如果在不调整计算预算的情况下,在一个较大的数据集上进行预训练,训练时间越长,性能反而可能变差。

而针对新的数据集调整训练时间,改进效果会非常显著。

另外,研究人员还发现,用组归一化(GN)取代批归一化(BN),对大规模预训练而言是有益的。

首先,BN的状态,包括神经激活的均值和方差,需要在预训练和迁移之间进行调整,而GN是无状态的,从而绕开了这个问题。

其次,BN使用的是批处理级统计,当大模型不可避免地出现小每设备(per-device)批处理量时,BN就会变得不可靠。GN同样回避了这个问题。

所以,研究人员们提出了这样的预训练策略:采用标准ResNet,增加深度和宽度,用GNWS替换BN,并在大型通用数据集上进行更多迭代。

迁移学习

接下来,就是针对下游任务微调预训练BiT模型。

研究人员介绍,BiT只需要预训练一次,此后在针对下游任务进行微调时,成本很低。

微调涉及到很多超参数,比如学习率、权重衰减等。

对此,研究人员提出了BiT-HyperRule方法。该方法仅基于高级数据集特征,如图像分辨率和标注样本数量等。也就是说,BiT并不会对每个下游任务都进行超参数调整。这能有效地降低任务适应成本。

并且,对BiT模型进行预训练后,即使下游任务只有少量标注样本,模型一样表现良好。

研究人员还观察到,在这种情况下,增加用于预训练的通用数据量和架构容量,所产生的模型适应新数据的能力也将大幅提高。

实验结果

为了验证BiT的表现是否具有普遍性,研究人员在VTAB-1k上进行了实验。

VTAB-1k是由19个不同任务组成的任务套件,每个任务只有1000个标注样本。

BiT-L模型(在JFT-300M上进行预训练)迁移到这些任务上后,获得了76.3%的总得分,比此前的SOTA方法提高了5.8%。

另外,BiT-L在标准CV基准Oxford Pets、Flowers、CIFAR上的结果也表明,这种大规模预训练 + 简单迁移的策略在数据量适中的情况下也是有效的。

为了进一步评估BiT的鲁棒性,研究人员还在基于真实照片的ObjectNet数据集上对模型进行验证。

BiT-L模型的top-5精度刷新记录,达到80%,比此前的SOTA方法提高将近25%。

关于作者

这篇论文有三位共同一作。

Alexander Kolesnikov,谷歌大脑研究软件工程师,于2018年在奥地利科技学院获机器学习与计算机视觉博士学位。

Lucas Beyer ,谷歌大脑研究工程师,2018年博士毕业于德国亚琛工业大学。

翟晓华,谷歌大脑高级研究工程师,博士毕业于北京大学。研究方向是表征学习、自监督学习、GAN等。

传送门

谷歌博客:

https://ai.googleblog.com/2020/05/open-sourcing-bit-exploring-large-scale.html

论文地址:

https://arxiv.org/abs/1912.11370

— 完 —

版权所有,未经授权不得以任何形式转载及使用,违者必究。