可视化资源

批归一化 BatchNorm

深层网络训练时有个麻烦:每一层的输入分布会随着前面层不断变化而漂来漂去——一会儿偏大、一会儿太散,后面的层就像在追一个移动的靶子,学得又慢又不稳。批归一化的办法很直接:在每一层,把这一批数据的激活值减去均值、除以标准差,强行拉回“均值 0、方差 1”的标准范围,再用两个可学习参数微调。于是每层拿到的输入都很规整,训练快得多也稳得多。拖动“原始均值”和“散布”制造糟糕的激活,看 BatchNorm 怎么把它拉回来。

灰点是进入这一层的原始激活(你可以把它调得又偏又散),蓝点是经过 BatchNorm 后的——总是乖乖落在中间、宽度归一的绿色稳定带里。

原始:μ= σ= 归一后:μ= σ=
减均值除标准差

把每批激活拉到均值 0、方差 1,后面的层总能拿到分布稳定的输入。

训练更快更稳

可以用更大的学习率,对初始化也没那么挑剔,深层网络更容易收敛。

还能微调

归一化后再乘 γ、加 β(可学习),让网络在需要时恢复表达力。LayerNorm 是它在 Transformer 里的近亲。