目录

Attention Is All You Need

记录论文《Attention Is All You Need》阅读过程中的一些思考。

简介

论文获取:arXiv | 网盘备份

Transformer 领域的开山之作,证明了纯注意力机制无需递归卷积即可完成序列转换任务,且更高效、更易并行化。

概念

词嵌入 / Embedding

因为模型无法直接处理文本,需要将其数字化,即所谓的编码(Encoding)编码过程一般分几步:

  1. 使用分词器(tokenizer)将文本按词、子词、字符切分为 词元(tokens)
  2. 利用词表(Vocabulary)tokens 映射为对应的 token IDs,对于词表未收录的词元,即超出词表(Out of Vocabulary, OOV)情形,按专用保留词元处理,即罕见词标记([UNK]),当然在现代子分词技术加持下,大部分词都可分解为已知子词,这种情况已经较为少见

(子)词嵌入,就是将其 token ID 映射到一个可学习的矩阵中的一个向量的过程。一般而言,该矩阵的行数对应于词表的大小,而列数对应于(子)词的特征维度。

衡准
探微

Q1: 分词器是如何切分文本?

A:

  • 按词切分(Word-based)策略是指按照空格直接将文本切分为一系列单词,每个独立单词都作为一个 token。但这种方式会膨胀词表,因为很多相关的单词,比如 “dog” 和 “dogs”、“run” 和 “running” 这种有相关意义的单词被不必要的重复收录。
  • 按字符切分(Character-based)策略顾名思义就是切分到最小字符而不是单词,这样的词表相对较小。但从直觉来看,字符(尤其是英文等)本身不具备明确的意义,以其作为 token 使得绑定某种意义到该 token 变得困难。
  • 按子词切分(Subword tokenization)策略则是一种折中,对于高频词直接保留,而低频词被切分为更具意义的子词。例如 “annoyingly” 是一个低频词,将其切分为 “annoying” 和 “ly”,它们不仅出现频率更高,且词义也得以保留。

分词策略的选择主要取决于三个因素:书写系统、形态复杂度、任务目标。虽然不同的语言类型(分析语、屈折语、黏着语)会影响策略,但现代大模型里常用的子词分词(字节对编码(Byte Pair Encoding, BPE)WordPieceUnigram)本质都是在“语言学词边界”和“统计压缩效率”间折中。

Q2: 在经典 Transformer 框架中,嵌入矩阵的应用有什么技巧么?

A: 在标准框架中,词嵌入的矩阵在使用时有两个特点:

  1. 权重共享:因为论文采用了共享的源-目标词表,所以在编码器(Encoder)解码器(Decoder)中的嵌入层(embedding layers)以及 softmax 前的线性转换中可以使用同一份权重
  2. 权重缩放:在嵌入层中,作者经验性地将查表得到的词向量乘以 $\sqrt{d_{model}}$ 进行缩放,再与位置编码相加。对于这一点,可能是源于工程直觉:学习词特征向量时,一般会使用 L2 Norm 对其进行归一化,因此随着特征维度的增加,会使得向量元素趋小。而该权重后续会叠加量级相对稳定的位置编码,为了使它们量级匹配需要缩放。

补充说明:

  • 原作中能使用共享的源-目标词表,是因为英语和德语属于同一语系(印欧语系日耳曼语支),尤其在子词(subword)层面有很多重叠:

    • 大量公共词根、前/后缀,例如 “national” / “national-ismus”
    • 数字、标点、专有名词往往完全相同
    • 字符 n-gram 在两种语言中高度共享

    这为使用 joint BPE 在双语语料上构建一个高覆盖率的语料库提供了基础,最终能得到一个约 $37,000$ 个 token 的共享词表。

位置编码 / Positional Encoding

由于 Transformer 中没有循环结构和卷积,为了让模型利用序列顺序,需要注入位置信息。论文采用正余弦位置编码: $$PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right)$$$$PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right)$$ 其中:

  • $pos$ 是序列中 token 的绝对位置 $\in [0, m-1]$($m$为序列长度)
  • $i$ 是维度索引 $\in [0, d_{model}/2)$($d_{model}$为隐藏层维度)
  • 设 $\omega_i = \frac{1}{10000^{2i/d_{model}}}$,则上式可简化为:
    • 偶数维:$\sin(pos \cdot \omega_i)$
    • 奇数维:$\cos(pos \cdot \omega_i)$
衡准

良好的位置编码需要满足:

  • 能够表示 token 在序列中的绝对位置
  • 对于不定长度的序列,其中不同 token 间的相对位置的表达最好数值稳定
  • 能够表示即使在训练过程中没有出现过的序列长度

而上述基于三角函数的正余弦编码方法可以:

  • 构造足够低频的三角函数,不同位置 $pos$ 可以产生不同的编码向量,以表达绝对位置
  • 对于同一奇偶组(第 $2i$ 和 $2i+1$ 特征维)的不同的位置 $pos$ 和 $pos+k$,利用三角和差公式,可以表达相对位置: $$\sin((pos+k)\omega_i) = \sin(pos\cdot\omega_i)\cos(k\cdot\omega_i) + \cos(pos\cdot\omega_i)\sin(k\cdot\omega_i)$$$$\cos((pos+k)\omega_i) = \cos(pos\cdot\omega_i)\cos(k\cdot\omega_i) - \sin(pos\cdot\omega_i)\sin(k\cdot\omega_i)$$ 写成矩阵形式: $$PE_{pos+k} = \begin{bmatrix} \cos(k\omega_i) & \sin(k\omega_i) \\ -\sin(k\omega_i) & \cos(k\omega_i) \end{bmatrix} PE_{pos} = R_k \cdot PE_{pos}$$ 显见,$R_k$ 是一个旋转矩阵,且其只依赖于相对距离 $k$,不依赖绝对位置。
  • 多频率三角函数既保证编码唯一,以表达绝对位置,又使数值恒在区间 $[-1, 1]$,这种有界性赋予了处理更长序列时的数值稳定性和外推能力。
探微

Q1: 为什么需要位置编码?

A: 单词在句子中的顺序会影响语义,而 Attention 操作中 $softmax(\frac{QK^T}{\sqrt{d_k}})V$ 的矩阵操作对 token 的顺序不敏感,因此需要额外注入位置信息。

Q2: 这种正余弦编码有什么缺点?

A: 主要有外推性有限高频维度退化、与 Attention 机制的适配性问题等

  • 外推性指模型能处理训练时未见过的更长序列。虽然旋转矩阵 $R_k$ 对任意相对距离 $k \in \mathbb{R}$ 都有数学定义,但实践中
    • 当处理 $L_{test} \gg L_{train}$ 时,模型在训练中从未见过高位置索引的 token,这些 token 的编码在 Attention 计算中产生的分布与训练分布显著偏离
    • 频率 $\omega_i = \frac{1}{10000^{2i/d}}$ 固定,无法根据实际序列长度自适应
  • 高频维度退化指 $i$ 较大的维度,其
    • 变化周期非常短(仅为 $\frac{2\pi}{\omega_i}$),位置间的区分度低,即相邻 token 在高频维度上的差异可能不够显著
    • 梯度流通过高频维度时容易衰减或爆炸,难以有效传播
  • Attention 机制的适配性问题包括
    • 位置编码是加法注入,可能存在信息混淆
    • 不同频率的维度对 Attention 贡献不均
    • 缺乏显式的相对位置约束

Q3: 位置编码有哪些改进?

A: 比较成功的有 RoPE (旋转位置编码)ALiBi (Attention with Linear Biases)

  • RoPE 的核心思想是直接对 QueryKey 向量应用旋转变换,具备优势:

    • 纯相对位置编码,相对距离 $k=m-n$ 对 Attention score 的贡献只依赖于 $m-n$
    • 理论清晰,旋转矩阵对任意长序列有定义
    • 参数少,计算高效
    • 大模型标配

    但有缺点:

    • 对极长序列外推仍有限制
    • 需要在计算 Attention 前预先旋转 $Q$、$K$ 向量
  • ALiBi 的核心思想是直接在 Attention score 中加入线性相对位置偏差,不用位置编码,即 $$\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T + m(i,j)}{\sqrt{d_k}}\right)V$$ 其中,$m(i,j) = -\alpha \cdot |i - j|$ 且 $\alpha$ 可学习或固定,具备优势:

    • 最强的外推性,可以处理远长于训练长度的序列
    • 无需位置编码,参数极少
    • MPT、BLOOM等模型验证有效

    但有缺点:

    • 相对位置信息过于简化,精度有时不如 RoPE
    • 硬编码在 Attention 层,灵活性较差
注意力 / Attention

注意力(Attention)是将一个查询(Query)和一组键值对(Key-Value pairs)映射到输出的函数,其中输出是 Value加权和,而权重则由 Query 与对应于 ValueKey 之间的相似度决定。

