较深层神经网络训练时的困扰
随着训练的进行,网络中的参数也随着梯度下降在不停更新。
一方面,当底层网络中参数发生微弱变化时,由于每一层中的线性变换与非线性激活映射,这些微弱变化随着网络层数的加深而被放大;
另一方面,参数的变化导致每一层的输入数据分布会发生改变,进而上层的网络需要不停地去适应这些分布变化,使得我们的模型训练变得困难。上述这一现象叫做Internal Covariate Shift。
Internal Covariate Shift
在深层网络训练的过程中,由于网络中参数变化而引起内部结点数据分布发生变化的这一过程被称作Internal Covariate Shift
Internal Covariate Shift会带来的问题
(1) 上层网络需要不断调整来适应输入数据分布的变化,导致网络学习速度的降低
(2) 网络的训练过程容易陷入梯度饱和区,减缓网络收敛速度
减缓Internal Covariate Shift方法
ICS产生的原因是由于参数更新带来的网络中每一层输入值分布的改变,并且随着网络层数的加深而变得更加严重,因此我们可以通过固定每一层网络输入值的分布来对减缓ICS问题。
法一:白化
白化(Whitening)是机器学习里面常用的一种规范化数据分布的方法,主要是PCA白化与ZCA白化。白化是对输入数据分