NFNETS论文解读:不使用BN的高性能大规模图像识别

简介: NFNETS论文解读:不使用BN的高性能大规模图像识别

简介与概述

因此,本文的重点是在不是使用BN来构建图像识别的卷积残差神经网络。但是如果没有BN,这些网络通常无法很好地运行或无法扩展到更大的批处理大小,但是本篇论文构建的网络可以使用大的批次进行伦联,并且比以前的最新方法(例如LambdaNets)更有效 。训练时间与准确率如下图表显示,对于在ImageNet上进行的相同的top-1准确性评分,NFnet比EffNet-B7快8.7倍。此模型是没有任何其他培训数据的最新技术,也是新的最新迁移学习。NFnets目前在全球排行榜上排名第二,仅次于使用半监督预训练和额外数据的方法。

640.png

BN有什么问题?

如果一个数据通过网络进行传播,它在经过各个层时将经历各种转换,但是,如果以错误的方式构建网络,这种传播就变得错上加错。在机器学习中,将数据集中在平均值周围,并将其缩放为单位变量是一个很好的做法,但当你在层中前进时,特别是如果你有像ReLU这样的激活层,它们只提取信号的正部分。因此随着时间的流逝,更深一层之间的中间表示可能会非常偏斜并且没有居中。如果您的数据具有良好的条件数(即,以均值为中心,不太偏斜等),则当前机器学习中的方法会更好地工作。

640.png

BN有3个显著的缺点。首先,它是一个非常昂贵的计算,这会导致内存开销。你需要计算平均值,缩放需要将它们存储在内存中用于反向传播算法。这增加了在某些网络中评估梯度所需的时间。

其次,它在模型训练和在推理时引入了一个差异的行为。因为在推理时你不想要这种批依赖,二十希望能够适配一个数据点,并且这两种操做的结果应该是相同的。

第三,BN打破了小批量训练实例之间的独立性。这意味着,现在批处理中哪些其他示例很重要。

这有两个主要后果。首先,批大小将影响批规范化。如果你有一个小批量,平均值将是一个非常有噪声的近似,然而,如果你有一个大批量,平均值将是一个很好的近似。我们知道对于一些应用来说大批量的训练是有利的,他们稳定了培训,减少了培训时间等。

其次,分布式训练变得非常麻烦,因为例如,如果你的数据并行性,也就是说,你有这批数据批处理分为三个不同的部分,这三个部分向前传播到所有的神经网络用于3个不同的机器上的训练。如果在所有3个网络中都有一个BN层,那么您在技术上要做的就是将信号转发到BN层,然后您必须在BN层之间传递批处理统计信息,因为否则 在整个批次中没有平均值和方差。这使网络可以“欺骗”某些损失函数。

640.png

论文贡献

作者提出了自适应梯度裁剪(AGC),该方法基于梯度范数与参数范数的单位比例来裁剪梯度,他们证明了AGC允许我们训练具有更大批处理量和更强大数据增强功能的无规范化网络。

作者设计了一个称为NFNet的无规范化ResNet系列,该系列在ImageNet上针对各种训练等待时间设置了最好的验证精度。NFNet-F1模型达到与EfficientNet-B7相似的精度,同时训练速度提高了8.7倍,最大的模型在没有额外数据的情况下,设定了一个全新的高度(86.5% top-1精度)。

作者还提到,在对3亿张带有标签的大型私有数据集进行预训练后,对ImageNet进行微调时,NFNet与批归一化网络相比,其验证准确率要高得多。最佳模型经过微调后可达到89.2%的top-1

自适应梯度裁剪(AGC)

梯度裁剪通常用于语言建模以稳定训练,最近的工作表明,与梯度下降相比,它允许有更大的学习率的训练。梯度裁剪通常是通过约束梯度的模来实现的。具体来说,对于梯度向量G =∂L/∂θ,其中L表示损失,θ表示包含所有模型参数的向量,标准裁剪算法在更新θ之前对梯度进行裁剪:

640.png

在训练过程中,优化器为了达到全局最小值而进行巨大的跳跃并不是一件很好的事情,所以梯度剪切只是说,无论何时任何参数的梯度非常大,我们都会剪切该梯度。如果梯度是好的,我们肯定会再次看到它,但如果梯度是坏的,我们想要限制它的影响。问题在于它对限幅参数λ非常敏感,原因是它不具有自适应性。

AGC所做的是,它可以缩放渐变,不仅可以将渐变缩放到其自己的范数,还可以将渐变裁剪为比率(渐变的大小/渐变所作用的权重是多少)。乍一看可能会有些困惑,详细请看论文第4页,以更清晰地理解AGC。

剪切阈值λ是必须调整的标量超参数。根据经验,作者发现,虽然这种削波算法使他们能够以比以前更高的批次大小进行训练,但是训练稳定性对削波阈值的选择极为敏感,在改变模型深度、批大小或学习速率时需要细粒度调整。作者通过选择与梯度范数成反比的自适应学习速率来忽略梯度的比例。

注意,最优剪切参数λ可能取决于优化器的选择,学习率和批大小。根据经验作者发现对于大批量生产λ应该更小。

自适应梯度裁剪(AGC)的消融

640.png