可表达为: $$\text{Attention}(Q, K, V) = \sum_i \alpha_i V_i$$ 其中 $\alpha_i = f(Q, K_i)$,且满足 $\sum_i \alpha_i = 1$ 。

从定义不难看出,不同注意力机制的区别在于相似度定义和 $Q$、$K$、$V$ 的来源

带缩放的点积注意力

经典 Transformer 论文中采用一种叫带缩放的点积注意力(Scaled Dot-Product Attention)机制。设批大小为 $1$ ,对于输入矩阵 $X \in \mathbb{R}^{s \times d_{model}}$,则其数学形式: $$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$ 其中:

  • $Q\coloneqq XW^Q$ :代表当前 token 想要寻找的信息
  • $K\coloneqq XW^K$ :代表当前 token 供外部识别的标签
  • $V\coloneqq XW^V$ :代表当前 token 真实携带的语义
  • $QK^T$ :兼容性,用点积计算 token 之间的相似度
  • $\sqrt{d_k}$ :缩放因子,论文作者怀疑较大的 $d_k$ 会使得 $QK^T$ 的数值变大,进而导致反向传播时的梯度消失

显见,这是一种乘性(multiplicative)注意力,而另一种常用的是加性(additive)注意力加性注意力使用单隐藏层的前馈神经网络(feed-forward neural network)计算相似度。作者采用乘性注意力而不是加性注意力主要是考虑到,虽然它们的理论复杂度相近,但乘性注意力可以利用高度优化的矩阵乘法实现,在实践中更快、更省空间。

多头注意力

相比于仅通过一次注意力函数就得到输出,多头注意力(Multi-Head Attention)是通过 $h$ 次可学习的线性映射将 QueryKeyValue 分别映射到 $d_k,d_k,d_v$ 维投影子空间,再并行地计算 $h$ 个注意力函数(即 $h$ 头)以学习不同类型的依赖关系,得到多头的输出后再拼接起来并线性映射回模型维度 $d_{model}$ 。同样令批大小为 $1$ ,对于输入矩阵 $X \in \mathbb{R}^{s \times d_{model}}$,则其数学形式: $$\text{MultiHead}(Q,K,V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)\,W^O$$ 其中 $\text{head}_i = \text{Attention}(Q_i\coloneqq XW_i^Q,\; K_i\coloneqq XW_i^K,\; V_i\coloneqq XW_i^V)$ ,且 $W_i^Q \in \mathbb{R}^{d_{model} \times d_k},\,W_i^K \in \mathbb{R}^{d_{model} \times d_k},\,W_i^V \in \mathbb{R}^{d_{model} \times d_v},\,W^O \in \mathbb{R}^{hd_v \times d_{model}}$ 。

带掩码的自注意力(Masked Self-Attention)是在 Self-Attention相似度打分矩阵上施加一个掩码矩阵(mask),将不允许关注的位置置为 $-\infty$(或一个足够小的负数),使其经过 softmax 后权重近似为 $0$ 。以自回归(auto-regressive)生成常用的因果掩码(causal mask)为例,其核心是第 $t$ 个位置只能看见 $\le t$ 的位置,不能看未来信息,可写作: $$\text{MaskedAttention}(Q,K,V)=\text{softmax}\left(\frac{QK^T+M}{\sqrt{d_k}}\right)V$$ 其中:

  • $M_{ij}=0$ (当 $j \le i$)
  • $M_{ij}=-\infty$ (当 $j > i$)
衡准
探微

Q1: 自注意力的“自”什么含义?

A: 自注意力(Self-Attention)的“自”指其 $Q$、$K$、$V$ 全部来自同一个序列自身。

Q2: 在经典 Transformer 框架中,为什么使用自注意力

A: 主要有三点原因:

  • 并行性强Self-Attention 在训练时可以并行计算整个序列,避免了 RNN 按时间步串行依赖带来的吞吐瓶颈
  • 长程依赖建模有效:任意两个 token 之间的信息交互路径长度为常数级(单层内可直接交互),相比循环结构更容易捕获远距离依赖
  • 表达灵活且可解释:每个位置可对全序列动态分配权重,不同注意力头可学习不同类型的关系,Attention map 也提供了一定可解释性

在经典 Transformer 中,Encoder 采用全局 Self-AttentionDecoder 采用带因果掩码的 Self-Attention,并在此基础上通过 Cross-Attention 融合源序列信息。

