批量归一化(Batch Normalization)

比较使用与不使用批量归一化时的训练过程,并观察批量统计量与运行统计量。

网络依次经过线性层、BN 和 ReLU。训练时,BN 使用当前小批量的 \(\boldsymbol{\mu}_B^{[l]}\) 和 \(\boldsymbol{v}_B^{[l]}\),同时更新运行均值与运行方差;验证和测试时调用 model.eval(),只使用冻结的运行统计量。因为 BN 已包含可学习的平移参数 \(\boldsymbol{\beta}^{[l]}\),其前的线性层在本演示中使用 bias=False
验证集 ROC 曲线
训练损失与验证损失
当前验证表现最佳方案的 BN 数量

下表仅列出每个向量的前 4 个分量。\(\boldsymbol{\mu}_B^{[l]}\) 和 \(\boldsymbol{v}_B^{[l]}\) 来自所保存方案的最后一个训练小批量。

训练集与验证集指标
最终测试集评价
运行状态