《神经网络与深度学习》学习笔记(三):Transformer 模型

《神经网络与深度学习》学习笔记(三):Transformer 模型

一、Transformer 概述

1.1 模型诞生

  • 2017 年由 Google Brain 提出,论文 《Attention Is All You Need》
  • 彻底抛弃 RNN / CNN,完全基于自注意力机制 的序列建模框架

1.2 核心优势

  1. 并行计算能力强:不像 RNN 必须逐词计算,训练速度大幅提升
  2. 长距离依赖建模好:自注意力直接捕捉全局关系
  3. 效果更优:机器翻译等任务 BLEU 分数显著超过传统模型

1.3 整体架构

Transformer 由 6 大部分 串联组成:

  1. 输入模块(词嵌入 + 位置编码)
  2. 编码器 Encoder(N× 堆叠)
  3. 解码器 Decoder(N× 堆叠)
  4. 输出模块(Linear + Softmax)
  5. 残差与层归一化(Add & Norm)
  6. 前馈网络 FFN

整体结构:

输入嵌入 → 编码器 → 解码器 → 线性层 → Softmax 输出概率


二、输入部分

2.1 流程

输入句子 → 分词 → 词嵌入 → 位置编码 → 最终输入表示

2.2 词嵌入(Embedding)

  1. 将单词映射为低维稠密向量
  2. 步骤:
    • 文本分词为 token 序列
    • 填充/截断到固定长度
    • 独热编码 → 低维向量映射
  3. 常用方法:Word2Vec(CBOW / Skip-gram)

