在深度学习模子中,Normalization是一种极为重要的本事,Batch Normalization(BN)和Layer Normalization(LN)是其中最为常用的两种方法。然而,二者在实际应用中有着明显的区别与联系,尤其在Transformer的Attention机制中,LN有着独特的上风。
一、BN与LN的焦点区别与联系
1. Batch Normalization (BN)
BN的思想源于一个叫Internal Covariate Shift(ICS)的概念,即在练习过程中,每个mini-batch的数据分布都会发生变化,导致练习变得困难。
BN的做法是在每个batch中,沿着特征通道对所有样本盘算均值和方差,使数据强制保持均值为0、方差为1的分布。这有用地缓解了梯度消失的问题,加速了模子的练习过程。
BN盘算公式为:
y = x − μ b a t c h σ b a t c h 2 + ϵ ⋅ γ + β y = \frac{x - \mu_{batch}}{\sqrt{\sigma_{batch}^{2} + \epsilon}} \cdot \gamma + \beta y=σbatch2+ϵ x−μbatch⋅γ+β
- 其中 u b a t c h u_{batch} ubatch、 σ b a t c h \sigma_{batch} σbatch 分别为批次数据的均值和方差。
- γ \gamma γ、 β \beta β为可学习的缩放和平移参数,包管归一化操作后仍保存特征表达能力。
2. Layer Normalization (LN)
LN与BN最大的区别在于,LN的归一化操作不是跨batch举行,而是在单个数据实例的特定维度或特征内部举行。
LN的盘算公式为:
y = x − μ l a y e r σ l a y e r 2 + ϵ ⋅ γ + β y = \frac{x - \mu_{layer}}{\sqrt{\sigma_{layer}^{2} + \epsilon}} \cdot \gamma + \beta y=σlayer2+ϵ x−μlayer⋅γ+β
- LN不依赖于batch巨细,每个数据实例单独举行归一化,因此避免了BN在batch size过小或过大时效果变差的问题。
- 归一化的维度可自由指定,常见于序列数据处理,好比NLP中的Transformer模子。
二、为什么Attention更得当利用LN?
Transformer模子的焦点构成——自注意力(self-attention)机制,夸大的是对单个序列内各元素之间的相互关系,且常需处理长度不固定的序列数据。因此,Attention机制更得当利用LN的缘故原由主要有以下几点:
1. Attention机制的数据特性
Attention机制通常处理的是可变长度的序列数据,好比句子或文档。这种场景下,batch内部的数据长度大概各异,而BN对batch size和数据长度极为敏感,小batch情况下表现尤为糟糕。
2. 独立性与稳固性
LN不依赖于batch size或数据长度的特性,使得其在处理每个单独序列数据时都可以获得稳固的效果。
Transformer结构中的Attention模块通常是对序列的每个位置独立盘算注意力权重,更需要一种不依赖于整个batch统计信息的归一化方法。LN刚好满足了这种需求,每个数据实例都独立盘算均值和方差,避免了BN在Attention中因序列长度不一带来的问题。
3. 更好地适配小batch和动态长度数据
LN在小batch大概乃至batch size为1的情况下依然稳固有用,尤其适用于大模子和动态长度的序列数据,这恰恰是Transformer在练习中经常碰到的场景。
三、小结
综上,固然BN和LN都是为相识决练习过程中的数据分布问题而提出的归一化技术,但它们的适用场景有所差别。
- BN得当于稳固、较大的batch size场景,常用于CNN。
- LN则更得当于动态长度、batch size不确定或很小的序列使命,好比NLP中的Transformer模子,尤其是Attention机制。
Attention机制之所以广泛利用LN,本质缘故原由就在于其能够更好地处理每个数据实例的独立特征统计特性,提供更加稳固、高效的练习效果,推动了Transformer模子在自然语言处理范畴的广泛乐成。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |