第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
- 输入:当前时间步的输入和上一时间步的隐状态
- 输出:当前时间步的预测和更新后的隐状态
- 参数矩阵:
- :输入到隐层的权重
- :隐层到隐层的权重
- :隐层到输出的权重
3. 时间展开示意图
时间步1: x1 → h1 → y1
↓ ↗
时间步2: x2 → h2 → y2
↓ ↗
时间步3: x3 → h3 → y3
4. RNN的数学表达
对于时间步:
其中通常为tanh或ReLU激活函数
5. RNN的典型变体
| 类型 | 特点 | 适用场景 |
|---|---|---|
| 单向RNN | 只依赖过去信息 | 实时预测任务 |
| 双向RNN | 同时考虑过去和未来信息 | 完整序列分析(如NLP) |
| 深层RNN | 多个隐藏层堆叠 | 复杂序列建模 |
6. RNN的局限性
- 梯度消失/爆炸问题:长距离依赖难以学习(通过LSTM/GRU改进)
- 顺序计算限制:难以并行化处理
- 记忆容量有限:长序列信息可能丢失
关键理解:RNN的本质是通过循环连接赋予网络"记忆"能力,使其能够处理任意长度的序列数据,同时保持模型参数规模不变。
如果需要补充具体示例或更详细的数学推导部分,可以进一步扩展相关内容。