Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

批处理归一化:通过减少内部协变量移位来加速深度网络训练

摘要

训练深度神经网络是复杂的,因为在训练过程中,每一层的输入分布都会随着前一层参数的变化而变化。由于需要较低的学习率和小心的参数初始化,这减慢了训练的速度,并且使得训练具有饱和非线性的模型变得非常困难。我们将这种现象称为内部协变量移位,并通过规范化层输入来解决这个问题。我们的方法将规范化作为模型体系结构的一部分,并对每个训练小批执行规范化。批处理归一化允许我们使用更高的学习率,并且不需要太注意初始化。它还充当一个正则化器,在某些情况下消除Dropout的需要。应用于最先进的图像分类模型,批处理归一化以14倍少的训练步骤达到相同的精度,并显著优于原始模型。使用批处理归一化网络的集合,我们改进了ImageNet分类的最佳发布结果:达到4.9%的前5个验证错误(和4.8%的测试错误),超过了人类评分者的准确性。

1、介绍

深度学习极大地提高了视觉、语言和许多其他领域的技术水平。随机梯度下降(SGD)已被证明是一种有效的训练深度网络的方法,而SGD的变体如动量(Sutskever et al., 2013)和Adagrad (Duchi et al., 2011)已被用于实现艺术表现的状态。SGD对parametersΘof网络进行了优化,使损耗降到最低。

2、减少内部协变量移位

3、通过小批统计进行标准化

3.1 批量归一化网络的训练与推理

3.2 Batch-Normalized卷积网络

3.3 批处理规范化能够实现更高的学习率

3.4 BN规范化了模型

4、实验

4.1 随着时间的推移激活

4.2 ImageNet分类

4.2.1 加速BN网络

4.2.2 单独的网络分类

4.2.3 分类集

5、结论

我们提出了一种新的机制,可以极大地加速深度网络的训练。它是基于协变量移位的前提,协变量移位会使机器学习系统的训练变得复杂,也运用到了子网和层,将其从网络的内部激活中移除可能有助于训练。我们提出的方法的强大之处在于对激活进行规范化,并将这种规范化整合到网络架构本身中。这确保了规范化被用于训练网络的任何优化方法适当地处理。为了实现深度网络训练中常用的随机优化方法,我们对每个小批量进行归一化,并通过归一化参数反向传播梯度。批处理规范化在每次激活时只增加两个额外的参数,这样做保持了网络的表示能力。我们提出了一种利用批处理归一化网络构造、训练和执行推理的算法。得到的网络可以用饱和非线性进行训练,对增加的训练速率有更大的容忍度,而且通常不需要Dropout来进行正则化。

仅仅将批处理归一化添加到最先进的图像分类模型中,就可以在训练中大大加快速度。通过进一步提高学习速率,去除Dropout,并应用批处理归一化提供的其他修改,我们只需要一小部分的训练步骤就可以达到先前的技术状态,然后超越单网络图像分类的状态。此外,通过结合使用批处理归一化训练的多个模型,我们比ImageNet上最著名的系统表现得更好。

有趣的是,我们的方法与(Gülc ehre & Bengio, 2013)的标准化层相似,尽管这两种方法源于非常不同的目标,并且执行不同的任务。批处理归一化的目标是在整个训练过程中实现激活值的稳定分布,在我们的实验中,我们在非线性之前应用它,因为在非线性之前匹配第一和第二矩更有可能导致稳定分布。相反,(Gülc ehre & Bengio, 2013)将标准化层应用于非线性的输出,从而导致更稀疏的激活。在我们的大规模图像分类实验中,我们没有观察到非线性输入是稀疏的,无论是有或没有批归一化。

Batch Normalization的其他显著不同之处包括允许BN转换表示身份的学习规模和位移(标准化层不需要这样做,因为后面跟着学习的线性转换,从概念上来说,吸收必要的规模和位移),处理卷积层,不依赖于小批处理的确定性推理,以及批量规范化网络中的每个卷积层。

在这项工作中,我们还没有探索批处理规范化可能实现的全部可能性。我们未来的工作包括将我们的方法应用于递归神经网络(Pascanu et al., 2013),其中内部协变量移位和消失或爆炸梯度可能会特别严重,这将使我们能够更彻底地检验归一化改善梯度传播的假设(第3.3节)。我们计划调查是否批标准化有助于领域适应气候变化,在传统意义上,即标准化执行的网络是否会使它更容易推广到新的数据分布,也许只有一个人口的重新计算均值和方差(Alg。2)。最后,我们相信,进一步的理论分析算法将允许更多的改进和应用。

