1. 批量归一化简介
如果误差表面很崎岖,它比较难训练。能不能直接改误差表面的地貌,“把山铲平”,让它变得比较好训练呢?批量归一化(Batch Normalization,BN)就是其中一个“把山铲平”的想法。
2. 主要内容
主题 | 内容 | 补充1 | 补充2 |
原理 | 批量归一化是通过标准化网络层的输入来改善深层神经网络训练的技术。具体来说,它是通过对一个批量中的数据进行归一化,使得每个维度的数据具有相同的分布特性。 | 归一化步骤: (1)计算均值 μ 和标准差σ。 (2)对每个样本 | 归一化之后,通常会引入两个可学习的参数 |
实施细节 | 训练阶段:在训练过程中,使用每个批量的数据来计算均值和标准差,并用它们来进行归一化。这些统计量随后用于更新网络参数 | 测试阶段:在测试时,不使用批量数据进行实时计算,而是使用训练过程中累积的移动平均值 | ![]() |
局限性和替代方案 | 内部协变量偏移的有效性:尽管最初认为批量归一化解决了内部协变量偏移问题,但后续的研究表明,这可能并不是其成功的唯一原因。其他因素,如平滑误差表面,可能对批量归一化的效果贡献更大。 | ![]() | 其他归一化技术:除了批量归一化外,还有多种其他归一化技术,例如批量重归一化、层归一化、实例归一化、组归一化、权重归一化和谱归一化等。 |
3. 总结
批量归一化不仅能够帮助优化器更好地找到全局最优解,还可以允许更高的学习率,从而加快训练速度。然而,过高的学习率可能会导致不稳定的表现。
批量归一化是一项有效提升神经网络训练效果的技术,它通过保持数据分布的稳定性来促进训练过程中的学习效率。