BN和LN的应用场景和特点

BN和LN的关系

BN 和 LN 都可以比较好的抑制梯度消失和梯度爆炸的情况。BN不适合RNN、transformer等序列网络,不适合文本长度不定和​​batchsize​​较小的情况,适合于CV中的CNN等网络;
而LN适合用于NLP中的RNN、transformer等网络,因为sequence的长度可能是不一致的。
栗子:如果把一批文本组成一个batch,BN就是对每句话的第一个词进行操作,BN针对每个位置进行缩放就不符合NLP的规律了。

小结

(1)经过BN的归一化再输入激活函数,得到的值大部分会落入非线性函数的线性区,导数远离导数饱和区,避免了梯度消失,这样来加速训练收敛过程。

### 归一化技术概述 为了提升深度学习模型的表现,归一化技术被广泛应用来处理内部协变量偏移问题并加速训练过程。具体来说,在不同类型的神经网络架构中,批量归一化(Batch Normalization, BN层归一化(Layer Normalization, LN)扮演着重要角色。 ### 批量归一化 (BN) #### 定义与机制 批量归一化是在每个mini-batch上计算均值方差来进行特征标准化的技术。通过这种方式可以减少梯度消失/爆炸现象的发生,并允许使用更高的学习率加快收敛速度[^1]。 #### 优点 - 减轻了对初始化参数敏感程度的影响; - 提高泛化能力; - 加速训练效率; #### 缺点 - 对于较小batch size效果不佳; - 需要额外存储运行时统计信息用于推理阶段; - 可能引入噪声影响最终性能; ```python import torch.nn as nn bn_layer = nn.BatchNorm2d(num_features=64) output = bn_layer(input_tensor) ``` ### 层归一化 (LN) #### 定义与机制 不同于BN基于整个批次的数据进行规范化,LN则是针对单一样本内的所有激活值执行零中心化及单位标准差变换。这意味着即使在一个样本内也能够实现有效的正则化作用。 #### 优点 - 不依赖具体的batch大小; - 更适合RNN/LSTM等序列建模任务; - 训练更加稳定可靠; #### 缺点 - 当输入维度变化较大时可能表现不稳定; - 应用范围相对有限制; ```python ln_layer = nn.LayerNorm(normalized_shape=[sequence_length, hidden_size]) output = ln_layer(input_tensor) ``` ### 场景适应性分析 对于大多数卷积神经网络(CNNs),由于其天然具备较大的batch尺寸以及空间不变性的特点,因此BN往往成为首选方案。然而当涉及到自然语言处理(NLP)领域或者时间序列预测等问题时,则更倾向于采用LN因为这类任务通常涉及变长输入且难以获得足够大的minibatches[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WitsMakeMen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值