作者:18届CYL

日期:2020-9-1

期刊:arxiv

标签: BN归一化

论文:《Batch Nomalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift》

一、背景知识

1、2015年 收录在arxiv。 介绍了一种归一化方法,可以加快收敛速度,减少学习率,dropout比例这种超参数的设计。在15年之后的模型中基本都会用到。作者:Sergey loffe、Christian Szegedy

2、机器学习领域有一个很重要的假设:IID独立同分布。(测试集和训练集的分布完全相同)。而神经网络其实的整体目标可以说是学习数据的分布。

3、神经网络中通常都会设置一个batch_size,也就是一次训练扔进去的数据数量(并行计算),合适大小的batch_size可以防止每次训练单独的数据导致的神经网络一直被‘局部视野困扰而四处乱撞’难以收敛。也不需要一次性扔进所有数据(计算能力受限)。

4、深层神经网络训练收敛慢的原因之一是:非线性变换前的激活输入值随着训练的进行朝着两个极端前进,导致梯度弥散。

5、神经网络的输入通常需要做归一化,已经证明了这种方式可以提高正确率,最有效的归一化是“白化”,可以降低特征相关性,均值为0,方差为1。但是缺点是降低特征相关性这一步计算量巨大。还有一个缺点是白化操作不是处处可微的。

二、提出问题

1、由于在训练过程中前一层的参数一直在变化,所以导致后一层的输入的分布在不断的改变,这就是internal covariate shift (内部协变量转变)现象,会让深层网络更加难以收敛,而且会导致学习率、dropout率、batch_size大小、初始值等等超参数需要小心翼翼的调试。

三、解决方法

1、然后作者受到白化的启发 想:每一层的输入之前都做一下归一化它不香吗?实际上他也的确是采用了白化的简易版本。具体就是想办法对深层网络前一层的非线性变换前的激活输入做归一化,归一成均值为0,方差为1。这样一是解决 输入的分布在不断的改变(internal covariate shift)这个主要问题,二是在一定程度上解决梯度弥散问题。

四、具体方法&关注细节

1、BN归一化(batch normalization)的基本公式
均值为0,方差为1:

评价:前面说过了变成均值为0,方差为1的正态分布,可以统一每一层的输入分布,也会在非线性变换之前将向两端靠拢的值拉到中间。 但是我们也可以很容易理解:这样简单粗暴的标准归一化后让上一层学到的非线性特征被消没了,该有的变化也没有了(一直没有变化还学习啥呀)

2、BN归一化的实际公式
在原有的基础上加一点偏离

为了解决标准归一化带来的问题引入了两个调节参数(自学习参数scale和shift),这两个参数是通过训练学习到的,用来使网络的表达能力增强,论文说这两个参数自学习的最终结果可以既达到归一化的优点又维持原输入学习到的特征。我个人理解:既然我们的自学习过程总会朝向最优的情况前进,那么我们在理解引入的自学习参数时,只需要考虑这两个参数最终在无限好的情况下是否能好到让x^这个标准归一化通过平移变胖变瘦来改变分布到达原输入的有效分布。

3、最终流程

(其实与上面一毛一样)

四、BN训练和测试时的小细节

BN在训练时由于一个batch_size大小的数据被一次性扔进去,而且是并行计算,所以E(x)是这几个数据输入后同一个神经元的值的平均值,方差同理。那么再测试的时候一次只扔进去一个数据该咋办?那就是:采用全局统计量做输入的时候的平均值和方差。

五、闪耀的结果

1、可视化with或without BN的训练过程


图a:正确率-训练轮次图 图bc:输入分布变化图

2、超级加速

3、其他优点

  • 初始学习率可以非常大,让模型快速收敛,而且不需要谨小慎微的调学习率
  • 一些情况下可以取代dropout
  • 一定程度的正确率提升

注:个人理解,若有差错请指正。若有侵权请联系我们。

Accelerating Deep Network Training by Reducing Internal Covariate Shift-BN归一化解读相关推荐

  1. Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift(BN)

    internal covariate shift(ics):训练深度神经网络是复杂的,因为在训练过程中,每层的输入分布会随着之前层的参数变化而发生变化.所以训练需要更小的学习速度和careful参数初 ...

  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

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

  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

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

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

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

最新文章

  1. 【HDU】3635 Dragon Balls (带权并查集 一)
  2. linux监听9080,基于UPnP发现与组播技术的IPTV终端实现
  3. 几个表示“光”的概念
  4. Python中常见的数据类型小结
  5. Leetcode1695. 删除子数组的最大得分[C++题解]:双指针、区间内元素不能重复
  6. 蓝牙设置种常用的Intent
  7. mysql中更改字符集为utf8mysql中文输入不了问题解决
  8. 线性同余法生成随机数Matlab_生成安全的随机数
  9. 智能家居产业现状总结
  10. 计算机局域网地址设置方法,怎么设置局域网电脑的ip地址和DNS?
  11. 程序员眼中的中国传统文化-王阳明《传习录》22
  12. 秀米如何在布局里面画图_毫无基础的人如何学习 CAD?
  13. 览书记之汽车电子信息技术
  14. 如何写期望薪资、离职原因、求职意向?
  15. Linkflow+微信公众号:如何提升首购率
  16. PPTV多屏互动服务器可以看文档吗,电脑pptv播放器多屏互动服务器是什么?
  17. 【Hack The Box】linux练习-- Blunder
  18. 【学堂上新】大规模动画模拟的一种实现方法
  19. Product-based Neural Networks (PNN) - 改进特征交叉的方式
  20. Idea多次启动同一个服务

热门文章

  1. Win10+VScode+Latex快速上手:从安装到实操保姆级教程
  2. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于web的教学资源管理系统01jkz
  3. LIN总线:汽车氛围灯控制
  4. 【ROS2】状态机 Smach 包的获取与使用 - Part1
  5. 盛迈坤电商:拼多多店铺要注意运营维护
  6. [腾讯云 Cloud Studio 实战训练营]Claude+Cloud Studio辅助编程搭建Excel工资核算
  7. 如何做好 H5 性能优化
  8. 互联网+特技时代来临 新平台可将电影CG制作提速千倍
  9. CRMEB二次开发新增用户评论关键词过滤、后台审核通过后前端才显示评论信息
  10. 七成姓氏源自河南?看看当地的四大姓氏,你就知道为什么了