Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 第5章:循环神经网络(RNN)

第5章:循环神经网络(RNN)

RNN的基本原理

1. 循环神经网络的核心思想

循环神经网络(Recurrent Neural Network, RNN)是一类专门用于处理序列数据的神经网络。与传统的前馈神经网络不同,RNN通过引入时间维度上的循环连接,使网络能够保留历史信息并影响当前输出。其核心特点是:

  • 隐状态(Hidden State):保存过去时间步的信息
  • 参数共享:同一组权重参数在时间步上重复使用

2. RNN的基本结构

# 伪代码表示RNN计算过程
h_t = activation(W_hh * h_{t-1} + W_xh * x_t + b_h)
y_t = W_hy * h_t + b_y
  • 输入:当前时间步的输入xtx_txt​和上一时间步的隐状态ht−1h_{t-1}ht−1​
  • 输出:当前时间步的预测yty_tyt​和更新后的隐状态hth_tht​
  • 参数矩阵:
    • WxhW_{xh}Wxh​:输入到隐层的权重
    • WhhW_{hh}Whh​:隐层到隐层的权重
    • WhyW_{hy}Why​:隐层到输出的权重

3. 时间展开示意图

时间步1: x1 → h1 → y1
           ↓    ↗
时间步2: x2 → h2 → y2
           ↓    ↗
时间步3: x3 → h3 → y3

4. RNN的数学表达

对于时间步ttt:

ht=σ(Whhht−1+Wxhxt+bh)yt=Whyht+by\begin{aligned} h_t &= \sigma(W_{hh}h_{t-1} + W_{xh}x_t + b_h) \\ y_t &= W_{hy}h_t + b_y \end{aligned} ht​yt​​=σ(Whh​ht−1​+Wxh​xt​+bh​)=Why​ht​+by​​

其中σ\sigmaσ通常为tanh或ReLU激活函数

5. RNN的典型变体

类型特点适用场景
单向RNN只依赖过去信息实时预测任务
双向RNN同时考虑过去和未来信息完整序列分析(如NLP)
深层RNN多个隐藏层堆叠复杂序列建模

6. RNN的局限性

  1. 梯度消失/爆炸问题:长距离依赖难以学习(通过LSTM/GRU改进)
  2. 顺序计算限制:难以并行化处理
  3. 记忆容量有限:长序列信息可能丢失

关键理解:RNN的本质是通过循环连接赋予网络"记忆"能力,使其能够处理任意长度的序列数据,同时保持模型参数规模不变。


如果需要补充具体示例或更详细的数学推导部分,可以进一步扩展相关内容。
Last Updated:: 6/17/25, 10:13 AM