2.3 位置编码(Positional Encoding)

  • Transformer 无时序结构,必须显式加入位置信息
  • 采用 正弦位置编码
    PE(pos,2i)=sin⁡(pos100002i/dmodel) PE_{(pos,2i)} = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right) PE(pos,2i)=sin(100002i/dmodelpos)
    PE(pos,2i+1)=cos⁡(pos100002i/dmodel) PE_{(pos,2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right) PE(pos,2i+1)=cos(100002i/dmodelpos)
  • 最终输入:
    Input=Embedding+PositionalEncodingInput = Embedding + PositionalEncodingInput=Embedding+PositionalEncoding

三、编码器 Encoder

3.1 编码器结构

每个编码器块包含 两层子结构 ,并都带 残差 + 层归一化

  1. 多头自注意力层
  2. 前馈神经网络层

整体:

Encoder=N×(MultiHeadAttention+AddNorm+FeedForward+AddNorm)Encoder = N × (MultiHeadAttention + AddNorm + FeedForward + AddNorm)Encoder=N×(MultiHeadAttention+AddNorm+FeedForward+AddNorm)

3.2 自注意力机制(核心)

目的:让每个单词关注句子中所有其他词,动态加权融合信息。

3.2.1 三步得到 Q、K、V

每个词向量 XXX 乘三个权重矩阵得到:

  • QQQ (Query 查询):当前词要"找什么"
  • KKK (Key 键):其他词"提供什么"
  • VVV (Value 值):其他词"内容是什么"

Q=XWQ,K=XWK,V=XWV Q = XW_Q,\quad K = XW_K,\quad V = XW_V Q=XWQ,K=XWK,V=XWV

3.2.2 缩放点积注意力

Attention(Q,K,V)=softmax(QKTdk)V Attention(Q,K,V) = softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

  • 除以 dk\sqrt{d_k}dk :防止点积过大导致 Softmax 饱和
  • Softmax:得到 0~1 注意力权重
  • 最终输出:对 VVV 加权求和

3.3 多头自注意力(Multi-Head Attention)

  • 将 Q/K/V 分为 h 组(常用 h=8)
  • 每组独立计算自注意力
  • 最后拼接并线性变换
  • 作用:让模型同时关注不同位置、不同子空间的信息

3.4 Add & Norm 层

  1. Add(残差连接)
    Output=X+SubLayer(X)Output = X + SubLayer(X)Output=X+SubLayer(X)
  2. Norm(层归一化)
    LayerNorm(Output)LayerNorm(Output)LayerNorm(Output)
  • 作用:缓解梯度消失,加速训练收敛

3.5 前馈网络 FFN

两层线性变换 + ReLU:

FFN(x)=max(0,xW1+b1)W2+b2 FFN(x) = max(0, xW_1+b_1)W_2 + b_2 FFN(x)=max(0,xW1+b1)W2+b2


四、解码器 Decoder

4.1 解码器结构

每个解码器块包含 三层子结构

  1. 带掩码的多头自注意力
  2. 编码器-解码器交叉注意力
  3. 前馈神经网络 FFN

每一层都带:Masked Attention → AddNorm → CrossAttention → AddNorm → FFN → AddNorm

4.2 掩码注意力(Masked Multi-Head Attention)

  • 训练时遮住未来位置,防止模型"看到答案"
  • 实现:将未来位置的分数设为 −∞-\infty−∞,Softmax 后权重为 0
  • 保证生成时只能依赖前面的词

4.3 交叉注意力(Cross Attention)

  • Q 来自解码器上一层
  • K、V 来自 编码器的最终输出
  • 让解码器在生成时,能对齐并关注输入句子的关键信息

五、输出部分

5.1 线性层

将解码器输出映射到 词典大小维度

Linear:dmodel→vocab_size Linear: d_{model} \rightarrow vocab\_size Linear:dmodel→vocab_size

5.2 Softmax 层

转成概率分布:

Pi=ezi∑ezj P_i = \frac{e^{z_i}}{\sum e^{z_j}} Pi=∑ezjezi

输出每个词的生成概率,取最大概率作为预测词。


六、网络训练

6.1 训练流程(以机器翻译为例)

  1. 输入源语言句子 → 编码器输出记忆向量
  2. 目标句子右移一位作为解码器输入
  3. 解码器逐词生成
  4. 交叉熵损失 优化
  5. 误差反向传播更新所有参数

6.2 训练超参数

  • 编码器/解码器层数 N=6
  • 模型维度 dmodel=512d_{model}=512dmodel=512
  • 多头数 h=8
  • 学习率 warm-up 策略
  • 批次包含约 25000 个 token

6.3 数据集与效果

  • WMT2014 英→德、英→法翻译数据集
  • Transformer-big 英德 BLEU:28.4
  • 英法 BLEU:41.8,超过当时所有模型

七、模型总结

  1. 核心创新:完全基于自注意力,抛弃 RNN/CNN
  2. 关键组件
    • 位置编码:加入时序信息
    • 自注意力:全局依赖建模
    • 多头注意力:多维度信息捕捉
    • 掩码机制:保证生成合法性
    • 残差+归一化:深度网络可训练
  3. 历史意义
    • 奠定现代大模型(GPT、BERT、LLaMA 等)基础架构
    • 从 NLP 扩展到 CV、语音、多模态 全领域

本文为工大《深度学习与神经网络》课程要求学习总结,仅供参考,版权归原作者所有,侵权请联系删除,谢谢。

相关推荐
nashane1 小时前
HarmonyOS 6学习:深入解析CustomDialog嵌套弹窗中的this指向陷阱与解决方案
学习·华为·harmonyos
百万小涵1 小时前
从零接入大模型:通义千问、Ollama 与 OpenAI SDK 入门(RAG与Agent实战学习笔记①)
笔记·学习
我命由我123451 小时前
BOM 极简理解
运维·经验分享·笔记·物联网·学习·运维开发·学习方法
xian_wwq1 小时前
【学习笔记】大模型应用安全落地实践
笔记·学习·ai安全
江华森1 小时前
Jenkins 从入门到精通 — 完整学习笔记
笔记·学习·jenkins
牢七1 小时前
契约锁逆向(失败,已老实正在学习)
学习
江华森1 小时前
Kafka 从入门到精通 — 完整学习笔记
笔记·学习·kafka
小陈phd1 小时前
多模态大模型学习笔记(四十二)——从像素到语义的精准问询——视觉问答(VQA)
笔记·学习
陈天伟教授2 小时前
图解人工智能(37)人工智能应用-车牌识别
人工智能·深度学习