1、为什么随着网络深度增加,神经网络训练越来越慢呢?
因为深层神经网络在做非线性变换前的激活输入值,随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动。训练收敛慢,一般是因为整体分布逐渐往非线性函数的取值区间的上下限两端靠近,这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因。
2、BN(Batch Normalization)的基本思想
BN不仅仅对输入层做标准化处理,还对网络的每一中间层的输入(激活函数前)做标准化处理,使得输出服从均值为0,方差为1的正态分布,从而避免变量分布偏移的问题。之所以称之为批
标准化,是因为在训练期间,我们仅通过计算当前层一小批数据
的均值和方差来标准化每一层的输入。相当于把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0,方差为1的标准正态分布。
3、Batch Normalization的优点
(1)避免梯度消失和梯度爆炸。把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,这样可以让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。
(2)加快训练速度。
(3)提高模型泛化能力。因为批量标准化不是应用在整个数据集,而是mini-batch上,会产生一些噪声,可以提高模型泛化能力。
4、参考文章: