GRU

模型概述

* 英文名:GRU (Gated Recurrent Unit)

* 中文名:门控循环单元

GRU(门控循环单元) 是深度学习中针对时序数据优化的循环神经网络(RNN)变体,由Hochreiter等人于2014年提出,核心通过门控机制解决传统RNN长序列训练的梯度问题,兼顾性能与计算效率。

* 类型:RNN(循环神经网络)的改进型单元

* 用途:处理序列数据,如时间序列预测、自然语言处理、语音识别等。

基础概念

• 概念:基于RNN的时序建模逻辑,引入门控结构动态调节信息流动,实现对长短期序列依赖的精准捕捉,是处理时序数据的经典模型之一。
• 原理:
1. 重置门:决定是否忽略历史隐藏状态,控制历史信息的保留程度,公式为 $r_t = \sigma(W_r \cdot [h_{t-1}, x_t] + b_r$ 。
2. 更新门:调节历史隐藏状态与当前候选状态的融合比例,兼具遗忘门与输入门功能,公式为 $z_t = \sigma(W_z \cdot [h_{t-1}, x_t] + b_z$。
3. 候选隐藏状态:结合重置门处理后的历史信息与当前输入生成,公式为 $\tilde{h}_t = \tanh(W_h \cdot [r_t \odot h_{t-1}, x_t] + b_h$。
4. 最终隐藏状态:通过更新门融合历史状态与候选状态,公式为 $h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t$ 。

关键公式
$更新门:z_t = \sigma(W_z x_t + U_z h_{t-1} + b_z)$

* $(z_t)$:更新门向量,值在 ([0,1])
* $(x_t)$:当前输入向量
* $(h_{t-1})$:前一隐藏状态
* $(W_z, U_z)$:权重矩阵
* $(b_z)$:偏置
* $(\sigma)$:Sigmoid 激活函数
--------------------------------------------------------------------------------

$重置门:r_t = \sigma(W_r x_t + U_r h_{t-1} + b_r)$

* $(r_t)$:重置门向量
* 其余符号同上
--------------------------------------------------------------------------------

$候选隐藏状态:\tilde{h}*t = \tanh(W_h x_t + U_h (r_t \odot h*{t-1}) + b_h)$

* $(\tilde{h}_t)$:候选隐藏状态
* $(\odot)$:元素逐位乘(Hadamard 乘积)
* $(\tanh)$:双曲正切激活函数
--------------------------------------------------------------------------------

$最终隐藏状态:h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t$

* $(h_t)$:最终输出隐藏状态
* 核心作用:通过更新门 $(z_t)$ 权衡旧状态与新状态
--------------------------------------------------------------------------------

超参数
参数名 描述 值范围 默认值 建议值
hidden_size 隐藏层单元数 正整数 128 64~512
num_layers 网络层数 正整数 1 2~3
dropout Dropout 概率 0~1 0 0.1~0.3
bidirectional 双向 GRU True/False False True
learning_rate 学习率 0~1 0.001 -
batch_first 输入格式 True/False True -
完整计算机制

1. 输入处理:获取当前输入 $(x_t)$ 和前一隐藏状态 $(h_{t-1})$
2. 计算门控:
---* 更新门 $(z_t)$ → 决定保留多少过去信息
---* 重置门 $(r_t)$ → 决定遗忘多少过去信息
3. 生成候选隐藏状态 $(\tilde{h}_t)$
4. 融合输出:用更新门 $(z_t)$ 加权组合前一状态和候选状态得到 $(h_t)$

特点:GRU 将 LSTM 的“遗忘门 + 输入门 + 输出门”合并成两个门,更简单高效。

优势

• 解决梯度问题:门控机制有效缓解长序列训练中的梯度消失或爆炸,提升模型对长时依赖的捕捉能力。
• 结构简洁高效:相比LSTM省去细胞状态,参数更少,计算开销更低,训练速度更快。
• 适配多场景:在自然语言处理、语音识别、时序预测等领域表现优异,兼具性能与实用性。
• 参数少 → 训练速度快,内存占用低
• 长序列依赖能力强 → 能保留长期信息
• 结构简单 → 比 LSTM 更易实现与调参
• 性能接近 LSTM → 在多数序列任务中表现相当

预测的例子

假设我们用 GRU 预测彩票第六位数,已知历史序列:`236, 366, 599, 688, 122`。预测流程如下:

1. 输入序列编码:把每个数字序列 `[2,3,6]` → 数值向量 $(x_t)$

2. 初始隐藏状态 $(h_0) = 0$

3. 逐步更新隐藏状态:

---* 计算更新门 $(z_t)$,决定保留多少前一状态信息

---* 计算重置门 $(r_t)$,控制前一状态对候选状态的影响

---* 生成候选隐藏状态 $(\tilde{h}_t)$

---* 融合前一状态和候选状态得到新的 $(h_t)$

4. 最终输出:最后一个 $(h_t)$ 经过全连接层映射成预测值

5. 结果解释:

---* 输出为一个概率分布 `[0.1, 0.05, ..., 0.2]` 对应数字 0~9

---* 取概率最大的数字作为预测的第六位数,例如预测结果 `5`

> 这个过程中 GRU 自动学习了历史数字间的模式,输出结果即是对未来序列的预测。

动画演示

发现更多可能性

默认固定广告

免费下载 数据序列智能分析

立即体验强大的数字序列预测与分析工具(280MB,推荐天翼网盘下载 访问码:bq4f)

天翼网盘下载 访问码:bq4f 其他下载

推荐内容

默认悬浮广告