鱼羊 发自 凹非寺
量子位 报道 | 公众号 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
作者系网易新闻·网易号“各有态度”签约作者
— 完 —
华为MindSpore布道师招募
助力小白成为大牛
告别技术造神,尊重每个开发者。
在开源社区中一起快速成长,共建开源生态!
扫描下图二维码即可报名参与▽
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态
喜欢就点「在看」吧 !