何恺明“终结”ImageNet预训练时代:从0开始训练神经网络,效果比肩COCO冠军

简介:

9f046f1793d13af262e3b960334aedb4d8cdf1c2

何恺明,RBG,Piotr Dollár。

三位从Mask R-CNN就开始合作的大神搭档,刚刚再次联手,一文“终结”了ImageNet预训练时代。

他们所针对的是当前计算机视觉研究中的一种常规操作:管它什么任务,拿来ImageNet预训练模型,迁移学习一下。

但是,预训练真的是必须的吗?

这篇重新思考ImageNet预训练(Rethinking ImageNet Pre-training)就给出了他们的答案。

FAIR(Facebook AI Research)的三位研究员从随机初始状态开始训练神经网络,然后用COCO数据集目标检测和实例分割任务进行了测试。结果,丝毫不逊于经过ImageNet预训练的对手。

甚至能在没有预训练、不借助外部数据的情况下,和COCO 2017冠军平起平坐。

结果

训练效果有图有真相。

他们用2017版的COCO训练集训练了一个Mask R-CNN模型,基干网络是用了群组归一化(GroupNorm)的ResNet-50 FPN。

f7ed3efd10fa19a9c83ee0a7cee518dfcc93e5e5

随后,用相应的验证集评估随机权重初始化(紫色线)和用ImageNet预训练后再微调(灰色线)两种方法的边界框平均检测率(AP)。

可以看出,随机权重初始化法开始不及预训练方法效果好,但随着迭代次数的增加,逐渐达到了和预训练法相当的结果。

为了探索多种训练方案,何恺明等人尝试了在不同的迭代周期降低学习率。

结果显示,随机初始化方法训练出来的模型需要更多迭代才能收敛,但最终收敛效果不比预训练再微调的模型差

主干网络换成ResNet-101 FPN,这种从零开始训练的方法依然呈现出一样的趋势:从零开始先是AP不及预训练法,多次迭代后两者终趋于不分上下。

894be8efb5459a33fcbf13d2f7971c8ecb6b8e13

效果究竟能有多好?答案前面也说过了,和COCO 2017冠军选手平起平坐。

从零开始模型的效果,由COCO目标检测任务来证明。在2017版验证集上,模型的bbox(边界框)和mask(实例分割)AP分别为50.9和43.2;

他们还在2018年竞赛中提交了这个模型,bbox和mask AP分别为51.3和43.6。

28fc7f4fe511b6972b595f2394621e6c2d8331ed

这个成绩,在没有经过ImageNet预训练的单模型中是最好的。

这是一个非常庞大的模型,使用了ResNeXt-152 8×32d基干,GN归一化方法。从这个成绩我们也能看出,这个大模型没有明显过拟合,非常健壮(robust)。

实验中,何恺明等人还用ImageNet预训练了同样的模型,再进行微调,成绩没有任何提升。

这种健壮性还有其他体现。

比如说,用更少的数据进行训练,效果还是能和预训练再微调方法持平。何恺明在论文中用“Even more surprising”来形容这个结果。

当他们把训练图像数量缩减到整个COCO数据集的1/3(35000张图)、甚至1/10(10000张图)时,经过多次迭代,随机初始化看起来还略优于预训练法的效果。

732d1dac56f65b05a715740d9ec599772b47f74e

不过,10000张图已经是极限,继续降低数据量就不行了。当他们把训练数据缩减到1000张图片,出现了明显的过拟合。

怎样训练?

想抛弃ImageNet预训练,用不着大动干戈提出个新架构。不过,两点小改动在所难免。

第一点是模型的归一化方法,第二点是训练长度。

我们先说模型归一化(Normalization)

因为目标检测任务的输入数据通常分辨率比较高,导致批次大小不能设置得太大,所以,批归一化(Batch Normalization,BN)不太适合从零开始训练目标检测模型。

于是,何恺明等人从最近的研究中找了两种可行的方法:群组归一化(Group Normalization,GN)和同步批归一化(Synchronized Batch Normalization,SyncBN)。

fe334dbf047e9358d6edbc4bae9ae2c21b2277c1

GN是吴育昕和何恺明合作提出的,发表在ECCV 2018上,还获得了最佳论文荣誉提名。这种归一化方法把通道分成组,然后计算每一组之内的均值和方差。它的计算独立于批次维度,准确率也不受批次大小影响。

SyncBN则来自旷视的MegDet,和香港中文大学Shu Liu等人的CVPR 2018论文Path Aggregation Network for Instance Segmentation。这是一种跨GPU计算批次统计数据来实现BN的方法,在使用多个GPU时增大了有效批次大小。

归一化方法选定了,还要注意收敛问题,简单说是要多训练几个周期。

道理很简单:你总不能指望一个模型从随机初始化状态开始训练,还收敛得跟预训练模型一样快吧。

所以,要有耐心,多训练一会儿。

b33f4b1ff7080d437c2e47eeee1283a5cf114aa3

上图就是这两种方法的对比。假设微调的模型已经预训练了100个周期,那么,从零开始训练的模型要迭代的周期数是微调模型的3倍,见到的像素数量才能差不多,实例级、图片级的样本数量依然差距很大。

