在深度学习面试中,经常会被问到模型训练稳定性相关的问题。其中两个关键词 BatchNorm 和 LayerNorm 绝对是高频词!
今天就带大家快速梳理两者的核心区别,用最通俗的方式掌握它们的原理和应用场景,面试不再含糊!
归一化是神经网络训练过程中的一项重要技巧,目的是:
对比维度 | BatchNorm(批归一化) | LayerNorm(层归一化) |
---|---|---|
归一化维度 | 同一通道下,不同样本间 | 同一样本中,不同通道(或特征) |
是否依赖 batch 大小 | 是,受批量大小影响 | 否,与 batch size 无关 |
适用场景 | CNN 常用,如图像分类 | RNN/Transformer 常用,如 NLP |
计算方式 | 对每个特征维度在 batch 中归一化 | 对单个样本的所有特征归一化 |
是否适合在线推理 | 不适合(需统计均值方差) | 更适合在线推理场景 |
假设我们有一个 shape 为 [batch_size, num_features]
的输入:
场景 | 推荐归一化方式 | 原因说明 |
---|---|---|
图像分类(CNN) | ✅ BatchNorm | 同一通道间具有局部相关性 |
NLP / Transformer / RNN | ✅ LayerNorm | 每个样本长度不同,batch 不稳定 |
Q:BatchNorm 和 LayerNorm 有什么区别?
**A:**BatchNorm 是在 batch 维度上对每个 feature 做归一化,适用于 CNN 等图像任务;LayerNorm 是对单个样本内部所有特征归一化,适合 Transformer、RNN 等 NLP 场景。BatchNorm 依赖 batch size,LayerNorm 不依赖。
✅ 总结一句话记忆法:
BatchNorm 比同类,LayerNorm 比自己。
继续加油!让基础问题成为你秀操作的加分项