当前位置: 首页 > news >正文

从RNN到Transformer:深度学习架构革命

Transformer架构详解:从基础到深度学习

本文是对Transformer模型论文《Attention is All You Need》的深度解读与教学总结

第一部分:机器学习基础

1.1 决策树模型简介

在学习深度学习之前,我们需要理解机器学习的基本概念。决策树是一个经典的机器学习算法,用于分类和回归任务。

核心概念:

  • 训练数据:表格形式,每一行代表一个样本
  • 特征(Features):表格中的每一列,用数值表示不同属性
  • 标签列(Label):最后一列,代表我们要预测的目标

例子:奶茶价格预测

  • 输入特征:天气、温度、是否健身等
  • 输出标签:奶茶价格

1.2 基尼指数与节点纯度

在构建决策树时,我们需要评估每个分割点的质量。基尼指数用来衡量节点的纯度。

  • 基尼系数越低 → 节点纯度越高 → 数据分类效果越好
  • 基尼系数越高 → 节点纯度越低 → 需要进一步分割

1.3 特征选择策略

在众多可能的分割点中,我们需要选择最优的特征来分割数据。

选择标准:

  1. 计算不同特征的基尼系数
  2. 选择能最有效降低加权基尼系数的特征
  3. 考虑特征的样本数量,样本更多的特征权重更高

第二部分:序列模型的演进

2.1 循环神经网络(RNN)

RNN的工作原理:

RNN按顺序处理序列数据,每一步都计算隐藏状态(Hidden State, H_t)。

Ht=f(Ht−1,Xt)H_t = f(H_{t-1}, X_t)Ht=f(Ht1,Xt)

其中:

  • Ht−1H_{t-1}Ht1:前一时刻的隐藏状态
  • XtX_tXt:当前时刻的输入
  • HtH_tHt:当前时刻的隐藏状态

RNN的特点:

  • ✓ 能显式建模序列信息
  • ✓ 参数共享
  • ✗ 顺序计算,无法并行化
  • ✗ 长序列易出现梯度消失/爆炸问题

计算复杂度: O(N×D2)O(N \times D^2)O(N×D2)

  • N:序列长度
  • D:隐藏维度

2.2 卷积神经网络(CNN)

CNN在序列上的应用:

使用卷积核处理序列数据,每个输出由大小为K的窗口决定。

优势:

  • ✓ 可以并行计算
  • ✓ 计算效率高
  • ✗ 感受野受限于卷积核大小
  • ✗ 长距离信息需要多层传播

计算复杂度: O(K×N×D2)O(K \times N \times D^2)O(K×N×D2)

  • K:卷积核大小(通常为3-5)

2.3 注意力机制(Attention)

注意力机制的革命性意义:

注意力机制允许模型直接建立序列中任意两个位置之间的关系,无论它们相距多远。


第三部分:Transformer架构详解

3.1 Transformer的核心设计

基本结构:编码器-解码器架构

输入 → 编码器(N层) → 编码器输出 ↓解码器(N层) ← 解码器输入↓输出层↓最终输出

3.2 缩放点积注意力(Scaled Dot-Product Attention)

计算过程:

  1. 计算相似度:
    Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)VAttention(Q,K,V)=softmax(dkQKT)V

其中:

  • Q(Query):查询向量
  • K(Key):键向量
  • V(Value):值向量
  • dkd_kdk:键的维度
  1. 为什么要除以 dk\sqrt{d_k}dk

dkd_kdk较大时:

  • 点积值会变得很大或很小
  • Softmax的梯度会变小(梯度消失)
  • 权重分布会过于尖锐,集中在最大值
  • 除以dk\sqrt{d_k}dk可以稳定梯度流
  1. 实际计算(矩阵形式):
Q_matrix = [query_1, query_2, ..., query_n]
K_matrix = [key_1, key_2, ..., key_n]
V_matrix = [value_1, value_2, ..., value_n]scores = Q_matrix × K_matrix^T / √d_k
weights = softmax(scores)
output = weights × V_matrix

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

