Transformer中Layer Normalization及其在推理时如何作用?
在Transformer中,Layer Normalization是一种正则化技术,旨在提高模型的训练速度和稳定性。它的详细过程和在推理时的作用可以分为以下几个部分:
1. Layer Normalization的过程
Layer Normalization主要用于标准化每个输入Token的特征向量,使其均值为0,方差为1。具体步骤如下:
- 计算均值:
对于输入向量 x ∈ R d x \in \mathbb{R}^d x∈Rd(维度为 d d d): μ = 1 d ∑ i = 1 d x i \mu = \frac{1}{d} \sum_{i=1}^{d} x_i μ=d1∑i=1dxi - 计算方差: σ 2 = 1 d ∑ i = 1 d ( x i − μ ) 2 \sigma^2 = \frac{1}{d} \sum_{i=1}^{d} (x_i - \mu)^2 σ2=d1∑i=1d(xi−μ)2
- 标准化: x ^ i = x i − μ σ 2 + ϵ for i = 1 , 2 , … , d \hat{x}_i = \frac{x_i - \mu}{\sqrt{\sigma^2 + \epsilon}} \quad \text{for } i = 1, 2, \ldots, d x^i=σ2+ϵxi−μfor i=1,2,…,d其中, ϵ \epsilon ϵ 是一个小常数,防止除以零。
- 缩放和偏移:
使用可学习的参数 γ \gamma γ 和 β \beta β 进行缩放和偏移: y i = γ x ^ i + β y_i = \gamma \hat{x}_i + \beta yi=γx^i+β
2. Layer Normalization在推理时的作用
在推理阶段,Layer Normalization的行为如下:
- 保持参数不变:
在推理阶段, γ \gamma γ 和 β \beta β 的值保持不变,直接使用训练阶段学到的参数。这意味着模型在推理时依赖于训练期间学习到的特征缩放和偏移方式。 - 标准化操作:
对于每个Token,其特征向量在推理时会执行标准化操作,具体步骤与训练阶段相同。每个Token的特征向量在输入到下一层之前会被独立标准化,从而确保模型对输入数据的响应更加一致。 - 提高推理效率和稳定性:
通过Layer Normalization,推理时的输入数据经过标准化,减少了因输入特征分布变化引起的不稳定性。这有助于保持模型在不同输入下的表现一致性,尤其是在处理长文本或复杂结构时。
原文地址:https://blog.csdn.net/Zzzzyc_/article/details/140451991
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!