[翻译]Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift相关推荐

  1. 【论文泛读】 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

    [论文泛读] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift ...

  2. Batch normalization:accelerating deep network training by reducing internal covariate shift的笔记

    说实话,这篇paper看了很久,,到现在对里面的一些东西还不是很好的理解. 下面是我的理解,当同行看到的话,留言交流交流啊!!!!! 这篇文章的中心点:围绕着如何降低  internal covari ...

  3. 批归一化《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》

    批归一化<Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift ...

  4. 【BN】《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》

    ICML-2015 在 CIFAR-10 上的小实验可以参考如下博客: [Keras-Inception v2]CIFAR-10 文章目录 1 Background and Motivation 2 ...

  5. 《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》阅读笔记与实现

    今年过年之前,MSRA和Google相继在ImagenNet图像识别数据集上报告他们的效果超越了人类水平,下面将分两期介绍两者的算法细节. 这次先讲Google的这篇<Batch Normali ...

  6. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 论文笔记

    Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 论文链接: h ...

  7. 论文阅读:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

    文章目录 1.论文总述 2.Why does batch normalization work 3.BN加到卷积层之后的原因 4.加入BN之后,训练时数据分布的变化 5.与BN配套的一些操作 参考文献 ...

  8. 读文献——《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》

    在自己阅读文章之前,通过网上大神的解读先了解了一下这篇文章的大意,英文不够好的惭愧... 大佬的文章在https://blog.csdn.net/happynear/article/details/4 ...

  9. 深度学习论文--Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

    本文翻译论文为深度学习经典模型之一:GoogLeNet-BN 论文链接:https://arxiv.org/abs/1502.03167v3 摘要:训练深度神经网络的难度在于:前一层网络参数的变化,导 ...

  10. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

    机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障.BatchNorm就是在深度神经网络训 ...

最新文章

  1. 【lidar】基于YOLO的3D目标检测(激光雷达点云)课程设计
  2. vim 7.4同时支持python 2.x和3.x问题调研
  3. Power BI for Office 365(七) Power BI站点
  4. 两年前觉得这很难那很难的人,现在觉得更难了
  5. MVC架构中的Repository模式 个人理解
  6. Linux 命令详解(二)awk 命令
  7. JVM源码分析之Object.wait/notify(All)完全解读
  8. [No00009E]几种常见的命名规则
  9. ActionBar返回键图标怎么搞小点?
  10. 若依同时集成jsp和thymeleaf解决方案
  11. 读书随笔:The Book of Why——INTRODUCTION:MIND OVER DATA
  12. TPC-C 中跑赢 Oracle 的 OceanBase,双 11 处理峰值达 6100 万次/秒!
  13. AMESim找图形平衡点的方法
  14. oracle rac 在完成安装错误。
  15. 传统直线检测算法与基于深度学习的直线检测算法
  16. Paper:《Pre-Trained Models: Past, Present and Future大规模预训练模型的发展历史、最新现状和未来发展三个方向》翻译与解读
  17. Android读出Excel报表数据然后导出写入到SQLite数据库
  18. python中文名是什么怎么读-python中文读音
  19. 如何解压war后缀的文件:
  20. 想到我爱你的绝对不正常

热门文章

  1. SystemUI 人脸识别解锁后指纹消耗次数并没有清楚
  2. 16个最新创意品牌Logo设计 —— “形神”兼具的设计,方显高级和质感
  3. SIMPLE、PISO 、PIMPLE算法浅析
  4. (Note)阿克西斯ACASIS DT-3608双盘位硬盘阵列盒RAID设置
  5. una到底啥意思_una到底啥意思_Una_英文名Una是什么意思
  6. Vmware安装Ubuntu16.0.4出现Assuming drive cache: write through和1920X1080分辨率调节问题
  7. java是面向过程的编程语言_1. 下列关于JAVA语言特点的叙述中,错误的是[   ] A、Java是面向过程的编程语言...
  8. android属性动画郭霖,GitHub - zhuanghongji/mp-android-index: 微信公众号「郭霖」「鸿洋」「玉刚说」「谷歌开发者」历史文章索引...
  9. MATLAB中图像增强之伪彩色增强
  10. Android部分手机报 解析包时出现问题 原因与解决方法