Q3: 在经典 Transformer 框架中,为什么使用带因果掩码的自注意力

在经典 Transformer 中,每个 Decoder block 的第一层注意力都会使用这种带因果掩码的自注意力。它允许训练时并行计算整个序列,同时保持与推理阶段“逐 token 生成”的因果约束一致。

在训练时,会并行的喂整句,未来 token 是实际存在的,如果某一层未进行掩码,则位置 $t$ 就能直接看到 $t+1...n$ 的信息,造成信息泄漏。而一旦某层泄漏,后层的输入就会被污染,层层传递,无法保证严格的自回归

Q4: 在经典 Transformer 框架中,选择缩放因子为 $\sqrt{d_k}$ 有什么依据?

A: 设批大小为 $1$ ,对于矩阵 $Q, K \in \mathbb{R}^{s \times d_k}$ ,有: $$(QK^T)_{ij} = \sum_{l=1}^{d_k} Q_{il} K_{jl}$$ 由于模型初始化时, $Q$ 和 $K$ 往往都从独立同分布(Independent and identically distributed, i.i.d)的分布(如正态分布 $\mathcal{N}(0, \sigma^2)$ )采样,因此: $$E[Q_{il}K_{jl}] = E[Q_{il}]E[K_{jl}] = 0$$ $$\text{Var}(Q_{il}K_{jl}) = E[(Q_{il}K_{jl})^2] - E[Q_{il}K_{jl}]^2 = E[Q_{il}^2 K_{jl}^2] = E[Q_{il}^2]E[K_{jl}^2] = \sigma^2 \cdot \sigma^2 = \sigma^4$$ 则有: $$\text{Var}\left((QK^T)_{ij}\right) = \text{Var}\left(\sum_{l=1}^{d_k} Q_{il}K_{jl}\right) = \sum_{l=1}^{d_k} \text{Var}(Q_{il}K_{jl}) = d_k \cdot \sigma^4$$ 其标准差为 $\sqrt{d_k} \cdot \sigma^2$ 。

中心极限定理(central limit theorem, CLT)可知,只要 $Q_{il}K_{jl}$ 是独立,且有限二阶矩,那么无论原始分布是什么形状,当 $d_k$ 足够大时,其点积值都近似服从高斯分布,亦即: $$\frac{\sum_{l=1}^{d_k} Q_{il}K_{jl}}{\sqrt{d_k}\,\sigma_Q\sigma_K} \xrightarrow{d} \mathcal{N}(0, 1) \quad (d_k \to \infty)$$ 可见随着维度 $d_k$ 增大,结合正态分布的形状和其线性增大的方差, $QK^T$ 的元素随之增大的概率增加。而当其中某个元素 $z$ 很大时 $\text{softmax}(z) \approx 1$ ,其它位置则 $\approx 0$ ,按链式法则反向传播时(此处梯度实际为 Jacobian 矩阵,仅用单分量近似说明): $$\frac{\partial L}{\partial z} = \text{softmax}(z)(1 - \text{softmax}(z)) \cdot \frac{\partial L}{\partial \text{softmax}} \approx 1 \cdot 0 \cdot (\cdots) = 0$$ 梯度消失了。

如果施加缩放因子,则有: $$\text{Var}\left(\frac{(QK^T)_{ij}}{\sqrt{d_k}}\right) = \frac{1}{d_k} \text{Var}\left((QK^T)_{ij}\right) = \frac{1}{d_k} \cdot d_k \cdot \sigma^4 = \sigma^4$$ 自此,方差与 $d_k$ 无关。

拓展:

零均值假设不满足,即 $E[Q_{il}] = \mu_Q \neq 0$ 且 $E[K_{il}] = \mu_K \neq 0$ ,则: $$\text{Var}(Q_{il}K_{jl}) = E[Q^2]E[K^2] - \mu_Q^2\mu_K^2$$ 因此有: $$\text{Var}((QK^T)_{ij}) = d_k\left[(\sigma_Q^2+\mu_Q^2)(\sigma_K^2+\mu_K^2) - \mu_Q^2\mu_K^2\right]$$ 可见,方差线性正比于 $d_k$ 同样不依赖零均值假设,采用这个假设仅仅是为了保持系数干净。

前馈神经网络 / Feed-Forward Network

