随笔小计-batchnormalization
1、为什么需要BatchNormalization
网络训练开始后,参数会发生更新操作,除了输入层的数据外,后面每一层的输入数据都在发生着变化,前面层训练参数更新,后面层输入的数据分布必然变化,出现了covariate shift问题,可能会导致blow up和模型不准确的问题。
2、BatchNormalization怎么解决的
- 解决方法
针对一个batch的数据处理
- 求该batch的均值
- 求该batch的方差
- 使用均值和方差对数据做归一化获得0-1分布
- 于归一化后的数据基本会被限制在正态分布下,网络的表达能力下降,解决这一问题对数据进行尺度变化和偏移,γ表示为尺度因子和β为偏移因子。
3、BatchNormalization的好处
提高训练时的收敛速度,解决blow up问题