例如,如果你比较图1中的批规范网络(NF-ResNet和NF-ResNet + AGC),你可以看到在一定的批大小(2048)之后,非AGC会简单地崩溃,而AGC会占上风。这似乎是大批量生产的隐藏问题。作者抱怨说λ的剪切阈值是非常挑剔的。在图2中,你可以看到λ对批大小有一个至关重要的依赖,另外上图显示在小批次大小下,可以在相当大的阈值上进行剪切。对于大批量,必须将阈值保持在非常低的水平,因为如果将阈值修剪得更高则会崩溃。

相关实践学习
基于函数计算实现AI推理
本场景基于函数计算建立一个TensorFlow Serverless AI推理平台。
目录
相关文章
|
机器学习/深度学习 存储 人工智能
一周AI论文 | FB发布商业化图像识别系统,多任务学习还能这样用
一周AI论文 | FB发布商业化图像识别系统,多任务学习还能这样用
149 0
【论文阅读心得】图像识别中一个常用词的中英文释义——artifact
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ artifact 非自然信号,人工制品 In video systems, something unnatural or unintended observed in the reproduction of an image by the system. 在视频系统中,图象重显时观察到的反常的或非有意安排的某些东西。
874 0
|
1天前
|
机器学习/深度学习 异构计算
深度学习在图像识别中的应用与挑战
【5月更文挑战第8天】 随着科技的不断发展,深度学习技术在图像识别领域取得了显著的成果。然而,尽管深度学习在图像识别中表现出优越的性能,但仍面临着诸多挑战。本文将探讨深度学习在图像识别中的应用及其面临的挑战,以期为相关研究提供参考。
|
1天前
|
机器学习/深度学习 算法 网络架构
深度学习在图像识别中的应用与挑战
【5月更文挑战第8天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的重要力量。本文深入探讨了深度学习技术在图像识别任务中的应用,包括卷积神经网络(CNN)的基础架构、训练策略以及优化方法。同时,文章还分析了当前面临的主要挑战,如数据集偏差、模型泛化能力和计算资源消耗等,并提出了潜在的解决方案。
|
1天前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第8天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉进步的核心技术之一。本文聚焦于深度学习在图像识别领域的应用及其所面临的挑战。首先,简述了深度学习的基本概念和关键技术,随后深入探讨了卷积神经网络(CNN)在图像分类、目标检测和语义分割中的具体应用案例。接着,分析了当前深度学习技术在处理大规模图像数据时遇到的计算资源需求高、模型泛化能力不足、对抗性攻击等问题。最后,展望了通过模型压缩、迁移学习以及增强学习等策略来应对这些挑战的未来研究方向。
|
1天前
|
机器学习/深度学习 算法 自动驾驶
深度学习在图像识别中的创新应用
【5月更文挑战第8天】 随着科技的不断发展,深度学习技术在图像识别领域的应用越来越广泛。本文将介绍深度学习在图像识别中的创新应用,包括卷积神经网络(CNN)的原理、优化算法以及实际应用场景。通过对这些技术的深入探讨,我们可以更好地理解深度学习在图像识别领域的重要性和潜力。
6 0
|
1天前
|
机器学习/深度学习 边缘计算 算法
基于深度学习的图像识别优化策略研究
【5月更文挑战第8天】 本研究旨在探索提高深度神经网络在图像识别任务中性能的有效策略。通过分析现有模型的局限性,本文提出了一系列优化技术,包括数据增强、网络结构调整和损失函数改进。实验结果表明,这些策略显著提升了模型的准确率和泛化能力,尤其在处理高复杂度图像时表现突出。此外,针对计算资源消耗问题,我们还探讨了模型压缩和加速方法,以期实现高效率的实时图像识别应用。
|
1天前
|
机器学习/深度学习 自动驾驶 安全
深度学习在图像识别中的应用及挑战
【5月更文挑战第8天】 本文旨在探讨深度学习技术在图像识别领域的应用及其面临的主要挑战。随着卷积神经网络(CNN)等深度结构的发展,图像识别准确率已显著提高,但伴随而来的是对计算资源的巨大需求、模型泛化能力的考验以及对抗性攻击的脆弱性等问题。我们将回顾深度学习在图像识别中的基础原理,展示其在多个领域内的实际应用案例,并分析当前技术发展所面临的关键挑战。
4 0
|
1天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别在自动驾驶中的应用
【5月更文挑战第8天】 随着人工智能技术的飞速发展,深度学习已经成为计算机视觉领域的核心技术之一。特别是在图像识别任务中,深度学习模型已经显示出超越传统算法的性能。本文旨在探讨基于深度神经网络的图像识别技术在自动驾驶汽车中的应用及其对提高行车安全性的重要性。我们将详细介绍卷积神经网络(CNN)的基础结构,以及如何通过增加网络深度和宽度、使用正则化方法和数据增强技术来提升模型性能。此外,我们还将讨论这些技术在实际自动驾驶系统中的实现方式和所面临的挑战。
|
2天前
|
机器学习/深度学习 人工智能 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第7天】 随着人工智能技术的飞速发展,深度学习在图像识别领域的应用已经取得了显著的成果。本文将探讨深度学习在图像识别中的关键技术和发展趋势,以及面临的挑战和未来的发展方向。