Computer Vision 杂志对何恺明 Rethinking ImageNet Pre-training 的最新评论

简介: 恺明大帝出品,必属精品!预训练+调优的训练范式将被终结?

雷锋网 AI 科技评论按,2018 年 11 月,何恺明在 arxiv 上提交论文 「Rethinking ImageNet Pre-training」,这篇论文由他与 Ross Girshick,Piotr Dollar 合作,系统地对预训练模型是不是必须的问题进行了研究,在坊间引起诸多讨论。两个多月过去,Computer Vision News 也对这篇文章开始了一轮 review,全面且系统地介绍了这篇 paper 中的研究方法、创新点、实验结果等诸多关键点,雷锋网(公众号:雷锋网) AI 科技评论将这篇 review 整理如下,以飨读者。

「Rethinking ImageNet Pre-training」这篇惊艳的论文向我们展示了:使用从随机初始化的状态开始训练的标准模型在 COCO 数据集上也可以在目标检测和实例分割任务中取得十分出色的结果,其结果可以与使用 ImageNet 预训练的模型所得到的结果相媲美。研究人员惊奇地发现,使用随机初始化的模型具有很强的鲁棒性。在以下三种情况下,模型的结果仍然能保持在比较高的水平上:(1)即使仅仅使用 10% 的训练数据,(2)使用更深和更宽的模型,(3)处理多任务并使用多种评价指标。

实验表明,使用 ImageNet 预训练可以在训练早期加速收敛,但不一定能起到正则化的作用或提高模型在最终的目标任务上的准确率。

引言

从 RCNN 惊天出世开始,在早期的将深度学习应用于目标检测的任务中,使用在 ImageNet 数据集上为图像分类预训练的神经网络,然后再在数据集上进行调优,这取得了许多突破。受到这些结果的启发,目前大多数用于目标检测的神经网络和许多其它的计算机视觉算法都遵循「先使用预训练初始化,再进行调优」的训练范式。学界最近发表的一些论文在大小相当于 6-3000 倍 ImageNet 的数据集(JTF 为 6 倍,ImageNet-5k 为 300 倍,Instagram 为 3000 倍)上进行了预训练,从而又进一步推广了这样的训练范式。尽管这种范式在图像分类训练中展现出了相当大的性能提升,但它在目标检测任务中却收效甚微(提升大约能达到 1.5%)。而相对于预训练的数据集,目标检测任务的数据集越大,这种提升就越小。

研究方法和创新点

在本文中,作者说明了:

1. 尽管使用 ImageNet 进行预训练可以加速模型训练收敛速度,在给定充足的训练时间的情况下,从头开始训练的模型也可以得到与前者相当的准确率。请注意,在从头开始训练的过程中,网络必然会学到在预训练过程中通常会学到的低级和中级特征(如边缘、纹理等特征)。

2. 当我们认为预训练的训练范式更加高效时,我们往往并没有考虑到预训练所需要的时间。

3. 本文作者说明了:如果我们谨慎地选取超参数从而克服过拟合,那么,从随机初始化的状态开始在仅仅 10% 的 COCO 数据集上进行训练可以得到与使用预训练参数进行初始化的训练过程旗鼓相当的结果。在使用与预训练的网络相同的超参数设置的情况下,即使在仅仅 10% 的数据集上进行训练,随机初始化的训练也能得到几乎相同的结果。

4. 当目标任务/评价指标对于局部的空间信息更敏感时,在 ImageNet 上进行预训练几乎没有作用。

对于目前最先进的工作来说,本文得到的结果是十分令人惊讶的,它们会对「使用 ImageNet 进行预训练的训练范式究竟有多大影响」提出挑战。使用 ImageNet 预训练的范式在目前以及在未来的一段时间内将仍然继续成为从业人员的首选方案,特别是在以下两种情况下 :(1)当开发者拥有的用于在其目标任务中从头开始训练的数据和计算资源不足时;(2)得益于前人所做的标注工作、以及使用 ImageNet 预训练过的模型较为容易获得,ImageNet 预训练被广泛认为是一种「免费开放」的资源。