概念:

不是用单个注意力函数,而是用多个注意力头并行计算,然后合并结果。

MultiHead(Q,K,V)=Concat(head1,...,headh)WO\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^OMultiHead(Q,K,V)=Concat(head1,...,headh)WO

优势:

  • 不同的注意力头可以关注不同的特征
  • 提高模型的表现力

3.4 编码器结构

单个编码器层包含两个子层:

  1. 多头自注意力层

    • 查询、键、值都来自同一输入
    • 允许每个位置关注所有位置
  2. 前馈神经网络(FFN)

    FFN(x) = max(0, xW_1 + b_1)W_2 + b_2
    
    • 隐藏维度通常是输入维度的4倍
    • 例如:512维 → 2048维 → 512维

编码器的完整流程:

输入 → 位置编码 → [自注意力 + 残差连接 + LayerNorm] → [FFN + 残差连接 + LayerNorm] → 输出

3.5 解码器结构

解码器与编码器的主要区别:

  1. 掩蔽自注意力(Masked Self-Attention)

    • 在解码器中,当前位置不能看到未来的位置
    • 通过掩蔽矩阵实现:将未来位置的注意力权重设为0
  2. 编码器-解码器交叉注意力

    • 查询来自解码器上一层
    • 键和值来自编码器输出
    • 允许解码器关注编码器的所有位置
  3. 自回归生成

    • 一次生成一个标记
    • 已生成的标记作为下一步的输入

3.6 位置编码(Positional Encoding)

问题: 标准注意力对位置顺序不敏感

解决方案: 使用三角函数位置编码

PE(pos,2i)=sin⁡(pos/100002i/dmodel)PE(pos, 2i) = \sin(pos / 10000^{2i/d_{model}})PE(pos,2i)=sin(pos/100002i/dmodel)
PE(pos,2i+1)=cos⁡(pos/100002i/dmodel)PE(pos, 2i+1) = \cos(pos / 10000^{2i/d_{model}})PE(pos,2i+1)=cos(pos/100002i/dmodel)

特点:

  • 使用正弦和余弦函数
  • 每个维度有不同的频率
  • 允许模型学习相对位置关系
  • 可以处理比训练集更长的序列

3.7 层归一化(Layer Normalization)

与批量归一化的区别:

批量归一化:对一个批次的相同特征进行归一化

BN: 将特征维度标准化为均值0、方差1

层归一化:对每个样本的所有特征进行归一化

LayerNorm: 将序列中的每个向量标准化

在Transformer中的应用:

  • 在每个子层的残差连接之后
  • 提高训练稳定性和收敛速度

第四部分:计算复杂度分析

4.1 三种架构的复杂度对比

架构时间复杂度空间复杂度并行度
RNNO(N×D2)O(N \times D^2)O(N×D2)O(N×D)O(N \times D)O(N×D)低(顺序)
CNNO(K×N×D2)O(K \times N \times D^2)O(K×N×D2)O(N×D)O(N \times D)O(N×D)
AttentionO(N2×D)O(N^2 \times D)O(N2×D)O(N2)O(N^2)O(N2)

4.2 实际场景分析

对于现代模型(如BERT):

  • 模型宽度D ≈ 512
  • 序列长度N ≈ 几百到几千

此时:

  • N2≈D2N^2 \approx D^2N2D2
  • Attention和其他架构的复杂度相近
  • Attention的并行优势更加明显

4.3 性能优化

长序列处理的改进:

  • 局部注意力:每个查询只关注最近的K个位置
  • 优点:减少计算量到O(K×N)O(K \times N)O(K×N)
  • 缺点:可能丢失长距离依赖

第五部分:Transformer的广泛应用

5.1 BERT和GPT的继承

Transformer架构的简洁性使其易于应用到各种任务:

BERT(双向编码器):

  • 使用编码器进行文本理解
  • 适合分类、标记、问答任务

GPT(生成预训练):

  • 使用仅解码器架构
  • 适合文本生成任务

5.2 多模态扩展

Transformer已成功应用于:

  • 文本处理: NLP所有主流任务
  • 图像处理: Vision Transformer(ViT)
  • 语音处理: 音频特征建模
  • 视频处理: 时空信息融合

5.3 架构的通用性

关键参数(可调):

  • 层数(Depth)
  • 隐藏维度(Hidden Dimension)
  • 注意力头数(Number of Heads)
  • FFN隐藏维度倍数

通过调整这些参数,同一架构可适配不同任务和数据量。


第六部分:论文评价

6.1 写作风格

优点:

  • 高效简洁,信息密度大
  • 逻辑清晰,循序渐进

建议:

  • 加入更多动机说明
  • 讲述为什么做这个设计
  • 增加设计理念的阐述
  • 这样可以让读者有更深的理解

6.2 模型的创新意义

革命性影响:

  • 在几乎所有NLP任务上取得SOTA
  • 简化了任务特定的模型设计
  • 启发了后续多个研究方向

类比: 如同CNN在计算机视觉的地位

6.3 后续研究方向

论文激发了众多研究:

  • 架构创新: 尝试MLP、其他简单架构
  • 多模态融合: 统一处理不同数据类型
  • 效率优化: 减少计算量和内存占用
  • 长序列处理: 改进对超长输入的支持

第七部分:关键收获

7.1 核心洞察

  1. 自注意力的强大

    • 不需要显式的顺序归纳偏置
    • 可以捕捉长距离依赖
  2. 通用架构的力量

    • 同一模型可适配多种任务
    • 大规模预训练是关键
  3. 并行计算的重要性

    • RNN的顺序性成为主要瓶颈
    • Attention的可并行性支持大模型训练
  • 原论文:《Attention is All You Need》(Vaswani et al., 2017)
  • 官方代码:TensorFlow Transformer库
  • 学习资源:PyTorch官方教程
http://www.dtcms.com/a/504158.html

相关文章:

  • 【从0开始学习Java | 第23篇】动态代理
  • 公司营销型网站建设策划书wordpress 2019主题
  • C++--- volatile 关键字 禁止寄存器缓存与编译器层面的指令重排
  • 网站建站的具体流程什么平台可以免费打广告
  • HTTP相关知识点
  • Redis 未授权访问漏洞全解析:从原理到突破
  • 龙华做网站公司快速排名程序
  • 用eclipse做网站开发代做网站推广的公司
  • 企业级RAG落地思考
  • 验证用户登录的两种方式
  • 笔试-精准核酸检测
  • 知识就是力量——制作一个红外计数器
  • 做网站如何大众汽车网站建设
  • 【Linux笔记】网络部分——应用层自定义协议与序列化
  • 上海招聘网站排名米方科技网站建设
  • 佛山网站建设企业推荐房地产交易网站模版
  • 江苏和住房建设厅网站深圳网站关键词
  • Qt--命名,快捷键及坐标系
  • 容器:软件世界的标准集装箱
  • 音乐网站系统源码百度引擎搜索引擎入口
  • 门户网站如何制作想学习做网站
  • 建设项目安监备案网站深圳公司贷款
  • 企业网站关键词应如何优化网站建设公司swot分析
  • 09_AI智能体开发环境搭建之Redis安装配置完整指南
  • Oracle RMAN三种不完全恢复实战详解:归档序号、时间点与SCN恢复对比
  • 公司网站托管网站做5级分销合法吗
  • 记事本做网站如何添加图片开发公司空置房物管费归口什么费用
  • 新网站建设渠道打开网页链接
  • Python 爬虫常用库:requests 与 BeautifulSoup 详解
  • 什么是MySQL JOIN查询的驱动表和被驱动表?