神经网络与深度学习第三周总结
一、课程概述
本周课程围绕Google团队于2017年提出的Transformer模型展开,重点介绍了其诞生背景、核心架构、各部分功能以及训练方法。Transformer模型摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),完全基于注意力机制,具有捕捉长距离语义依赖和支持并行训练两大显著优势。
二、模型整体架构
Transformer模型整体分为四个主要部分:
-
输入部分:源文本和目标文本的嵌入层及位置编码器
-
编码器部分:由多个编码器层堆叠而成
-
解码器部分:由多个解码器层堆叠而成
-
输出部分:线性层 + Softmax层
三、输入部分
1. 词嵌入(Word Embedding)
-
将输入文本以单词为单位切分,形成token序列。
-
对不同长度的句子进行剪切或填充,使其对齐。
-
使用独热向量(One-hot)表示单词,再通过训练得到的映射矩阵将高维独热向量映射为低维稠密向量(如Word2Vec)。
-
示例:PyTorch中可使用
nn.Embedding实现词嵌入。
2. 位置编码(Positional Encoding)
由于Transformer不包含循环或卷积结构,无法感知单词顺序,因此需要显式加入位置信息。
-
整数编码:信噪比低,模型难以分离语义与位置信息。
-
二进制编码:向量数字不连续,产生跳跃结果,违背直观。
-
正弦位置编码(最终采用):使用不同频率的正弦和余弦函数生成位置向量,公式如下:
PE(pos,2i)=sin(pos100002i/d)PE(pos,2i+1)=cos(pos100002i/d)PE(pos,2i)PE(pos,2i+1)=sin(100002i/dpos)=cos(100002i/dpos)
其中 pospos 为位置索引,ii 为向量分量索引,dd 为模型维度。
四、编码器部分
编码器由 NN 个相同的编码器层堆叠而成(原论文中 N=6N=6)。每个编码器层包含两个子层:
-
多头自注意力子层 + 残差连接 + 层归一化(Add & Norm)
-
前馈全连接子层 + 残差连接 + 层归一化
1. 自注意力机制(Self-Attention)
-
为每个输入单词生成三个向量:查询(Q)、键(K)、值(V)。
-
计算注意力分数:Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(dkQKT)V。
-
分母 dkdk 用于稳定梯度。
2. 多头注意力(Multi-Head Attention)
-
使用多组不同的权重矩阵并行计算多组 Q,K,VQ,K,V,每组得到一个输出 ZiZi。
-
将所有头的输出拼接,再通过一个权重矩阵 WOWO 线性变换,得到最终的 ZZ。
-
多头机制使模型能够关注不同位置的不同表示子空间。
3. 残差连接与层归一化
-
残差连接:Output=LayerNorm(X+Sublayer(X))Output=LayerNorm(X+Sublayer(X))。
-
层归一化:对每一层神经元的输入进行归一化,加速收敛。
4. 前馈网络(Feed-Forward Network)
FFN(X)=max(0,XW1+b1)W2+b2FFN(X)=max(0,XW1+b1)W2+b2
两层全连接,第一层激活函数为ReLU。
五、解码器部分
解码器同样由 NN 个相同的解码器层堆叠而成。每个解码器层包含三个子层:
-
带掩码的多头自注意力子层(Masked Multi-Head Attention)
-
编码器-解码器多头注意力子层(Cross Attention)
-
前馈全连接子层
每个子层后均接残差连接和层归一化。
1. 掩码操作(Mask)
-
在自注意力计算中,每个位置只能关注到它之前的位置,不能看到未来信息。
-
通过将未来位置的注意力分数设为 −∞−∞(softmax后为0)实现。
2. 交叉注意力
-
解码器的第二个注意力子层:K 和 V 来自编码器的输出,Q 来自解码器第一个子层的输出。
-
这使得解码器能够关注输入序列的所有位置。
六、输出部分
输出部分由一个线性层和一个Softmax层组成:
-
线性层:将解码器输出向量映射到目标词汇表大小的维度。
-
Softmax层:将线性层输出转换为概率分布,预测下一个词。
七、网络训练
1. 训练数据
-
英语-德语:WMT2014,约450万句子对,共享约37000个标记。
-
英语-法语:WMT2014,约3600万句子对,词汇表大小32000。
2. 训练流程(以翻译为例)
-
在解码器输入端加入开始符(
<start>)。 -
解码器逐词生成输出,每一步使用已生成的词作为输入。
-
计算预测词与真实下一个词的交叉熵损失。
-
误差反向传播,更新模型参数。
3. 硬件与时间
-
使用8个NVIDIA P100 GPU。
-
基础模型:0.4秒/步,训练10万步(约12小时)。
-
大模型:1.0秒/步,训练30万步(约3.5天)。
4. 训练结果(BLEU分数)
| 模型 | EN-DE | EN-FR |
|---|---|---|
| Transformer (base) | 27.3 | 38.1 |
| Transformer (big) | 28.4 | 41.0 |
八、课程总结
-
Transformer模型完全基于注意力机制,无需循环或卷积结构,在机器翻译等序列转换任务上取得了当时最优的结果。
-
自注意力和多头注意力是其核心,能够有效捕捉上下文依赖。
-
位置编码解决了序列顺序问题。
-
残差连接和层归一化保证了深层网络的训练稳定性。
-
该架构已成为后续大规模预训练模型(如BERT、GPT、ViT等)的基础,并成功扩展到计算机视觉等领域。
更多推荐




所有评论(0)