深度学习-批量归一化

正如前言,神经网络的某一层的输入方差和输出方差不变,就是一个理想的状态,但是在信号的传播过程中,会发生漂移现象,即便是输入的时候经过了归一化,也很难在后续的传播过程种收敛,因此科学家提出了批量归一化(Batch Normalization).


在每个隐藏层的激活函数之前或者之后增加一个标准归一化操作,然后每层使用两个新的参数向量缩放和偏移结果,一个用于偏移,一个用于缩放,也就是说这个操作可以使模型学习各层输入的最佳缩放和均值。这样一来,在第一层加一个BN操作,我们就不用对原始数据归一化了。这里就不描述具体的公式了。这个操作是针对每一个小批量进行的,而不是全部数据,因此后续还有其他的麻烦,比如估测整体数据的均值和方差。

过程如下:(1)求批量的均值和方差(2)对每一个样本进行标准归一化(3).对每一个归一化的样本进行缩放和偏移。

以上是在训练期间的过程,但是在测试的时候,就会有问题了,因此预测可能是单个样本,无法计算均值和方差,所以在训练期间,收集到足够的信息后,估测一个均值和方差,在预测的时候,使用估测的均值和方差。


你可能感兴趣的:(深度学习,人工智能)