Facebook AI Research (FAIR)研究人员何恺明,Ross Girshick ,Piotr Dolla ?r 等人最新研究颠覆计算机视觉领域对预训练模型的认知。一直以来,计算机视觉领域解决问题的范式为在ImageNet上的预训练模型,再在具体任务上微调。但研究表明,这个预训练过程并没有人们以为的那么重要。在计算资源和目标任务数据充足的情况下,预训练过程完全不必要。
2018 年,预训练的语言模型,这一并不算新的概念,更多地进入 NLP(自然语言处理)领域研究人员的视野。首先在大规模语料上得到预训练的语言模型,再将其与具体任务结合的方式让许多任务上的原有模型刷新了最佳成绩。10 月的 Bert 血洗 11 项 NLP 任务排行榜,更是让预训练的语言模型收获了前所未有的关注。可以说,接下来 NLP 领域的各项工作恐怕都绕不过使用预训练的语言模型这一项,不论是作为最终的主模型还是用于对比的 baseline(基准模型)。
与 NLP 领域形成鲜明对比的是,这种‘pre-training and fine-tuning’的方法,在 CV(计算机视觉)领域早已广泛应用。自从人们发现预训练模型中学得的特征表示可以为具体任务输送有用的信息后,使用大规模数据预训练模型得到通用的特征表示,再在具体任务上微调的方法就成了解决问题的范式,尤其是对于那些训练数据较少的任务。著名科学家李飞飞创立的 ImageNet 是目前最大的图像识别数据库,包含 2 万多个类别,千万张被标注的图片。在其上通过监督学习得到的众多预训练模型被开源,在众多 CV 任务上被广泛使用。目前,包括物体检测、图像分割等多项 CV 任务上的最佳成绩均是通过这样的方法获得的。这种方法似乎已经被研究人员默认——利用预训练的模型结果会更好。
近年来,也有少量工作另辟蹊径从零开始训练模型。这些工作专注于设计具有特异结构的模型,希望弥补没有预训练过程带来的差距。但实际上,没有任何证据表明,要从零开始训练的模型需要特殊的结构。同时,虽然预训练模型的使用带来了结果的改善,但相对于训练数据集的规模而言,这些改善的幅度却比较小,尤其是在物体检测任务上。
不同于前人对特殊结构模型的探索,何恺明等人专注于探索在 ImageNet 上的预训练过程在非特殊化模型(模型在设计时没有考虑要从零开始训练的需求)中的角色。
图丨此次论文(来源:arXiv)
作者介绍了他们在 COCO 数据集上进行的物体检测和实例分割实验,在直接对参数进行初始化的情况下取得了可以与那些使用预训练模型相匹敌的结果。实验结果表明,即使不使用预训练的模型,往往也可以取得一样好的结果。而即使使用少量的数据或是应用于更宽、更深的网络,即使在多任务和多个衡量指标的情况下,从零开始训练的方法依然能取得同样好的结果。
要探索预训练模型的作用,就要在实验设置相同,模型改动最小的情况下进行比较实验。作者发现,在不经过预训练的情况下,只有两种对于模型的改动是必要的:
(1)Normalization(标准化):图形分类器在训练过程中需要标准化来帮助优化。目标检测器与图像分类器不同,它的输入往往分辨率较高,由于内存的限制,批处理的图像的数量就相对较小。批处理数量的减小会降低批标准化的准确性。使用预训练的模型可以解决这一问题。因此,在随机初始化参数进行训练的情况下,作者使用 GN(Group Normalization)和 SyncBN(Synchronized Batch Normalization)两种标准化策略解决这一问题。
(2)Convergence(收敛):希望随机初始化参数的模型和通过预训练初始化参数的模型收敛地一样快是不现实的。尤其是预训练过程中模型已经学到低层特征,而随机初始化模型需要重新开始学。故而随机初始化模型需要更长的训练时间。
作者使用 Detectron 等人 Mask R-CNN 的超参数,以随机初始化的方式在 COCO 数据集上进行了的物体检测和实例分割实验。他们首先发现,在不增加数据量,只使用 COCO 数据集中训练数据的情况下,其结果就可以与 fine-tuned 的模型相匹敌。
图 | 模型:在 COCO train2017 数据集上使用 ResNet-50 FPN 和 GroupNorm 训练的 Mask R-CNN,在 val2017 上进行对边界框的 AP 指标进行评估。由图可见,尽管随机初始化的模型在初期收敛速度较慢,但是最后可以达到与使用预训练模型初始化条件下同样好的结果。
实验结果显示,预训练模型的使用在训练初期加快了收敛速度,但是并没有带来最终结果准确性的提升。作者又在多个测评指标和不同的基准模型上进行了对比,其结果仍然支持这一结论。
直觉上,预训练模型的优势之处在于大量的预训练数据。尤其是具体任务中的训练数据较少时,预训练过程可能更能展示其优势。然而,作者惊讶地发现,即使在更少的训练数据上(COCO 数据集的 10%),随机初始化的模型也能取得与使用预训练模型一样好的结果。
图 | 在更小数据量的 COCO 数据集上的训练结果。模型为使用 ResNet-50 FPN 和 GroupNorm 训练的 Mask R-CNN。左:使用在 118k 2017train 上选择的超参数,在学习率改变的情况下会出现过拟合现象。中:在 35kCOCO 图像数据集上的实验结果。右:在 10kCOCO 数据集上的实验结果。中图和右图表明,在减小数据量的情况下,随机初始化参数的训练方法仍可以达到不输使用预训练的模型的结果。
当然,我们不能希冀这一趋势一直持续下去。当仅仅使用 COCO 数据集中 1% 的数据(约 1k)时,训练集上损失的下降便不能很好地转化为验证集上准确度的提升了。
基于大量的实验,作者最终得出了以下几个可能挑战 CV 领域以往对预训练模型认知的结论:
1. 在 ImageNet 上的预训练是必要的吗?
当我们拥有足够的计算资源和训练数据时,不是的。这也意味着收集特定任务目标数据的标注比收集预训练数据的标注更有效。
2.ImageNet 有帮助吗?
当然。在 ImageNet 上进行预训练推动发展的一项极其重要的辅助任务。预训练的代价较大,但是这种代价不需要重复付出。许多开源免费易于获得的预训练模型可以帮助研究人员缩短训练时间,更快地获得结果。
3. 我们需要大量的数据吗?
需要。但是当我们考虑到收集数据、清洗数据所需的额外努力,一个通用大规模分类级别预训练数据集就不是那么理想了。既然增加这个数据集带来的收益不是那么理想,那么在特定领域增加数据量会更加有效。
4.我们还要追求通用的表征吗?
要。我们一直相信学习通用的表征是值得赞颂的目标,我们的实验结果并不意味着我们要偏离这个目标。实际上,我们的工作正说明了研究人员在评估预训练得到的特征时应该更加小心。
如作者所言,尽管随机初始化也可以带来很好的结果,但是在计算资源和时间有限的情况下,使用预训练模型仍是最佳选择。这些实验结果更重要的价值在于引发研究人员对预训练过程所起作用的思索。
深度学习的特殊性质使得我们往往先通过实验结果得到某些现象和性质,再反过来探究它们出现的原因。但若是在获得了较好的结果之后便浅尝辄止,缺少了进一步的探究分析,很可能反被束缚。这篇论文或许会引起计算机视觉领域对这种模式的更多探索,也警醒预训练模型开始变得火热的 NLP 的研究人员:预训练的语言模型又在扮演怎样的角色呢?