视频封面

视频元信息

  • 课程:吴恩达深度学习专项课程(Deep Learning Specialization)——序列模型 / 注意力机制与 Transformer
  • 本讲主题:将自注意力与多头注意力组装成完整的 Transformer 网络架构
  • 前置知识:自注意力(Self-Attention)、多头注意力(Multi-Head Attention)

内容摘要(TL;DR)

本讲把前面学过的自注意力和多头注意力机制组装成完整的 Transformer 架构,以法语到英语的机器翻译为例,逐步讲解编码器块、解码器块、位置编码、残差连接、AddNorm 层,以及训练阶段专用的掩码多头注意力机制。


一、从注意力到 Transformer 的整体思路 [00:03]

  • 前面已经学过自注意力和多头注意力,本节目标是把这些机制"拼装"成 Transformer 网络。
  • 以句子 "Jane visite l'Afrique en septembre"(法语)翻译成英语为例,逐层走通整个流程。
  • 输入是句子的词嵌入(embedding),此外还额外加入了两个特殊标记:
    • SOS(Start of Sentence,句子起始标记)
    • EOS(End of Sentence,句子结束标记)

易错点: 在序列到序列(seq2seq)翻译任务中,仅用词嵌入是不够的,必须显式加入 SOS 和 EOS 标记,否则模型无法知道序列从哪里开始、在哪里结束。

理解:SOS/EOS 类似编程里的"起始符"和"终止符",是让模型学会"何时开始生成、何时停止生成"的关键控制信号。


二、编码器块(Encoder Block) [01:02]

  • 嵌入向量首先送入编码器块,编码器块内部包含一个多头注意力层。
  • 多头注意力层的输入是 Q、K、V 三个矩阵,它们由嵌入向量与权重矩阵 W 计算得到。
  • 注意力层输出一个矩阵,再送入前馈神经网络(Feed-Forward Neural Network),用于提取句子中有意义的特征。
  • 在 Transformer 原论文中,该编码块会重复 n 次,典型值 n = 6。

考点: 编码器块的标准结构 = 多头注意力 + 前馈神经网络,且整体堆叠重复 n 次(典型 n=6)。这是 Transformer 编码器的核心组成。

推导:可以理解为"多层特征提取"——每一层都在前一层的基础上进一步抽象句子的语义表示,层数越多,表示能力越强。


三、解码器块(Decoder Block) [02:01]

  • 编码器输出后,送入解码器块,解码器的任务是逐词生成英语翻译。
  • 第一个输出是 SOS 标记(已经预先写好)。
  • 每一步,解码器会输入"目前已经生成的翻译的前几个词"。
  • 初始时只知道翻译以 SOS 开头,因此 SOS 标记被送入多头注意力块。
  • 仅用 SOS 这一个 token 来计算该多头注意力块的 Q、K、V。

第二个多头注意力块的特殊结构 [03:00]

  • 第一个注意力块的输出用于生成下一个多头注意力块的 Q 矩阵;
  • 编码器的输出用于生成 K 和 V。

理解:这种设计的直觉是——解码器当前的输入(已翻译部分)充当"查询(Query)",问:"到目前为止,下一个词应该是什么?"然后从编码器翻译出的法语语义中(K、V)拉取上下文,决定下一个要生成的词。

考点(关键结构区别):

  • 解码器第一个多头注意力块:Q、K、V 都来自解码器自身输入(自注意力)。
  • 解码器第二个多头注意力块(交叉注意力):Q 来自解码器,K 和 V 来自编码器输出。

这是 Transformer 中"编码器-解码器注意力"的核心,也是最容易混淆的地方。

解码器块的后半部分 [03:52]

  • 多头注意力块的输出送入前馈神经网络。
  • 解码器块同样会重复 n 次(可能 6 次),把输出反馈回输入,反复经过约六次。
  • 该神经网络的任务是预测句子中的下一个词。

逐词生成的完整流程 [04:18]

  1. 预测第一个英文词 → Jane;
  2. 把 Jane 也作为输入,此时查询来自 SOS 和 Jane,问"给定 Jane,最合适的下一个词是什么?";
  3. 找到对应的 Key 和 Value,生成下一个词 → visits;
  4. 再次运行网络 → 生成 Africa;
  5. 把 Africa 反馈回输入 → 生成 in;
  6. 再生成 September;
  7. 最后生成 EOS 标记,翻译结束。

思考:这就是典型的"自回归(autoregressive)"生成方式——每一步的输出都会成为下一步的输入,逐词推进直到遇到 EOS。


四、编码器-解码器组合的意义 [05:05]

  • 编码器块与解码器块的组合,正是 Transformer 架构执行序列到序列翻译任务的核心思想。
  • 通过法语到英语的翻译例子,可以直观理解:注意力机制如何被组合起来,从而支持并行计算。

理解:相比 RNN 必须按时间步串行处理,Transformer 的注意力机制允许对序列中所有位置同时计算,这是它训练效率高的关键原因之一。


五、Transformer 的"额外亮点"(Bells and Whistles) [05:31]

除了主体结构,Transformer 还有一些让效果更好的附加机制。

5.1 位置编码(Positional Encoding) [05:42]

  • 问题: 回顾自注意力的公式,其中没有任何信息表示词的位置——这个词是句首、句中还是句尾?但位置对翻译极其重要。

