《动手学深度学习》-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 (门控机制)。


相关推荐
冬奇Lab1 小时前
Workflow 系列(03):状态管理——持久化、幂等性与版本绑定
人工智能·工作流引擎
冬奇Lab2 小时前
每日一个开源项目(第146篇):openpilot - 开源自动驾驶辅助系统,曾在 Consumer Reports 评测中超过特斯拉 Autopilot
人工智能·开源·自动驾驶
吴佳浩3 小时前
AI 工程师知识地图:模型格式、框架、部署工具一次讲明白
人工智能·aigc·ai编程
IT_陈寒3 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
码农胖大海4 小时前
AI额度不够用的解决方案
人工智能
后端小肥肠4 小时前
小红书虚拟商品怎么做?我先用 Skill 跑通了壁纸品类
人工智能·aigc·agent
feiyu_gao4 小时前
从零搭建个人 AI 工作台:一个管理者的 3 个月实验
人工智能·aigc·团队管理
Lihua奏5 小时前
从单核到多核:CPU为什么不能再只靠提频变快
深度学习
程序员cxuan5 小时前
一句话,让你用上 GPT-5.6
人工智能·后端·程序员