目录
一、RNN的思想
二、RNN的基本结构
网络架构
关键点
三、RNN的前向传播
四、RNN的挑战:梯度爆炸和梯度消失
问题分析
示例推导
五、LSTM:RNN的改进
核心组件
网络架构
3. LSTM 的工作流程
4. 数学公式总结
5. LSTM 的优缺点
优点
缺点
6. LSTM 的变种与改进
1. Peephole LSTM
2. 双向 LSTM
六:GRU
1. GRU 的核心目标
2. GRU 的基本结构
核心组件
网络架构
3. GRU 的工作流程
4. 数学公式总结
5. GRU 的优缺点
优点
缺点
6. GRU 的变种与改进
1. 双向 GRU
2. 带 Peephole 的 GRU
一、RNN的思想
- 目标: 处理具有 时序关系(时间顺序上的相互联系和依存关系) 的数据(如时间序列、自然语言、语音等)。
- 核心特点:
- 隐藏状态的传递: 隐藏状态在每个时间步被更新并传递到下一个时间步。
- 记忆能力: 通过隐藏状态捕捉序列中的长期依赖关系。
二、RNN的基本结构
网络架构
一个典型的 RNN 包含以下部分:
- 输入层 (Xt): 接收当前时间步的输入。
- 隐藏层 (Ht):
- 公式:
- Wih: 输入到隐藏层的权重矩阵。
- Whh: 隐藏层到隐藏层的权重矩阵(核心参数)。
- bh: 隐藏层偏置项。
- f: 激活函数(如 Tanh、ReLU)。
- 公式:
- 输出层 (Yt): 生成当前时间步的输出。
- 公式:
- Who: 隐藏层到输出层的权重矩阵。
- bo: 输出层偏置项。
- g: 输出激活函数(如 Sigmoid、Softmax)。
- 公式:
关键点
- 时间步: 数据按顺序依次处理(如单词序列逐词处理)。
- 隐藏状态 Ht: 承载序列的历史信息,是 RNN 的“记忆”。
三、RNN的前向传播
以序列长度为 T 的数据为例:
- 初始化: 初始隐藏状态 H0(通常设为全零)。没次增加时间步时,都会增加一个H,用来保证后面的输出和前面的输出有关,乘上的权重代表前面的与后面的相关性大小。
- 迭代计算:
- 对每个时间步 t=1,2,...,T
- 对每个时间步 t=1,2,...,T
四、RNN的挑战:梯度爆炸和梯度消失
问题分析
- 梯度消失: 在长序列中,梯度随时间步指数级衰减(反向传播时多次相乘)。
- 梯度爆炸: 梯度随时间步指数级增长。
示例推导
假设简单 RNN 的误差项 δt 反向传播:
若 ∣Whh∣<1,乘积趋近于零(梯度消失);若 ∣Whh∣>1,乘积趋近于无穷(梯度爆炸)。 反向传播的时候需要对权重连乘,很容易梯度消失或爆炸
五、LSTM:RNN的改进
核心组件
- 记忆单元(Memory Cell):
- 用于存储长期序列中的关键信息。
- 门控单元:
- 输入门(Input Gate): 控制新信息进入记忆单元。
- 遗忘门(Forget Gate): 控制旧信息从记忆单元中移除。
- 输出门(Output Gate): 控制记忆单元的信息输出到下一层。