易错点: 自注意力本身是"位置无关"的(permutation-invariant),如果不加位置编码,模型无法区分"Jane 爱 Chris"和"Chris 爱 Jane"。

  • 解决方案: 使用正弦(sin)和余弦(cos)函数组合来编码输入元素的位置。

具体计算方式 [06:18]

  • 假设词嵌入是 4 维向量(维度 d = 4),记为 x1、x2、x3……
  • 同时创建一个同维度(也是 4 维)的位置嵌入向量,记为 p1(第一个词的位置嵌入)。
  • 公式中的变量:
    • pos:词在句中的数值位置(对词 Jane,pos = 1);
    • i:编码的不同维度,从 0 到 3;
    • d:向量维度,此处 d = 4。

正弦余弦曲线的形态 [08:29]

  • i = 0:一条正弦曲线;
  • i = 1:对应的余弦曲线(相位差 90 度);
  • i = 2:频率更低的 sinusoid 曲线;
  • i = 3:对应的余弦曲线。

位置编码的读取方式 [09:18]

  • 对位置 1 的词,在横轴位置 1 处读取四个值,填入 p1 的四个分量;
  • 对不同位置的词(如横轴 3),读取不同的值。
  • 注意:前两个值可能很接近(高度相近),但综合全部四个值,p3 与 p1 是不同的向量。

考点: 位置编码的设计目标是——为每个位置生成唯一的编码向量,且不同位置之间可区分。

位置编码的使用方式 [09:52]

  • 位置编码 p1 直接加到 x1 上(相加,不是拼接)。
  • 这样每个词向量都被"染色",融入了它在句子中的位置信息。

5.2 残差连接(Residual Connections) [10:12]

  • 除了把位置编码加到嵌入上,还会通过残差连接把它们传递过整个网络。
  • 这些残差连接与之前在 ResNet 中见过的类似。
  • 作用: 让位置信息能够贯穿整个架构传递下去。

理解:残差连接缓解了深层网络的梯度消失问题,使 n=6 甚至更深的堆叠成为可能。

5.3 AddNorm 层 [10:37]

  • Transformer 还使用一个叫 AddNorm 的层,它和熟悉的 BatchNorm(批归一化) 非常相似。
  • 本视频中不必纠结二者的差异,把它理解为"作用与 BatchNorm 非常相似、能加速学习"的层即可。
  • 这个类 BatchNorm 的 AddNorm 层会在整个架构中反复出现。

提醒: AddNorm = Add(残差相加)+ Norm(归一化),常与残差连接配套使用,是 Transformer 稳定训练的重要组件。

5.4 输出层的线性 + Softmax [11:03]

  • 解码器块的输出,最后还会经过一个线性层 + Softmax 层,用于逐词预测下一个词。

六、掩码多头注意力(Masked Multi-Head Attention) [11:11]

  • 阅读 Transformer 文献时,常会看到 Masked Multi-Head Attention 这个术语。
  • 它只在训练过程中重要,即在用"正确的法英翻译数据集"训练 Transformer 时使用。

训练与预测的差异 [11:40]

  • 前面讲的是 Transformer 如何逐词预测。
  • 但训练时不一样:假设数据集里有正确的法英翻译(如"Jane visite l'Afrique en septembre" → "Jane visits Africa in September")。
  • 训练时,你能同时访问完整的正确英文翻译(正确的输出和正确的输入)。
  • 因为拥有完整正确的输出,训练时不必逐词生成。

掩码的作用 [12:08]

  • 掩码会遮挡句子后面的部分,用来模拟网络在测试/预测时需要面对的情况。
  • 换句话说,掩码多头注意力做的事情就是:反复假装网络已经完美翻译了前几个词,并隐藏剩余的词,然后检验——给定完美翻译的前半部分,网络能否准确预测序列中的下一个词。

易错点: Masked Multi-Head Attention 仅用于训练阶段,目的是防止模型在预测第 t 个词时"偷看"到第 t 个词之后的答案(防止信息泄露)。预测/推理阶段不需要掩码。

推导:训练时如果不用掩码,模型会直接看到完整答案,等于"开卷考试",学不到真正的预测能力。掩码让训练条件与推理条件一致,都是"只能看已经生成的部分"。


七、总结 [12:56]

  • 本讲内容细节较多,但至此你已经掌握了 Transformer 网络的所有主要构建模块:
    • 编码器块(多头注意力 + 前馈网络,重复 n 次)
    • 解码器块(含自注意力与交叉注意力,重复 n 次)
    • 位置编码(正弦余弦)
    • 残差连接
    • AddNorm 层
    • 掩码多头注意力(仅训练用)
    • 输出线性 + Softmax 层
  • 本周的编程练习中动手实践代码,会帮助你建立更深的直觉,把 Transformer 应用到自己的任务中。

关键标签 / 关键词

Transformer #自注意力 #多头注意力 #编码器 #解码器 #位置编码 #残差连接 #AddNorm #掩码多头注意力 #序列到序列 #机器翻译 #SOS #EOS #吴恩达深度学习 #深度学习专项课程 #注意力机制 #交叉注意力 #Softmax #BatchNorm #ResNet


生成时间:2026-10-11 00:14:36 生成平台:VideoNote www.xygy.top