type
status
date
slug
summary
tags
category
icon
password
comment
批归一化(Batch Normalization,BN)层在训练和测试阶段的前向传播确实有所不同
训练阶段的前向传播
- 计算小批量数据的均值:
- 计算小批量数据的方差:
- 标准化:
- 缩放和平移: 其中,γ 和 β 是可学习的参数,ε 是一个很小的常数,用于数值稳定性。
- 同时,更新移动平均: 计算并存储每个小批量的均值和方差的移动平均,用于测试阶段。
测试阶段的前向传播
- 使用训练阶段计算的移动平均值: (移动平均均值) (移动平均方差)
- 标准化:
- 缩放和平移:
主要区别
- 数据来源:
- 训练时使用当前批次的统计信息。
- 测试时使用整个训练集的统计信息(通过移动平均估计)。
- 批次依赖:
- 训练时的输出依赖于当前批次。
- 测试时的输出独立于批次,保证了推理的一致性。
- 随机性:
- 训练时每个批次的统计略有不同,引入了一定的正则化效果。
- 测试时使用固定的统计信息,输出是确定的。
- 计算复杂度:
- 训练时需要额外计算每个批次的统计信息。
- 测试时直接使用预计算的统计信息,计算量较小。
总结
这种设计使得BN层能在训练时提供正则化效果,同时在测试时保持稳定的输出,有效改善了深度网络的训练过程和泛化能力。