Layer Normalization和Batch Normalization

Layer Normalization(层归一化)和 Batch Normalization(批归一化)是两种常用的归一化技术,用于加速神经网络的训练和提高模型的稳定性。它们的主要区别在于归一化的维度和使用场景。

Batch Normalization(批归一化)

Batch Normalization的归一化是在每个mini-batch内的每个特征维度上进行的。具体来说,对于输入形状为 ([b, c, h, w]) 的数据,Batch Normalization会对每个通道 ( c ) 独立进行归一化。
在这里插入图片描述
训练阶段: 在训练阶段,Batch Normalization计算每个mini-batch的均值和方差,并使用这些统计量进行归一化。

推理阶段: 在推理阶段,Batch Normalization使用整个训练集计算得到的全局均值和方差进行归一化,而不是使用当前mini-batch的统计量。

Layer Normalization(层归一化)

Layer Normalization的归一化是在每个样本的所有特征上进行的。对于形状为 ([b, c, h, w]) 的输入数据,Layer Normalization会对每个样本的所有通道、所有高度和宽度上的特征进行归一化。

在这里插入图片描述

训练阶段: 在训练阶段,Layer Normalization计算每个样本的均值和方差,并使用这些统计量进行归一化。

推理阶段: 在推理阶段,Layer Normalization与训练阶段一样,使用每个样本的均值和方差进行归一化。

总结

计算方式

Batch Normalization:
归一化是在每个mini-batch的每个通道上进行的。
计算的是每个通道在整个mini-batch上的均值和方差。
公式中涉及到每个通道的均值 (\mu_c) 和方差 (\sigma_c^2)。
Layer Normalization:
归一化是在每个样本的所有特征(即所有通道、所有高度和宽度)上进行的。
计算的是每个样本在所有特征上的均值和方差。
公式中涉及到每个样本的均值 (\mu_i) 和方差 (\sigma_i^2)。

训练与推理阶段

训练和推理阶段的区别:
Batch Normalization:训练阶段使用mini-batch的统计量,推理阶段使用全局统计量。
Layer Normalization:训练阶段和推理阶段都使用每个样本的统计量。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

现实、狠残酷

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

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

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

打赏作者

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

抵扣说明:

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

余额充值