在文中每个编码器、解码器层都包含一个前馈神经网络(Feed-Forward Network, FFN),其由两个全连接层,中间夹一个 ReLU 激活层构成。其数学形式为: $$\text{FFN}(\mathbf{x}) = \max(0,\ \mathbf{x}\mathbf{W}_1 + \mathbf{b}_1)\ \mathbf{W}_2 + \mathbf{b}_2$$

衡准
探微

Q1: 如何理解经典 Transformer 框架中 Position-wise Feed-Forward NetworkPosition-wise 的含义?

文中强调这一层是 Position-wise ,因为其数据处理是沿着位置维度逐点处理,不同位置间的数据在这一步不会交互。相比于 Attention 负责“信息抽取”,FFN 可以认为负责“信息加工”。如此把“跨位置关系建模”交给 Attention ,把“逐位置非线性变换”交给 FFN的职责分离设计,可以使得模型结构稳定且易于训练。

Q2: 为什么说 FFN 相当于 $1 \times 1$ 的卷积?

当核的大小为 $1$ 时,卷积过程中不会涉及计算位置的邻域,且核的参数不变,只是将同一组参数在每个位置重复应用,这与 FFN “逐位置、共享权重”的计算非常相似。

归一化 / Normalization

归一化(Normalization, Norm)是一种将待处理数据经处理后限制到某个范围的数据处理方式。

归一化将数据转换到同一量级,可以:

  • 使梯度流更稳定,即寻求最优解的过程更平稳,从而更快的收敛到最优解
  • 更稳定的梯度流也允许更高的学习率,从而使模型对学习率更鲁棒

按计算方式分,常见的归一化有:

名称计算方法输出范围场景
Min-max Normalization (Rescaling)$\hat{x} = \frac{x - x_{min}}{x_{max} - x_{min}}$$[0,\quad 1]$已知范围
且需保留分布形状
Mean Normalization$\hat{x} = \frac{x - \text{mean}}{x_{max} - x_{min}}$$[-1,\quad 1]$Min-max Norm 的变体
Z-score Standardization$\hat{x} = \frac{x - \mu}{\sigma}$$(-\infty,\quad \infty)$假设属于高斯分布
Vector Normalization$\hat{x} = \frac{x}{\lVert x \rVert}$单位超球面只关心方向信息

按施加位置分,常见的归一化有:

名称统计维度计算方法特点
Batch Norm在“批”维度求 $\mu,\sigma$$\hat{x}_{b,c,h,w} = \frac{x_{b,c,h,w} - \mu_c}{\sqrt{\sigma_c^2 + \epsilon}}$
$y_{b,c,h,w} = \gamma_c \cdot \hat{x}_{b,c,h,w} + \beta_c$
依赖“批大小”
训练和推理不一致
需动态统计
Layer Norm在“特征”维度求 $\mu,\sigma$$\hat{x}_{b,t,d} = \frac{x_{b,t,d} - \mu_{b,t}}{\sqrt{\sigma_{b,t}^2 + \epsilon}}$
$y_{b,t,d} = \gamma_d \cdot \hat{x}_{b,t,d} + \beta_d$
不依赖“批”
训练和推理一致
Instance Norm样本内单通道计算$\hat{x}_{b,c,h,w} = \frac{x_{b,c,h,w} - \mu_{b,c}}{\sqrt{\sigma_{b,c}^2 + \epsilon}}$
$y_{b,c,h,w} = \gamma_c \cdot \hat{x}_{b,c,h,w} + \beta_c$
移除样本特有统计信息
(如风格迁移)

经典 Transformer 中,采用基于 Z-scoreLayer Norm 计算归一化,可以避免因为序列数据长度不一致带来的问题。

其中 $\epsilon$ 为数值稳定项,可以:

  • 防止 $\sigma = 0$ 时带来的除零问题
  • 避免 $\sigma$ 很小导致梯度爆炸,提高反向传播时的数值稳定性
  • 对 $\sigma$ 作隐式下界,限制归一化强度,避免过渡压缩特征
衡准
探微

Q1: 为什么归一化会使梯度流更稳定?

参考文档

以房价预测为例,假设房价仅考虑房子到地铁站的距离 $x_1$ 和房子的房间数量 $x_2$ ,且定义房价预测模型为 $y=\theta{_1}\cdot x_1+\theta{_2}\cdot x_2$ ,则损失函数为: $$J=(\theta{_1}\cdot x_1+\theta{_2}\cdot x_2-y_{label})^2$$ 则对该损失函数的优化过程可作如下可视化,图中红色圈为损失函数等高线,而蓝色折线为梯度更新路径,且箭头方向总正交于所在位置的等高线,为梯度更新方向。

