也可以称为批标准化,或者BN。这一方法为的是将Cost Function所呈现的等高线图标准化为一个类似于圆形(二维)或者碗状(三维度),这种特征方便梯度下降时更快地找到最优点。
不想在电脑上写公式,直接手写了。
一、模型训练
这是训练的过程,除了原始数据进入第一层以外,其余输入前都需要进行BN。请注意,γ与β是可学习参数,也是模型当中的参数,而不是超参数!dim代表的是每一个样本的维数,以mini-batch形式训练,每一层都会计算输出结果的方差和均值,然后进行标准化。另外,这里只是对于一个mini-batch的训练过程,X里面有很多的x,每一个x代表一个样本,一个样本x里面有很多的特征,是一个向量。X的上标代表神经网络的层数,其它符号的相同位置同理。
对于每一个样本的前向传播,一个mini-batch进入训练模型时,多个样本进入网络后,每一层都会得到一个均值和一个方差,通过这个均值和方差,进行标准化、放缩平移后,输入到下一层,直至前向传播完成。
二、两个全局变量
在前向传播的过程中,有两个全局变量:g_μ、g_σ^2,随着神经网络的每一mini-batch的每一层计算,都会以滑动平均的方式累积计算每一层的均值和方差。从第一个batch到最后一个batch,这两个变量一直在不断更新。
三、模型测试
由于进行测试时,可能只有一个样本,方差和均值计算没有意义。在测试时,每层的方差的均值均由g_μ、g_σ^2来替代。γ和β这两个可学习参数在梯度下降时进行计算学习。