
视频元信息
- 课程:吴恩达深度学习专项课程(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]
- 预测第一个英文词 → Jane;
- 把 Jane 也作为输入,此时查询来自 SOS 和 Jane,问"给定 Jane,最合适的下一个词是什么?";
- 找到对应的 Key 和 Value,生成下一个词 → visits;
- 再次运行网络 → 生成 Africa;
- 把 Africa 反馈回输入 → 生成 in;
- 再生成 September;
- 最后生成 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