Transformer中Layer Normalization及其在推理时如何作用?

在Transformer中,Layer Normalization是一种正则化技术,旨在提高模型的训练速度和稳定性。它的详细过程和在推理时的作用可以分为以下几个部分:

1. Layer Normalization的过程

Layer Normalization主要用于标准化每个输入Token的特征向量,使其均值为0,方差为1。具体步骤如下:

  1. 计算均值
    对于输入向量 x ∈ R d x \in \mathbb{R}^d xRd(维度为 d d d): μ = 1 d ∑ i = 1 d x i \mu = \frac{1}{d} \sum_{i=1}^{d} x_i μ=d1i=1dxi
  2. 计算方差 σ 2 = 1 d ∑ i = 1 d ( x i − μ ) 2 \sigma^2 = \frac{1}{d} \sum_{i=1}^{d} (x_i - \mu)^2 σ2=d1i=1d(xiμ)2
  3. 标准化 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 ϵ 是一个小常数,防止除以零。
  4. 缩放和偏移
    使用可学习的参数 γ \gamma γ β \beta β 进行缩放和偏移: y i = γ x ^ i + β y_i = \gamma \hat{x}_i + \beta yi=γx^i+β

2. Layer Normalization在推理时的作用

在推理阶段,Layer Normalization的行为如下:

  1. 保持参数不变
    在推理阶段, γ \gamma γ β \beta β 的值保持不变,直接使用训练阶段学到的参数。这意味着模型在推理时依赖于训练期间学习到的特征缩放和偏移方式。
  2. 标准化操作
    对于每个Token,其特征向量在推理时会执行标准化操作,具体步骤与训练阶段相同。每个Token的特征向量在输入到下一层之前会被独立标准化,从而确保模型对输入数据的响应更加一致。
  3. 提高推理效率和稳定性
    通过Layer Normalization,推理时的输入数据经过标准化,减少了因输入特征分布变化引起的不稳定性。这有助于保持模型在不同输入下的表现一致性,尤其是在处理长文本或复杂结构时。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 11:38:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 11:38:05       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 11:38:05       58 阅读
  4. Python语言-面向对象

    2024-07-17 11:38:05       69 阅读

热门阅读

  1. SVN常用命令

    2024-07-17 11:38:05       23 阅读
  2. RedisAtomicLong

    2024-07-17 11:38:05       22 阅读
  3. HTC 10 刷系统 LineageOS 19.1 Android 12

    2024-07-17 11:38:05       25 阅读
  4. php相关

    php相关

    2024-07-17 11:38:05      116 阅读
  5. 为什么微服务需要配置中心?Eureka原理?

    2024-07-17 11:38:05       22 阅读
  6. C++ 入门15:STL 容器之列表(list)

    2024-07-17 11:38:05       23 阅读
  7. Go语言---并发版爬虫

    2024-07-17 11:38:05       22 阅读
  8. 洛阳建筑设计资质市场未来趋势

    2024-07-17 11:38:05       21 阅读