神经网络与深度学习课程笔记(3)
1. Transformer概述
1.1. 背景
-
提出时间:2017年,Google团队发表论文《Attention Is All You Need》
-
替代传统模型:LSTM、GRU、RNN、CNN
1.2. 优势
-
能捕捉长距离语义关联
-
支持并行训练,效率更高
2. 整体架构
2.1. 输入部分
2.1.1. 输入组成
-
源文本嵌入 + 位置编码
-
目标文本嵌入 + 位置编码
2.1.2. 词嵌入流程
-
将文本切分为单词(token)
-
对齐不同长度的句子(裁剪或填充)
-
使用独热向量表示
-
映射为低维稠密向量(如Word2Vec)
2.1.3. 位置编码(Positional Encoding)
-
问题:同一单词在不同位置含义不同
-
解决方案:正弦位置编码
编码公式:
2.2. 编码器部分
2.2.1. 结构
-
由 N 个编码器层堆叠(原论文中 N=6)
-
每层包含两个子层:
-
多头自注意力 + 残差连接 + 层归一化
-
前馈全连接网络 + 残差连接 + 层归一化
-
2.2.2. 自注意力机制
-
目标:根据上下文动态调整词的表示
计算步骤:
-
从输入向量生成 Q、K、V 矩阵
-
计算得分:
-
Softmax 归一化
-
加权求和:
2.2.3. 多头注意力
-
使用多组 Q、K、V 矩阵,每组独立计算
-
拼接所有头的输出,再通过权重矩阵
融合
2.2.4. 残差连接+层归一化
-
公式:
LayerNorm(X + Attention(X)) -
加速收敛,稳定训练
2.2.5. 前馈网络(FeedForward)
-
两层全连接:
-
输出维度与输入相同
2.3. 解码器部分
2.3.1. 结构
-
由 N 个解码器层堆叠
-
每层包含三个子层:
-
带掩码的多头自注意力(Masked Self-Attention)
-
编码器-解码器注意力(Cross-Attention)
-
前馈全连接网络
-
2.3.2. 掩码操作(Masking)
-
保证每个词只能看到它之前的词(防止未来信息泄露)
-
使用
masked_fill将未来位置设为负无穷
2.3.3. 交叉注意力
-
Q 来自解码器第一层输出
-
K、V 来自编码器输出
2.4. 输出部分
2.4.1. 组成
-
线性层:将向量映射到词汇表大小
-
Softmax 层:将输出转为概率分布
2.4.2. 示例任务
-
机器翻译:逐词预测目标语言
3. 网络训练流程
3.1. 训练步骤(以翻译为例)
-
输入源语言句子(如中文)
-
编码器编码
-
解码器输入开始符,逐步预测目标词
-
计算预测与真实值的交叉熵损失
-
误差反向传播,更新参数
3.2. 训练数据
-
WMT2014 英-德:450万句子对,37000 token词汇
-
WMT2014 英-法:3600万句子对,32000 token词汇
3.3 硬件配置
-
8个 NVIDIA P100 GPU
-
基础模型:10万步,12小时
-
大模型:30万步,3.5天
4. 训练结果(BLEU分数)
| 模型 | EN-DE | EN-FR |
|---|---|---|
| Transformer (base) | 27.3 | 38.1 |
| Transformer (big) | 28.4 | 41.0 |
5. 总结
-
Transformer 是 NLP 领域的里程碑模型
-
核心是注意力机制(Q、K、V)
-
广泛应用于机器翻译、文本生成、视觉大模型等领域
更多推荐
所有评论(0)