归一化对梯度更新的影响

在未归一化时,距离 $x_1 \in [0, 5000], x_2 \in [0, 10]$ ,由于 $x_1, x_2$ 的量级差异巨大,其损失函数的等高线呈现为一个瘦窄的椭圆(左图),如点 $x_1=1000, x_2=3$ 处的等高线为 $J=(1000\cdot\theta{_1}+3\cdot\theta{_2}-y_{label})^2$ ,梯度下降过程会呈之字形,导致下降曲折缓慢。

而数据若经 Min-max Norm 处理后处于同一量级,在 $x'_1=\frac{1000-0}{5000-0}=0.2, x_2=\frac{3-0}{10-0}=0.3$ 处的损失函数等高线则为 $J=(0.2\cdot\theta{_1}+0.3\cdot\theta{_2}-y_{label})^2$ ,为一矮胖的椭圆形(右图),梯度更新方向更为稳定,求解优化过程变得更加迅速且平缓。

Q2: 为什么归一化后需要施加参数为 $\gamma,\beta$ 的仿射变换?

假设只做改进后的 Z-score Norm ,即 $\hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}}$ 会有几个问题:

  • 模型被迫接受“标准化”后的分布
    • 不同神经元都使用相同的 $\sigma$ ,限制了神经元的精细表达能力
  • 模型无法自主关闭归一化

而使用仿射变换后,即 $$y = \gamma \cdot \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} + \beta$$ 展开后 $$y = \frac{\gamma}{\sqrt{\sigma^2 + \epsilon}} \cdot x + \left( \beta - \frac{\gamma \mu}{\sqrt{\sigma^2 + \epsilon}} \right)$$ 显然,这还是线性变换,但模型通过学习 $\gamma,\beta$ 具备了学习最优斜率和截距的能力。

甚至更进一步,若模型决定“关闭这一层的归一化”,它可以学到 $\gamma = \sqrt{\sigma^2 + \epsilon}, \quad \beta = \mu$ 则 $$y = \sqrt{\sigma^2 + \epsilon} \cdot \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} + \mu = x$$ 即可恢复原始值

正如论文中所说:“归一化后,我们不能假设层的输入分布是固定的;模型应该利用 $\gamma,\beta$ 参数的灵活性来调整输入的均值和方差。”

正则化 / Regularization

正则化(Regularization)不是一个具体的技术,而是指任何用于减少模型过拟合、提高泛化能力的技术。

常见的有:

  • L1L2 正则:通过约束权重大小
  • Dropout:通过随机移除单元
  • Early Stopping:通过提前停止训练
  • 数据增强(Data Augmentation):通过扩展训练集
衡准
探微
暂退法 / Dropout

暂退法(Dropout)是指训练过程中,以一定概率 $p$ 随机关闭神经元(即输出置 $0$),在推理时使用所有神经元但是缩放激活值。

其数学形式为: $$y = \frac{x \cdot \text{Mask}}{1-p}, \quad \text{Mask} \sim \text{Bernoulli}(1-p)$$ 经典 Transformer 中,对每一子层的输出施加一个 $p=0.1$ 的 Dropout 然后再连接残差并做 Layer Norm 。此外,文中还对编码器解码器块中叠加了位置编码embedding 同样施加了 dropout ,以小幅增加随机性。

衡准
探微
标签平滑 / Label Smoothing

标签平滑(Label Smoothing)是深度学习中的一种正则化技术,它通过平滑值替换独热(one-hot)编码的 $0/1$ 标签来防止过度拟合(overfitting)过渡自信(overconfident)的预测,从而达到改善模型泛化能力的目的。

在使用 Softmax 回归处理多分类任务时,如果使用标准 one-hot 标签,如 $y_i = [0, 1, 0, \ldots]$ ,会使模型为正确类别的输出学习到 $\to \infty$ ,无疑会:

  • 增加过拟合风险
  • 模型对对抗样本敏感
  • 难以学习类别间的关系

若使用平滑后的值 $\tilde{y}_i = (1 - \alpha) \cdot y_i + \alpha \cdot \frac{1}{K}$ ,其中

  • $\alpha$ 是平滑系数,常为 $0.1$
  • $K$ 是类别总数

能够避免;

  • 防止模型 overconfident
  • 避免模型学出尖锐的决策边界以改善泛化能力
衡准
探微

思路

模型架构

总结