Layer Normalization(层归一化)是一种用于深度学习神经网络的归一化方法,它通过对神经元的输入进行归一化,使每一层的输入保持稳定,从而减缓梯度消失或梯度爆炸问题。与批量归一化(Batch Normalization)不同,LayerNorm 不依赖于 mini-batch,而是对每一个样本的每一层神经元进行归一化,这使其在序列建模、深层网络和小批量训练中表现出色。
1. Layer Normalization(层归一化)
(1) Layer Normalization 的定义
Layer Normalization 的目标是在神经网络的每一层中,对该层所有神经元的激活值进行归一化。具体来说,LayerNorm 将每一层的激活值转换为均值为 0、标准差为 1 的分布,然后对结果进行缩放和偏移。
给定神经网络中某一层的输入向量 z=(z1,z2,…,zH)\mathbf{z} = (z_1, z_2, \dots, z_H)z=(z1,z2,…,zH),其中 HHH 是该层的神经元个数,LayerNorm 的计算公式如下:
z^i=zi−μσ \hat{z}_i = \frac{z_i - \mu}{\sigma} z^i=σzi−μ
其中:
- μ\muμ 是该层所有神经元激活值的均值:μ=1H∑i=1Hzi\mu = \frac{1}{H} \sum_{i=1}^{H} z_iμ=H1∑i=1Hzi
- σ\sigmaσ 是该层所有神经元激活值的标准差:σ=1H∑i=1H(zi−μ)2+ϵ\sigma = \sqrt{\frac{1}{H} \sum_{i=1}^{H} (z_i - \mu)^2 + \epsilon}σ=H1∑i=1H(zi−μ)

最低0.47元/天 解锁文章
301

被折叠的 条评论
为什么被折叠?



