协变量偏移
协变量可以看作是输入变量。训练过程中,层间的权重会不断改变和调整,而前面层权重参数的改变会影响后面层的输入,当网络的深度很大时,层间的关联性变得很高,前面层的一点改变积累到后面会是很大的影响。也就是经过前面层参数的改变,一层层积累下来,到某一层时的输入值与上一次训练(此次参数更新前)的输入值的分布情况可能会有很大的差距。
一般的深度神经网络都要求输入变量在训练数据和测试数据上的分布是相似的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。当输入的分布在参数更新前后有较大改变时,网络要去不断的适应新的数据分布,进而使得训练变得异常困难,我们只能使用一个很小的学习速率和精调的初始化参数来解决这个问题。而且这个中间层的深度越大时,这种现象就越明显。由于是对层间数据的分析,也即是内部(internal),因此这种现象叫做内部协变量偏移(internal Covariate Shift)。
批量归一化(Batch Normalization)
批量归一化便是作者为了解决这一问题而提出的方案:将层间输入值进行归一化。而“批量”则是因为归一化操作是对训练的小批量数据进行的。批量归一化通过归一化步骤使每层输入的均值和方差在训练中是确定的,缓解了内部协变量偏移问题,同时降低了梯度对参数的依赖,降低了梯度发散的几率,提高了学习率,也降低了对dropout的需求。另外由于可以防止网络陷入平缓区,也让我们可以使用平缓的非线性函数如softmax。











网友评论