机器学习:LayerNorm和BatchNorm的区别

LayerNorm(Layer Normalization)和BatchNorm(Batch Normalization)是深度学习中常用的正则化技术,它们的作用是在神经网络训练过程中提升模型的收敛速度和稳定性,从而加快训练并提高模型的泛化能力。它们的区别主要体现在应用的层级和计算方式上:

  1. 作用层级不同:
  • BatchNorm: Batch Normalization 是对每个批次中的每一层进行归一化处理。具体来说,对于每个批次(mini-batch)中的每个特征通道,BatchNorm 都会计算其均值和方差,并对该批次中的每个样本进行归一化。这样做可以减少内部协变量偏移(Internal Covariate Shift),从而加速网络的训练收敛速度。
  • LayerNorm: Layer Normalization 则是对每个样本的每一层进行归一化处理。具体来说,对于每个样本,在每一层中的特征通道上计算均值和方差,并对该样本在每一层中的所有特征进行归一化。这种归一化方式更适合应对循环神经网络(RNN)等结构,因为它不依赖于批次中的其他样本,更加稳定。
  1. 计算方式不同:
  • BatchNorm: 在 BatchNorm 中,均值和方差是在每个批次上计算的,因此它依赖于批次中的所有样本。BatchNorm 会维护每个特征通道的均值和方差,然后用来归一化每个样本中的每个特征。
  • LayerNorm: 在 LayerNorm 中,均值和方差是在每个样本上计算的,因此它独立于批次。LayerNorm 计算每个样本的每个特征通道的均值和方差,并用这些统计量来归一化该样本在每一层上的所有特征。
    综上所述,BatchNorm 和 LayerNorm 在归一化的层级和计算方式上有所不同,这使它们在应用场景和效果上也有所区别。通常来说,BatchNorm 更适用于卷积神经网络(CNN)等结构,而 LayerNorm 更适用于循环神经网络(RNN)等结构。

Batch Normalization (BatchNorm)

BatchNorm 是在每个批次中对每一层进行归一化处理的技术。

公式

对于一个特征通道 kkk,BatchNorm 的计算如下:

  1. 计算批次中所有样本的均值 μB\mu_BμB 和方差 σB2\sigma_B^2σB2μB=1m∑i=1mxi(k)\mu_B = \frac{1}{m} \sum_{i=1}^{m} x_i^{(k)}μB=m1i=1mxi(k)
    σB2=1m∑i=1m(xi(k)−μB)2\sigma_B^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i^{(k)} - \mu_B)^2σB2=m1i=1m(xi(k)μB)2
  2. 归一化每个特征 xi(k)x_i^{(k)}xi(k)x^i(k)=xi(k)−μBσB2+ϵ\hat{x}_i^{(k)} = \frac{x_i^{(k)} - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}x^i(k)=σB2+ϵ xi(k)μB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值