NLP高频面试题(四)——BN和LN的区别与联系,为什么attention要用LN

在深度学习模型中,Normalization是一种极为重要的技巧,Batch Normalization(BN)和Layer Normalization(LN)是其中最为常用的两种方法。然而,二者在实际应用中有着明显的区别与联系,尤其在Transformer的Attention机制中,LN有着独特的优势。

一、BN与LN的核心区别与联系

1. Batch Normalization (BN)

BN的思想源于一个叫Internal Covariate Shift(ICS)的概念,即在训练过程中,每个mini-batch的数据分布都会发生变化,导致训练变得困难。

BN的做法是在每个batch中,沿着特征通道对所有样本计算均值和方差,使数据强制保持均值为0、方差为1的分布。这有效地缓解了梯度消失的问题,加速了模型的训练过程。

BN计算公式为:

y =

在深度学习中,层归一化(Layer Normalization, LN批归一化(Batch Normalization, BN)都是常用的正则化技术,用于稳定加速神经网络的训练。然而,它们在网络中的应用位置、工作原理以及适用场景方面有所不同,尤其是在自然语言处理NLP)领域。 ### 区别 #### 1. 工作原理 - **批归一化(BN)**:通过对每一批次的小批量数据(mini-batch)进行统计均值方差的计算,并以此为基础将每一层激活函数前的数据标准化为零均值单位方差的形式。具体公式如下: \[ \hat{x} = \frac{x - E[x]}{\sqrt{Var(x)+\epsilon}} \] 其中 \(x\) 表示待归一化的特征图,\(E[\cdot]\) \(Var(\cdot)\) 分别表示期望方差运算符。\(\epsilon\) 是一个小常数防止除以0的情况发生。经过这样的变换之后再乘以一个可训练的比例因子 γ 加上偏移项 β 进行尺度缩放平移操作,最终得到输出结果。 - **层归一化(LN)**:则是直接作用于单个样本的所有通道维度上,对于每一个样本独立地求取其所有元素组成的向量的均值标准差来进行规范化处理。因此,它不会受到小批次大小的影响,适用于序列长度变化较大的情况如变长文本等情形。 #### 2. 应用场合 - **BN 更适合 CNN**:由于图像识别任务通常使用固定尺寸输入图片且具备天然的空间局部关联特性,故 BN 对卷积核权重参数的学习具有较好的效果。 - **LN 特别适应 NLP 模型**:因为大多数现代 NLP 模型采用递归或自注意力机制处理不定长文本序列,例如 LSTM 或 Transformer 系列结构。在这种情况下,不同批次间可能存在较大差异甚至某些极端状况下仅有单一实例构成 mini-batch,此时 BN 将无法正常运作;相反 LN 即使面对很小的 batch size 也能保持稳定的性能表现。 ### NLP 中选择 LN 的原因 在 NLP 领域尤其是像 Transformer 类的架构里选用 Layer Norm 而非 Batch Norm 主要有以下几个因素考量: - **稳定性更高**:考虑到 NLP 数据集中常见的极短到超长的各种句子组合成的小批次采样容易造成 BN 统计不稳定的问题,进而影响收敛速度及准确度; - **对动态形状的支持更佳**:由于 NLP 输入通常是变长的序列形式,LN 相比之下可以更好地支持这类非固定的张量形态而不必担心因 batch 内部个体数目不足引发异常; - **无需额外维护状态变量**:相比于需要记录 running_mean running_var 参数以便推理阶段使用的 BNLN 只需简单保存几个标量系数便可在测试时复现相同的归一化行为,简化了模型部署流程。 综上所述,在实际工程实践中当涉及到 NLP 项目时倾向于优先考虑使用 Layer Normalization 实施有效的内部协方差位移抑制措施。 --相关问题-- 1. 层归一化 (LN) 具体是如何实现的? 2. 批归一化 (BN) 在图像处理中的优势有哪些? 3. 自然语言处理中还有哪些其他的正则化方法? --- 希望这个解释对你有所帮助!如果你有任何进一步的问题或其他主题想了解,请随时告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chaos_Wang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值