《动手学深度学习》-54循环神经网络RNN

1. 核心思想:引入"记忆"

传统的神经网络(如全连接层)假设输入是相互独立的。但语言、视频、股票等数据是序列数据 (Sequence Data),上下文有关联。

  • RNN 的突破:在处理当前时刻t的输入时,不仅看当前的输入Xt,还要看上一时刻的隐状态Ht-1
2. 数学模型 (核心公式

RNN 的核心在于隐状态 (Hidden State) 的更新。假设时间步为 t

  1. 隐状态更新

  2. 输出计算

    • : 当前时刻的输出(例如预测下一个词的概率分布)。
3. 结构图解:时间展开

可以将 RNN 理解为多个全连接层在时间上串联,但它们共用同一套权重

4. 训练方法:BPTT
  • BPTT (Backpropagation Through Time):随时间反向传播。

  • 计算梯度时,误差不仅反向传过当前的层,还要沿着时间轴向前回溯,一直传到序列的开始(或截断点)。

5. RNN vs N-gram (对比笔记)

你刚学过 N-gram,两者的区别在于:

  • N-gram:只能看有限的历史(N-1) 阶),参数量随 N指数级爆炸,无法建模长距离依赖。

  • RNN:理论上可以看任意长的历史(信息存储在 H中),参数量固定(权重共享),更适合处理变长序列。

6. 局限性与挑战

虽然 RNN 理论上能记忆长距离信息,但实际上很难训练:

  • 梯度消失 (Vanishing Gradient):时间步太长,早期的信息在反向传播中逐渐归零,导致模型"忘掉"了开头的词。

  • 梯度爆炸 (Exploding Gradient):梯度指数级增长,导致权重更新过大,模型崩溃。

    • 解决爆炸:梯度裁剪 (Gradient Clipping)

    • 解决消失:使用 LSTMGRU (门控机制)。


相关推荐
结局无敌2 分钟前
构建百年工程:cann/ops-nn 的可持续演进之道
人工智能·cann
MSTcheng.3 分钟前
CANN算子开发新范式:基于ops-nn探索aclnn两阶段调用架构
人工智能·cann
renhongxia13 分钟前
如何基于知识图谱进行故障原因、事故原因推理,需要用到哪些算法
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·知识图谱
做人不要太理性4 分钟前
CANN Runtime 运行时与维测组件:异构任务调度、显存池管理与全链路异常诊断机制解析
人工智能·自动化
算法备案代理6 分钟前
大模型备案与算法备案,企业该如何选择?
人工智能·算法·大模型·算法备案
酷酷的崽7986 分钟前
CANN 生态可维护性与可观测性:构建生产级边缘 AI 系统的运维体系
运维·人工智能
哈__7 分钟前
CANN加速Inpainting图像修复:掩码处理与边缘融合优化
人工智能
深鱼~10 分钟前
ops-transformer算子库:解锁昇腾大模型加速的关键
人工智能·深度学习·transformer·cann
禁默13 分钟前
不仅是 FlashAttention:揭秘 CANN ops-transformer 如何重构大模型推理
深度学习·重构·aigc·transformer·cann
笔画人生14 分钟前
进阶解读:`ops-transformer` 内部实现与性能调优实战
人工智能·深度学习·transformer