趋近智
内部协变量漂移描述了训练期间层输入分布的变化,这会阻碍学习过程。批量归一化(BN)旨在通过对每个小批次的层输入进行归一化来减轻此问题。前向传播过程中这种归一化的计算方法将被分析。
其主要思路是获取给定小批次中到达批量归一化层的激活值,并对其进行转换,使其具有近似零均值和单位方差。这种标准化对于每个特征或通道都是独立进行的。然而,简单地强制零均值和单位方差可能会限制层的表示能力。因此,BN 为每个特征引入了两个可学习的参数,γ(伽马)和 β(贝塔),它们允许网络对归一化后的值进行缩放和平移。这表示网络可以学习 下一 层的输入的最佳缩放和均值。
考虑一个包含激活值的小批次 B={x1,x2,...,xm},用于特定特征(例如,小批次中 m 个不同示例的单个神经元的输出)。批量归一化前向传播包含以下步骤:
计算小批次均值(μB): 计算该特征在小批次中的激活值平均值。
μB=m1i=1∑mxi计算小批次方差(σB2): 计算该特征在小批次中的激活值方差。
σB2=m1i=1∑m(xi−μB)2归一化(x^i): 使用计算出的均值和方差归一化小批次中的每个激活值 xi。在方差的平方根内添加一个小的常数 ϵ(伊普西隆,例如 1e−5)以确保数值稳定性,防止方差非常小时出现除以零的情况。
x^i=σB2+ϵxi−μB此步骤后,小批次的归一化激活值 x^i 将具有接近 0 的均值和接近 1 的方差。
缩放和平移(yi): 使用可学习的参数 γ 和 β 转换归一化的激活值 x^i。这些参数会进行初始化(通常分别设为 1 和 0),并在反向传播期间像其他网络权重一样进行更新。
yi=γx^i+β输出 yi 是批量归一化层针对输入激活值 xi 的最终结果,它会被传递到后续层(通常后接非线性激活函数)。
批量归一化前向传播对小批次中单个特征的处理流程。输入 xi 用于计算小批次统计量(μB,σB2),然后将每个 xi 归一化为 x^i。最后,可学习参数 γ 和 β 对 x^i 进行缩放和平移,得到输出 yi。
需记住,γ 和 β 是 每个特征 分别学习的。如果全连接层有 N 个输出神经元,则会有 N 对 (γ,β)。如果卷积层有 C 个输出通道,则会有 C 对 (γ,β) 用于对每个通道的批次、高度和宽度维度进行归一化。
这个过程确保了训练期间下一层的输入具有稳定的分布,由学习到的 γ 和 β 参数控制,这极大地有助于稳定并加速训练过程。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造