Batch Normalization
在激活函数接受输入之前,将数据规范到标准正态分布中。
- 避免梯度消失,加块网络训练速度。由于将数据规范到了标准正态分布中,输入数据则较大概率会落到激活函数的较为敏感的区域(梯度较大的区域),因此在使用BN层后可以使用sigmoid或者tanh等饱和性激活函数。
- 在神经网络中,一个参数的微小变化在经过深层的网络后会产生较大的影响,并且每一层的输入分布也会发生改变,从而导致网络需要不断学习适应这种输入分布的改变。在没有使用BN层的情况下将当前层输出直接作为激活函数的输入,会增加层与层之间的耦合性。由于神经网络就是学习数据的分布,在使用BN层后,可以使输入数据分布相对稳定,加快网络训练速度。