CNN学习笔记:批标准化

CNN学习笔记:批标准化

Batch Normalization

  Batch Normalization, 批标准化, 是将分散的数据统一的一种做法, 也是优化神经网络的一种方法。

  在神经网络的训练过程中,随着网络深度的增加,后面每一层的输入值(即x=WU+B,U是输入)逐渐发生偏移和变动,之所以训练收敛慢,一般是整体分布往非线性函数的取值区间的上下限两端靠近,所以这将导致反向传播时低层网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范手动,把每层神经网络任意神经元这个输入值来回倒均值为0方差为1的标准正态分布

  

  总而言之,BN是一种方法,对于每个隐层神经元,把逐渐向非线性函数映射后向取值区间极限饱和区靠拢的输入分布强制拉回到均值为0方差为1的比较标准的正态分布,使得非线性变换函数的输入值落入对输入比较敏感的区域,以此避免梯度消失问题。当梯度保持较大的状态,会提高参数调整效率,加快收敛。 

训练阶段的BatchNorm

  假设对于一个深层神经网络来说,其有两层结构

  

  要对每个隐层神经元的激活值做BN,可以想象成每个隐层又加上了一层BN操作层,它位于X=WU+B激活值获得之后,非线性函数变换之前,如下:

  

  对于Mini-Batch SGD来说,一次训练过程里面包含m个训练实例,其具体BN操作就是对于隐层内每个神经元的激活值来说,进行如下变换:

  

 

参考资料

posted @ 2019-04-16 22:38  子烁爱学习  阅读(815)  评论(0编辑  收藏  举报