断断续续花了几天时间读了BN论文,发现BN确实很强大,解决了梯度消失和梯度爆炸,加快了模型的训练速度。BN给的不只是算法,帮助固定输入的分布,还说明了一种想法:网络层是人为规定的,可以把BN,激活函数,加权看成新的一层。所以看成这样新的网络结果就能固定输入分布。
也就是从一开始的网络结构开始看起,第一层第二层是固定的,把剩下的所有layers看成是一层,然后在第二层后面接一个BN,相当于BN是后面整个层的输入标准化。同理再把这个整层的网络再分割,也就固定了输入的分布。所以BN能够加快模型的训练速度。

然后是几个当时看觉得疑问的点,和几个需要了解的基础概念。

为什么bn需要放在激活函数之前。

在论文的试验中,作者他们通过实验得到,在第一第二时刻使用BN能够是函数更能保持输入的分布。而且如果在非线性函数的输出后面使用BN,会得到稀疏的值。

为什么标准化后还要跟一个线性映射。

我们再把activations标准化后可能会使得原来的数据丢失了一部分特征。比如在sigmoid函数中,只保持了线性部分,而丢失了非线性的部分。所以通过线性映射来得到原来的特征。映射的两个参数需要通过学习得到。

为什么要得到高斯分布而不是其他?

……有人证明了高斯分布是收敛最快的。

梯度消失和梯度爆炸

大的输入进入到sigmoid函数后,可以从图像中看到产生的梯度非常小,这就得到了梯度弥散的问题,小的梯度导致权值不学习。

又比如在深度网络中,通过反向传播,最后一层的梯度自对自己求导一次,梯度较大,而前面几层在链式求导的规则下产生很小的梯度。这就导致了后面网络在学习,而前面的网络基本不再学习。梯度爆炸原理相同。
通过了BN层后,在对梯度进行求偏导,可以再论文的公式中看到,很好地解决了这个问题。

测试时的标准差和均值

标准化的mini_batch activations可以更高效的训练。但是我们希望输入是依赖于整个输出的,所以在测试时我们使用的平均值和标准差应该跟训练的每一次都相关,即Alg2.

covariate shift

convariate shift。因为我们在传统机器学习中假设训练集和测试集是独立同分布的,比如:假设q1(x)是测试集中一个样本点的概率密度,q0(x)是训练集中一个样本点的概率密度,独立同分布则说明q0(x)=q1(x).所以当用训练集得出最优参数时,依然可以保证q1(x)最优。但现实中,伴随新数据产生,老数据会过时,两个概率密度会不再相等,也就是发生了covariate shift。

定义convariate shift为,由于在训练中参数的变化导致了网络激活的分布。

mini_batch比one_example at one time更有效

1.我们通过计算m个训练样本的损失函数,并对其求出梯度来优化参数。这比通过求解m次单个例子来求解损失函数,梯度,更新参数更有效。

2.在mini_batch上的损失函数的梯度是对整个训练集的一种估计。并且它的质量提高随着它的大小增加。

Batch Normalization论文读后感相关推荐

  1. Batch Normalization论文笔记

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-70.html 论文:Batch Normalization: ...

  2. 【论文理解】Batch Normalization论文中关于BN背景和减少内部协变量偏移的解读(论文第1、2节)

    最近在啃Batch Normalization的原论文(Title:Batch Normalization: Accelerating Deep Network Training by Reducin ...

  3. CBN(Cross-Iteration Batch Normalization)论文详解

    原文链接:Cross-Iteration Batch Normalization 代码链接:https://github.com/Howal/Cross-iterationBatchNorm 随着BN ...

  4. Rethinking the Distribution Gap of Person Re-identi cation with Camera-based Batch Normalization论文笔记

    文章目录 1. 摘要 2. 基础知识 BN层(Batch Normalization) 3. 方法 3.1 CBN 3.2 CBN在ReID的应用 4. 效果 5. 实现细节 1. 摘要 所解决的问题 ...

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

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

  6. 『教程』Batch Normalization 层介绍

    原文链接 思考 YJango的前馈神经网络--代码LV3的数据预处理中提到过:在数据预处理阶段,数据会被标准化(减掉平均值.除以标准差),以降低不同样本间的差异性,使建模变得相对简单. 我们又知道神经 ...

  7. 偏差与方差、L1正则化、L2正则化、dropout正则化、神经网络调优、批标准化Batch Normalization(BN层)、Early Stopping、数据增强

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 3.2 深度学习正则化 3.2.1 偏差与方差 3.2.1.1 ...

  8. 深度学习中 Internal Covariate Shift 问题以及 Batch Normalization 的作用

    深度学习中 Internal Covariate Shift 问题以及 Batch Normalization 的作用 前言 一.Batch Normalization是什么? 1.1 Interna ...

  9. 论文阅读|How Does Batch Normalization Help Optimization

    欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接:  http://www.pkudodo.com/2019 ...

最新文章

  1. 世界一流大学如何建设人工智能学科
  2. hdu 3805 Triangle Conjecture
  3. 搭建网络及服务器系统,网络服务器搭建与管理
  4. python 且_Pyface库:一个基于pyqt、pyside、wx且简化的python的GUI
  5. ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath、Server.MapPath的区别
  6. 关于如何控制一个页面的Ajax读数据只读一次的简单解决办法!
  7. 祁是计算机,南京邮电大学计算机/软件学院导师介绍:祁正华
  8. php正则表达式2,php正则表达式基本语法(2)
  9. 点击按钮后网页不向上滚动
  10. Visio画图:用Visio画流程图(初级)
  11. Connection terminated as request was larger than XXX
  12. epub编辑器apk_使用您喜欢HTML编辑器编辑ePub电子书
  13. 【详解】软件工程中的有效性威胁(Threats to validity)到底是什么?
  14. SHELL DATE 命令详解
  15. 【转载】SCI投稿过程总结、投稿状态解析、拒稿后对策及接受后期相关问答
  16. 金庸笔下人物以及网络俏皮英语对应关系表-诗词
  17. JavaScript mongodb(数据库)简单值
  18. npm install时cb() never called!错误解决方法
  19. 怎么查计算机硬件配置,怎么查看电脑硬件配置详细信息|韩博士一键检测电脑配置...
  20. 清理autodesk产品注册表_关于Autodesk软件的删除方法

热门文章

  1. arm poky linux,交叉编译iMX6 contex-A9 arm-poky 一些坑
  2. CCF 201709-2 公共钥匙盒 (Java 100分)
  3. Waymo Open Dataset 数据集(CVPR 2020)
  4. Python解决鸡兔同笼
  5. 关于MAX232芯片总是发热的问题
  6. windows10 原版 纯净版 下载
  7. glog编译安装使用
  8. 量子通信与计算机网络,中科大90后团队搭建 “量子鹊桥”,可将量子通信速率提升四倍,相关研究登上 Nature 封面 | 专访...
  9. 如何开启windows xp文件、文件夹的安全选项卡
  10. Linux:ip addr命令分析