随笔小计-batchnormalization

1、为什么需要BatchNormalization

网络训练开始后,参数会发生更新操作,除了输入层的数据外,后面每一层的输入数据都在发生着变化,前面层训练参数更新,后面层输入的数据分布必然变化,出现了covariate shift问题,可能会导致blow up和模型不准确的问题。

2、BatchNormalization怎么解决的

  • 解决方法
    随笔小计-batchnormalization
    针对一个batch的数据处理
  1. 求该batch的均值
  2. 求该batch的方差
  3. 使用均值和方差对数据做归一化获得0-1分布
  4. 于归一化后的数据基本会被限制在正态分布下,网络的表达能力下降,解决这一问题对数据进行尺度变化和偏移,γ表示为尺度因子和β为偏移因子。

3、BatchNormalization的好处

提高训练时的收敛速度,解决blow up问题