也就是说,要想从随机初始化状态开始训练,要有大量样本。

到底要不要用ImageNet预训练?

这篇论文还贴心地放出了从实验中总结的几条结论:

 ●  不改变架构,针对特定任务从零开始训练是可行的。
 ●  从零开始训练需要更多迭代周期,才能充分收敛。
 ●  在很多情况下,甚至包括只用10000张COCO图片,从零开始训练的效果不逊于用ImageNet预训练模型微调。
 ●  用ImageNet预训练能加速在目标任务上的收敛。
 ●  ImageNet预训练未必能减轻过拟合,除非数据量极小。
 ●  如果目标任务对定位比识别更敏感,ImageNet预训练的作用较小。

所以,关于ImageNet预训练的几个关键问题也就有了答案:

它是必需的吗?并不是,只要目标数据集和计算力足够,直接训练就行。这也说明,要提升模型在目标任务上的表现,收集目标数据和标注更有用,不要增加预训练数据了。

它有帮助吗?当然有,它能在目标任务上数据不足的时候带来大幅提升,还能规避一些目标数据的优化问题,还缩短了研究周期。

我们还需要大数据吗?需要,但一般性大规模分类级的预训练数据集就不用了,在目标领域收集数据更有效。

我们还要追求通用表示吗?依然需要,这还是个值得赞赏的目标。


原文发布时间为:2018-11-23
本文来自云栖社区合作伙伴“ 量子位”,了解相关信息可以关注“ 量子位”。
相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
579 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
4月前
|
机器学习/深度学习 人工智能 算法
AI 基础知识从 0.6 到 0.7—— 彻底拆解深度神经网络训练的五大核心步骤
本文以一个经典的PyTorch手写数字识别代码示例为引子,深入剖析了简洁代码背后隐藏的深度神经网络(DNN)训练全过程。
892 56
|
2月前
|
机器学习/深度学习 数据可视化 网络架构
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
PINNs训练难因多目标优化易失衡。通过设计硬约束网络架构,将初始与边界条件内嵌于模型输出,可自动满足约束,仅需优化方程残差,简化训练过程,提升稳定性与精度,适用于气候、生物医学等高要求仿真场景。
342 4
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
|
8月前
|
机器学习/深度学习 存储 算法
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
反向传播算法虽是深度学习基石,但面临内存消耗大和并行扩展受限的问题。近期,牛津大学等机构提出NoProp方法,通过扩散模型概念,将训练重塑为分层去噪任务,无需全局前向或反向传播。NoProp包含三种变体(DT、CT、FM),具备低内存占用与高效训练优势,在CIFAR-10等数据集上达到与传统方法相当的性能。其层间解耦特性支持分布式并行训练,为无梯度深度学习提供了新方向。
335 1
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
|
3月前
|
存储 网络协议 算法
从HPACK到多路复用,揭秘HTTP/2如何终结网络拥堵
HTTP/2通过HPACK压缩头部冗余信息,提升传输效率;并利用多路复用技术,在单个TCP连接上并行处理多个请求,避免队头阻塞,显著提升性能。同时支持服务器推送和流优先级设置,优化资源加载体验。
227 7
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
392 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
10月前
|
机器学习/深度学习 文件存储 异构计算
YOLOv11改进策略【模型轻量化】| 替换骨干网络为EfficientNet v2,加速训练,快速收敛
YOLOv11改进策略【模型轻量化】| 替换骨干网络为EfficientNet v2,加速训练,快速收敛
1112 18
YOLOv11改进策略【模型轻量化】| 替换骨干网络为EfficientNet v2,加速训练,快速收敛
|
10月前
|
机器学习/深度学习 数据可视化 API
DeepSeek生成对抗网络(GAN)的训练与应用
生成对抗网络(GANs)是深度学习的重要技术,能生成逼真的图像、音频和文本数据。通过生成器和判别器的对抗训练,GANs实现高质量数据生成。DeepSeek提供强大工具和API,简化GAN的训练与应用。本文介绍如何使用DeepSeek构建、训练GAN,并通过代码示例帮助掌握相关技巧,涵盖模型定义、训练过程及图像生成等环节。
|
10月前
|
机器学习/深度学习 文件存储 异构计算
RT-DETR改进策略【模型轻量化】| 替换骨干网络为EfficientNet v2,加速训练,快速收敛
RT-DETR改进策略【模型轻量化】| 替换骨干网络为EfficientNet v2,加速训练,快速收敛
259 1
|
12月前
|
人工智能 搜索推荐 决策智能
不靠更复杂的策略,仅凭和大模型训练对齐,零样本零经验单LLM调用,成为网络任务智能体新SOTA
近期研究通过调整网络智能体的观察和动作空间,使其与大型语言模型(LLM)的能力对齐,显著提升了基于LLM的网络智能体性能。AgentOccam智能体在WebArena基准上超越了先前方法,成功率提升26.6个点(+161%)。该研究强调了与LLM训练目标一致的重要性,为网络任务自动化提供了新思路,但也指出其性能受限于LLM能力及任务复杂度。论文链接:https://arxiv.org/abs/2410.13825。
227 12

热门文章

最新文章