抱歉,你查看的文章不存在

Pre-training到底有没有用?何恺明等人新作:Rethinking ImageNet Pre-training

【导读】使用基于ImageNet预训练(Pre-training)的网络已成为计算机视觉任务中一种常规的操作。何恺明等人在新作Rethinking ImageNet Pre-training中使用详细的对比实验和分析提出了对基于ImageNet预训练的新的思考。研究发现,对于在COCO数据集上的目标检测和实例分割任务,使用随机初始化的参数会收敛的更慢,但最终所达到的结果不比使用在ImageNet上预训练的参数差。

预训练


预训练模型一般指在大规模数据集上对特定任务训练的深度模型。对大多数人来说,预训练模型的训练一般很难进行,因为它需要消耗大量的计算资源。在ImageNet预训练的卷积网络是最常见的预训练模型之一,它包含1400万张图像(大约1000类,每一类约120万张图像),大约100万张图像包含Bounding Box标注信息。

当特定任务训练完成后,学习到的参数即为预训练模型。很多预训练模型都可以从Github中找到,当然最简单的方法还是直接使用各个深度学习框架(如TensorFlow、Keras)内置的库来调用预训练模型。

消去实验


论文《Rethinking ImageNet Pre-training》建立在基于COCO数据集的消去实验上。在基于COCO数据集的目标检测和实例分割任务上,对比使用基于ImageNet预训练参数和随机初始化参数(即消去ImageNet预训练)的结果,对基于ImageNet的预训练所能带来的影响进行了分析。

有趣的统计


在论文中有一项有趣的统计,如下图所示。统计包含了在训练过程中,模型见到图像、示例和像素的次数。其中淡蓝色表示在ImageNet预训练时的统计数据,深蓝色代表在COCO上进行微调(Fine-Tuning)时的统计数据,紫色代表如果使用随机初始化从头训练的统计数据。

归一化


在目标检测任务中,由于输入的分辨率大且网络对显存消耗大,batch size只能被设置为比较小的值,这会损伤模型中Batch Normalization的效果。使用预训练模型可以绕过这个问题,因为我们可以在微调时将Batch Normalizaiton的参数固定。但是,如果使用随机初始化的参数从头训练则不能使用这个技巧。

在论文中,使用了两种较新的归一化方法来减轻小batch问题:

  1. Group Normalization (GN): https://arxiv.org/abs/1803.08494
  2. Synchronized Batch Normalization (SyncBN): https://arxiv.org/abs/1711.07240 https://arxiv.org/abs/1803.01534

引入Group Normalization或Synchronized Batch Normalization使得我们可以用随机初始化的参数从头开始训练模型。另外,利用appropriately normalized initialization(https://arxiv.org/abs/1502.01852),我们可以从头训练一个基于VGG的目标检测模型,且不需要使用Batch Normalization或者Group Normalization。

主要实验结果


结论


  1. 使用ImageNet预训练模型可以加速收敛,尤其在训练的早期。但是基于随机初始化参数的模型会在一段时间后达到同样的效果,这个时间大约是ImageNet预训练和微调时间的总和。它需要去学低/中等级的特征(例如边缘、材质等),这些特征在预训练中已经学到。由于ImageNet预训练的时间往往在目标任务中被忽略,只考虑短时间的微调训练过程,基于随机初始化的训练的真正的表现往往被遮盖。
  2. ImageNet预训练并不能自动提供更好的正则化。当用更少的图片训练时(COCO数据集的10%),我们发现必须从预训练参数中选择新的超参来防止过拟合。如果用随机初始化参数来进行训练,模型可以在不添加额外正则的情况下来达到同样的效果,甚至只用10%的COCO数据集。
  3. 如果目标任务/指标对局部空间信息比较敏感,ImageNet预训练并没有什么优势。当从头开始训练时,高重叠阈值部分的AP有显著的提升,另外,需要优质空间定位的keypoint AP会收敛的相对快一些。直观地说,基于分类的类ImageNet预训练和局部信息敏感的任务之间的鸿沟,会限制预训练的效果。

参考资料:

  • https://arxiv.org/abs/1811.08883

-END-

原文发布于微信公众号 - 专知(Quan_Zhuanzhi)

原文发表时间:2018-11-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

专知

880 篇文章344 人订阅

相关文章

来自专栏磐创AI技术团队的专栏

使用Keras进行深度学习:(三)使用text-CNN处理自然语言(下)

前言:在上一篇文章中,已经介绍了Keras对文本数据进行预处理的一般步骤。预处理完之后,就可以使用深度学习中的一些模型进行文本分类。在这篇文章中,将介绍text...

45640
来自专栏IT派

入门 | 了解神经网络,你需要知道的名词都在这里

近日,Mate Labs 联合创始人兼 CTO 在 Medium 上撰文《Everything you need to know about Neural Ne...

36380
来自专栏机器之心

徒手实现CNN:综述论文详解卷积网络的数学本质

选自arXiv 机器之心编译 参与:黄小天、路雪、蒋思源 近日南洋理工大学研究者发布了一篇描述卷积网络数学原理的论文,该论文从数学的角度阐述整个卷积网络的运算与...

383110
来自专栏LhWorld哥陪你聊算法

【机器学习】--GBDT算法从初始到应用

提升是一种机器学习技术,可以用于回归和分类的问题,它每一步产生弱预测模型(如决策树),并加权累加到总模型中;如果每一步的弱预测模型的生成都是依据损失函数的梯度方...

28420
来自专栏大数据挖掘DT机器学习

卷积网络循环网络结合-CNN+RNN

1. CNN+RNN ? 相同点 都是传统神经网络的扩展; 前向计算产生结果,反向计算进行模型的更新; 每层神经网络横向可以多个神经元共存,纵向可以有多层神经网...

81760
来自专栏机器学习从入门到成神

机器学习之深入理解神经网络理论基础、BP算法及其Python实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

25210
来自专栏SIGAI学习与实践平台

理解Spatial Transformer Networks

随着深度学习的不断发展,卷积神经网络(CNN)作为计算机视觉领域的杀手锏,在几乎所有视觉相关任务中都展现出了超越传统机器学习算法甚至超越人类的能力。一系列CNN...

16350
来自专栏WD学习记录

卷积神经网络 CNN

参数共享机制   在卷积层中每个神经元连接数据窗的权重是固定的,每个神经元只关注一个特性。神经元就是图像处理中的滤波器,比如边缘检测专用的Sobel滤波器,即...

21130
来自专栏机器学习算法工程师

绝对不容错过:最完整的检测模型评估指标mAP计算指南(附代码)在这里!

本文翻译自Measuring Object Detection models - mAP - What is Mean Average Precision?(...

93080
来自专栏机器学习算法与Python学习

Pre-training到底有没有用?何恺明等人新作:Rethinking ImageNet Pre-training

使用基于ImageNet预训练(Pre-training)的网络已成为计算机视觉任务中一种常规的操作。何恺明等人在新作Rethinking ImageNet P...

11220

扫码关注云+社区

领取腾讯云代金券