模型实现

接下来,让我们研究一下本文的工作所使用的网络框架、学习率、优化和归一化方法以及超参数设置:

网络架构:

本文研究了使用 ResNet 的 Mask R-CNN、ResNeXt+ 特征金字塔网络(FPN)主干架构。

归一化方法:

那些人们通常在训练标准的预训练网络时所使用的归一化方法往往并不太适用于检测和分割任务的训练,因为这些归一化方法需要载入大量的训练数据(分辨率非常高的图像,并且为每个像素都打上了标签)。这将导致我们在每一批中只能处理数量非常有限的图像(因为显存有限),从而使正则化非常困难。而我们通过调优范式网络可以避免这种困难,它能利用预训练时学到的归一化参数。

在从随机初始化状态开始训练的检测和分割任务中,作者采用了以下两种归一化方法:

1.群组归一化(GN):执行独立于批维度的计算,其准确率对批大小不敏感 。

2.同步批量归一化(SyncBN):是批量归一化的一种实现方式,它通过使用多个 GPU 运算提升了批量归一化(BN)时有效批处理的规模。

注:群组归一化(GN)也是本文作者何恺明于 2018 年发表的一份工作(https://arxiv.org/abs/1803.08494)。

学习率:

学习率的更新策略是,学习率更新策略是在最后 60k 迭代中将学习率降低 10 倍。在最后的 20k 次迭代中再降低 10 倍。作者指出,没有必要在训练结束前更早地降低学习率,也没有必要长时间以较低的学习率进行训练,这只会导致过拟合。

超参数:

所有其它(学习率之外的)超参数都遵循 Detectron 中的超参数。具体而言,初始学习率是 0.02(使用线性的热启动操作,https://arxiv.org/abs/1706.02677)。权重衰减为 0.0001,动量衰减为 0.9。所有的模型都在 8 个 GPU 上使用同步的随机梯度下降进行训练,每个 GPU 的 Mini-batch 的规模为 2 张图像。根据 Detectron 的默认设置,Mask R-CNN 在测试不使用数据增强技术,仅仅训练中使用水平翻转增强。在较短的边上,图像的尺寸是 800 个像素点。

实验结果

实际上,从下图中可以看出,在给定充足的数据的情况下,任何网络都可以被训练到较好的状态。亮蓝色的横条代表用于 ImageNet 预训练的数据量,深蓝色的横条代表调优所使用的数据量,紫色的横条代表从头开始训练所使用的数据量。最上方的一栏横条代表的是用于训练的训练过的图像数量;中间一栏代表物体的数量(每个图像中可能包含不止一个物体);最下面的紫色横条代表所处理的所有像素点的数量(不同的数据集中的图像规模差别很大),我们可以将其换算为数据的体量。读者可以从最下方的一栏中的紫色横条中看出,整体而言,网络处理的经过了预训练再进行调优的数据量和从头开始训练(随机初始化)处理的数据量是相当的。 

 

TB19DIzE3TqK1RjSZPhXXXfOFXa.jpg

如下图所示,在验证集上的边界框平均精度 bbox AP 曲线被并排排列了出来,图中显示了以 ResNet-101(R101)为主干架构,以及使用 ResNet-50(R50)作为主干架构的实验结果。每一组曲线都对比了从随机初始化开始训练的模型与先在 ImageNet 上进行预训练再进行调优的模型的性能。 

 

TB18L.xE9rqK1RjSZK9XXXyypXa.jpg

下图则将对比使用 Mask R-CNN 对不同系统从随机初始化开始训练与先进行预训练再调优的方法的比较,具体包括:(1)使用 FPN 和 GN 的对比基线,(2)使用训练时多尺度增强的对比基线,(3)使用级联 RCNN 和训练时增强的对比基线,(4)加上测试时多尺度增强的对比基线。左图:R50;右图:R101。

 

TB1G.AGE3HqK1RjSZFgXXa7JXXa.jpg

作者重复使用不同的方法、不同的配置和不同的架构进行训练,并且将从随机初始化状态开始训练的网络的性能与先预训练再进行调优的网络性能进行比较,说明了无论是从头开始还是使用预训练的网络,整体而言,所需要的数据都是等价的,这不可能仅仅是偶然。实验所使用的方法也是相同的。

  

TB1gjIFE5rpK1RjSZFhXXXSdXXa.jpg

作者进行的另一项实验旨在研究训练预训练的网络去找到最优的超参数设置。作者使用了通过训练预训练网络发现的超参数设置去训练他们从头开始训练的随机初始化的网络。实验结果表明,他们仅仅使用了三分之一的数据就获得了同等水平的模型性能。下图显示了训练的准确率(紫色的线表示随机初始化的训练情况,灰色的线表示先进行预训练再进行调优的训练情况)。

 

TB1iPIFE5rpK1RjSZFhXXXSdXXa.jpg

训练用于 COCO 人体关键点检测任务的 Mask RCNN 模型:对于人体关键点检测任务,随机初始化的网络可以比先进行预训练再调优的网络快得多地学习,不需要使用额外的训练时间。关键点监测是对于局部空间信息预测非常敏感的任务。这说明,对于局部空间信息预测来说,ImageNet 预训练的作用非常有限,对于这样的任务,从头开始训练模型的效果和使用预训练再调优的效果几乎是一样的。

TB1ewwIE4TpK1RjSZFMXXbG_VXa.jpg

本文的观点的总结

在目标任务中几乎不对架构进行修改,从头开始训练网络(使用随机初始化)是可行的。

从头开始训练往往需要经过更多的迭代才能收敛,而预训练的网络收敛得更快。

在许多不同的设置和情况下,从头开始训练的网络可以获得与先预训练再调优的网络相媲美的性能,甚至包括仅仅在一万张 COCO 图像上进行训练的情况。

除了训练数据集极其小的情况,在 ImageNet 上进行预训练并不一定能够帮助缓解过拟合现象。

相对于物体的类别信息,如果目标任务与物体位置信息更加相关,那么在 ImageNet 上进行预训练将收效甚微。

 via:https://www.rsipvision.com/ComputerVisionNews-2019January/4/

雷锋网 AI 科技评论编译整理。

雷锋网版权文章,未经授权禁止转载。详情见转载须知。

目录
相关文章
|
机器学习/深度学习 搜索推荐 算法
Learning Disentangled Representations for Recommendation | NIPS 2019 论文解读
近年来随着深度学习的发展,推荐系统大量使用用户行为数据来构建用户/商品表征,并以此来构建召回、排序、重排等推荐系统中的标准模块。普通算法得到的用户商品表征本身,并不具备可解释性,而往往只能提供用户-商品之间的attention分作为商品粒度的用户兴趣。我们在这篇文章中,想仅通过用户行为,学习到本身就具备一定可解释性的解离化的用户商品表征,并试图利用这样的商品表征完成单语义可控的推荐任务。
23841 0
Learning Disentangled Representations for Recommendation | NIPS 2019 论文解读
|
4月前
|
机器学习/深度学习 移动开发 算法
【博士每天一篇文献-模型】Deep learning incorporating biologically inspired neural dynamics and in memory
本文介绍了一种结合生物学启发的神经动力学和内存计算的深度学习方法,提出了脉冲神经单元(SNU),该单元融合了脉冲神经网络的时间动力学和人工神经网络的计算能力,通过实验分析显示,在手写数字识别任务中,基于SNU的网络达到了与循环神经网络相似或更高的准确性。
23 1
【博士每天一篇文献-模型】Deep learning incorporating biologically inspired neural dynamics and in memory
|
4月前
|
机器学习/深度学习 算法 调度
【博士每天一篇文献-算法】Neurogenesis Dynamics-inspired Spiking Neural Network Training Acceleration
NDSNN(Neurogenesis Dynamics-inspired Spiking Neural Network)是一种受神经发生动态启发的脉冲神经网络训练加速框架,通过动态稀疏性训练和新的丢弃与生长策略,有效减少神经元连接数量,降低训练内存占用并提高效率,同时保持高准确性。
47 3
|
4月前
|
存储 机器学习/深度学习 算法
【博士每天一篇文献-算法】Fearnet Brain-inspired model for incremental learning
本文介绍了FearNet,一种受大脑记忆机制启发的神经网络模型,用于解决增量学习中的灾难性遗忘问题。FearNet不存储先前的例子,而是使用由海马体复合体和内侧前额叶皮层启发的双记忆系统,以及一个受基底外侧杏仁核启发的模块来决定使用哪个记忆系统进行回忆,有效减轻了灾难性遗忘,且在多个数据集上取得了优异的性能。
33 6
|
4月前
|
机器学习/深度学习 算法
【博士每天一篇文献-综述】A wholistic view of continual learning with deep neural networks Forgotten
本文提出了一个整合持续学习、主动学习(active learning)和开放集识别(open set recognition)的统一框架,基于极端值理论(Extreme Value Theory, EVT)的元识别方法,强调了在深度学习时代经常被忽视的从开放集识别中学习识别未知样本的教训和主动学习中的数据查询策略,通过实证研究展示了这种整合方法在减轻灾难性遗忘、数据查询、任务顺序选择以及开放世界应用中的鲁棒性方面的联合改进。
39 6
|
4月前
|
机器学习/深度学习 存储 人工智能
【博士每天一篇文献-算法】改进的PNN架构Progressive learning A deep learning framework for continual learning
本文提出了一种名为“Progressive learning”的深度学习框架,通过结合课程选择、渐进式模型容量增长和剪枝机制来解决持续学习问题,有效避免了灾难性遗忘并提高了学习效率。
75 4
|
4月前
|
机器学习/深度学习 算法 TensorFlow
【文献学习】Analysis of Deep Complex-Valued Convolutional Neural Networks for MRI Reconstruction
本文探讨了使用复数卷积神经网络进行MRI图像重建的方法,强调了复数网络在保留相位信息和减少参数数量方面的优势,并通过实验分析了不同的复数激活函数、网络宽度、深度以及结构对模型性能的影响,得出复数模型在MRI重建任务中相对于实数模型具有更优性能的结论。
40 0
【文献学习】Analysis of Deep Complex-Valued Convolutional Neural Networks for MRI Reconstruction
|
7月前
|
机器学习/深度学习 JSON 自然语言处理
[GPT-1]论文实现:Improving Language Understanding by Generative Pre-Training
[GPT-1]论文实现:Improving Language Understanding by Generative Pre-Training
118 1
|
7月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
[NNLM]论文实现:A Neural Probabilistic Language Model [Yoshua Bengio, Rejean Ducharme, Pascal Vincent]
[NNLM]论文实现:A Neural Probabilistic Language Model [Yoshua Bengio, Rejean Ducharme, Pascal Vincent]
32 0
|
机器学习/深度学习 算法 数据处理
Stanford 机器学习练习 Part 3 Neural Networks: Representation
从神经网络开始,感觉自己慢慢跟不上课程的节奏了,一些代码好多参考了别人的代码,而且,让我现在单独写也不一定写的出来了。学习就是一件慢慢积累的过程,两年前我学算法的时候,好多算法都完全看不懂,但后来,看的多了,做的多了,有一天就茅塞顿开。所有的困难都是一时的,只要坚持下去,一切问题都会解决的。没忍住发了点鸡汤文。
35 0