BatchNormalization解释

原创 2018年04月16日 20:49:14

参考网址:点击打开链接

一、为什么要使用BatchNormalization?

在深度网络的训练过程中,只要网络的前几层发生微小的变化,就会在后面网络的累积放大下去。一旦网络的某一层的输入数据的分布发生了变化,那么这层网络就需要去适应这个新的数据分布,所以训练过程中,如果训练数据一直在发生改变的话,就会使网络的训练速度很慢。为了解决这个问题就可以使用BatchNormalization算法。


二、BatchNormalization是怎么做的?

首先对应的是一种归一化处理,将数据变化为均值为0,标准差为1的数据。即减去平均值,除以标准差。

                                

只是归一化存在一定的问题,当你进行归一化处理后,数据的差距会减小,导致在使用S型激活函数的时候,会让本来处于两侧的数据都跑到了中间部分,这样提取出来的特征就变弱、或者消失了。所以又引入一个变换重构的方式

                                   

参数γ和β是可学习参数

这样当的时候,就会恢复到原来的特征。


最终有


有一个问题:先进行正则,又变回去,那不是等于没变么?

不会。因为,再变换引入的两个新参数 g 和 b,可以表示旧参数作为输入的同一族函数,但是新参数有不同的学习动态。在旧参数中, \bold{x} 的均值取决于下层神经网络的复杂关联;但在新参数中, \bold{y}=\bold{g}\cdot \bold{\hat{x}} + \bold{b} 仅由 \bold{b} 来确定,去除了与下层计算的密切耦合。新参数很容易通过梯度下降来学习,简化了神经网络的训练。



Batch Normalization 简单理解

1:背景由于在训练神经网络的过程中,每一层的 params是不断更新的,由于params的更新会导致下一层输入的分布情况发生改变,所以这就要求我们进行权重初始化,减小学习率。这个现象就叫做intern...
  • meanme
  • meanme
  • 2015-09-23 14:47:00
  • 19070

深度学习中的数学与技巧(4): BatchNormalization 代码实现

BatchNormalization是神经网络中常用的参数初始化的方法。其算法流程图如下:  我们可以把这个流程图以门电路的形式展开,方便进行前向传播和后向传播:  那么前向传播非常简单,直接...
  • u011534057
  • u011534057
  • 2016-10-19 15:43:27
  • 1054

基于Theano的深度学习(Deep Learning)框架Keras学习随笔-16-Normalization

基于Theano的深度学习(Deep Learning)框架Keras学习随笔-16-Normalization -- 本篇介绍的内容很少,只有一项就是归一化层。顾名思义就是能够对输入输出进行归一化操...
  • niuwei22007
  • niuwei22007
  • 2015-10-25 18:21:05
  • 7492

Batch Normalization, 训练加速技术

1.简介Batch Normalization, 对每一层的输出, 在每一次 mini-batch 传播后做归一化处理, 通过减少上一层的输出变化来加速收敛. 好处: Batch Normaliz...
  • chuchus
  • chuchus
  • 2017-11-15 14:45:59
  • 375

Keras学习笔记三:BatchNormalization层和融合层(Merge层)

1. BatchNormalization层:该层在每个batch上将前一层的激活值重新规范化,即使得其输出数据的均值接近0,其标准差接近1 keras.layers.normalization.Ba...
  • zhuzuwei
  • zhuzuwei
  • 2017-11-28 11:28:10
  • 2591

Batch Normalization 总结

最近做人脸项目,打算用Batch Normalization 优化网络模型,看到大神博客写的特别好,先转载一下。 本文转载于:http://blog.csdn.net/shuzfan/article...
  • u014114990
  • u014114990
  • 2016-08-23 17:20:25
  • 3550

Batch Normalization反方向传播求导

作者给出的批标准化的算法如下: 算法中的ε是一个常量,为了保证数值的稳定性 反向传播求梯度: 因为: 所以: 因为: 所以: 因为...
  • dongapple
  • dongapple
  • 2017-08-04 10:48:56
  • 744

#cs231n#Assignment2:BatchNormalization.ipynb

根据自己的理解和参考资料实现了一下 BatchNormalization.ipynbBatch NormalizationOne way to make deep networks easier t...
  • SPARKKKK
  • SPARKKKK
  • 2017-03-19 10:24:06
  • 607

【深度学习:CNN】Batch Normalization解析(1)

原文地址:http://blog.csdn.net/hjimce/article/details/50866313 作者:hjimce 一、背景意义 本篇博文主要讲解2015年深...
  • SMF0504
  • SMF0504
  • 2017-01-18 13:23:06
  • 824

深入浅出——深度学习中的Batch Normalization使用

《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shi
  • u010402786
  • u010402786
  • 2016-04-24 15:33:19
  • 8715
收藏助手
不良信息举报
您举报文章:BatchNormalization解释
举报原因:
原因补充:

(最多只允许输入30个字)