对gru的理解

GRU(Gated Recurrent Unit,门控循环单元)是一种循环神经网络(RNN)的变体,最早由Kyunghyun Cho等人在2014年提出。它是**LSTM(Long Short-Term Memory)**的简化版,旨在缓解标准RNN的梯度消失问题,同时减少计算开销。


1. GRU 结构

GRU的核心由两个门控制信息流动:

  • 更新门(Update Gate,z):决定当前时间步的隐藏状态有多少信息需要保留、多少信息来自新输入。
  • 重置门(Reset Gate,r):控制遗忘过去的信息,决定当前输入对隐藏状态的影响程度。

GRU的数学公式如下:

  1. 更新门

    z t = σ ( W z x t + U z h t − 1 + b z ) z_t = \sigma(W_z x_t + U_z h_{t-1} + b_z) zt=σ(Wzxt+Uzht−1+bz)

  2. 重置门
    r t = σ ( W r x t + U r h t − 1 + b r r_t = \sigma(W_r x_t + U_r h_{t-1} + b_r rt=σ(Wrxt+Urht−1+br

  3. 候选隐藏状态

    h ~ t = tanh ⁡ ( W h x t + U h ( r t ⊙ h t − 1 ) + b h ) \tilde{h}t = \tanh(W_h x_t + U_h (r_t \odot h{t-1}) + b_h) h~t=tanh(Whxt+Uh(rt⊙ht−1)+bh)

  4. 最终隐藏状态更新
    h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h ~ t h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t ht=(1−zt)⊙ht−1+zt⊙h~t

其中:

  • σ \sigma σ 是sigmoid函数,确保门的输出在 (0,1) 之间。
  • ⊙ \odot ⊙ 代表逐元素乘法(Hadamard 乘积)
  • W W W 和 U U U 是可训练权重, b b b 是偏置项。

从公式我们可以看出, 在计算 h ~ t \tilde{h}_t h~t 的时候, r t rt rt(重置门) 越接近1则结果受到过去状态的影响越大, r t rt rt(重置门) 越接近0的时候,结果受到过去状态的影响越小。 这就是重置门的作用。用于控制遗忘过去的信息。

计算新的 h t h_t ht 的时候, 更新们 z t z_t zt 越接近1,结果受到 h ~ t \tilde{h}_t h~t (当前输入)影响大, 当 z t z_t zt 越接近0时, 结果受到 h t h_t ht(过去状态)影响大。所以这体现了更新门的作用:决定当前时间步的隐藏状态有多少信息需要保留、多少信息来自新输入。

相关推荐
PKNLP4 小时前
深度学习之神经网络2(Neural Network)
人工智能·深度学习·神经网络
格林威6 小时前
机器视觉的工业镜头有哪些?能做什么?
人工智能·深度学习·数码相机·算法·计算机视觉·视觉检测·工业镜头
java1234_小锋8 小时前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 变量(Variable)的定义与操作
python·深度学习·tensorflow·tensorflow2
却道天凉_好个秋9 小时前
深度学习(十七):全批量梯度下降 (BGD)、随机梯度下降 (SGD) 和小批量梯度下降 (MBGD)
人工智能·深度学习·梯度下降
AI数据皮皮侠11 小时前
中国地级市旅游人数、收入数据(2000-2023年)
大数据·人工智能·python·深度学习·机器学习·旅游
mooooon L11 小时前
DAY 43 复习日-2025.10.7
人工智能·pytorch·python·深度学习·神经网络
java1234_小锋17 小时前
TensorFlow2 Python深度学习 - 深度学习概述
python·深度学习·tensorflow·tensorflow2·python深度学习
椒颜皮皮虾྅18 小时前
【DeploySharp 】基于DeploySharp 的深度学习模型部署测试平台:安装和使用流程
人工智能·深度学习·开源·c#·openvino
迈火18 小时前
PuLID_ComfyUI:ComfyUI中的图像生成强化插件
开发语言·人工智能·python·深度学习·计算机视觉·stable diffusion·语音识别
却道天凉_好个秋20 小时前
深度学习(十五):Dropout
人工智能·深度学习·dropout