【深度学习】BatchNorm、LayerNorm

本文详细介绍了BatchNorm和LayerNorm两种归一化技术的概念、作用、计算过程以及在深度学习特别是NLP中的应用。BatchNorm主要针对通道维度归一化,适用于大batch_size和CV场景,而LayerNorm则针对样本或词向量尺度归一化,更适合NLP任务,如RNN和Transformer。

一、BatchNorm

1. 概念

对一个batch内的数据在通道尺度上计算均值和方差,将同批次同通道的数据归一化为均值为0、方差为1的正态分布,最后用对归一化后的数据进行缩放和平移来还原数据本身的分布。

上图展示了大小为[3,4,2,2]的tensor(批次大小为3,通道数为4,高为2,宽为2)的BatchNorm过程,该过程是针对训练数据的且无缩放和平移。可以看出,BatchNorm是对同一批次内同一通道的所有数据进行归一化。

训练过程中,其计算过程如下:

其中, μ B \mu_{\mathcal{B}} μB σ B 2 \sigma^2_{\mathcal{B}} σB2分别为当前批次下同一通道所有数据的均值和有偏方差, ϵ \epsilon ϵ用来防止分母为0, γ \gamma γ β \beta β是可学习的参数(通道数为 C C C时,两个参数在当前特征层的总量为 2 × C 2\times C 2×C),用来进行仿射变换,即通过缩放和平移使数据处于更好的分布上。

由于测试过程需要稳定的输出,所以并不是按照批次计算均值和方差,而是使用整个训练样本的均值和方差(通常由滑动平均法计算),如下:

其中, V a r [ x ] Var[x] Var[x]指的是无偏方差,根据下式可以看出,将之前的有偏方差转为无偏方差乘上 m m − 1 \frac{m}{m-1} <

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Fulin_Gao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值