各类神经网络学习:(七)GRU 门控循环单元(上集),详细结构说明

发布于:2025-04-04 ⋅ 阅读:(24) ⋅ 点赞:(0)
上一篇 下一篇
LSTM(下集) GRU(下集)

GRU(门控循环单元)

它其实是 R N N RNN RNN L S T M LSTM LSTM 的折中版,有关 R N N RNN RNN L S T M LSTM LSTM 请参考往期博客。

实际应用要比 L S T M LSTM LSTM 少,往往作为一个小部件使用。

一、相关知识早知道

  1. L S T M LSTM LSTM 的区别?

    • 这两种模型其实不相上下,重点还是在于调整层数以及超参数。
    • G R U GRU GRU 的参数较少,因此其训练速度更快;也因此相比于 L S T M LSTM LSTM G R U GRU GRU 能降低过拟合风险。
    • 如果有足够的训练数据,表达能力更强的 L S T M LSTM LSTM 或许效果更佳。
  2. 为什么能缓解梯度消失和梯度爆炸?

    L S T M LSTM LSTM 一样,请参考往期博客。

二、结构图

1)单个时刻结构图

在这里插入图片描述

其内部包含三个网络层(其中两个门单元):更新门、重置门、隐层状态输出层。

两个极端情况,一是直接舍弃过去的隐层状态信息,只接受当下的输入信息;另一种是完全接受过去的隐层状态信息,并舍弃当下的输入信息。

①重置门 r t \Large r_t rt

公式: r t = σ ( W x r ⋅ x t + W h r ⋅ h t − 1 + b r ) = σ ( W r ⋅ [ x t , h t − 1 ] + b r ) \Large r_t=\sigma(W_{xr}·x_t+W_{hr}·h_{t-1}+b_r)=\sigma(W_{r}·[x_t,h_{t-1}]+b_r) rt=σ(Wxrxt+Whrht1+br)=σ(Wr[xt,ht1]+br)

σ \large \sigma σ 函数使 r t \large r_t rt 的元素处于 0 ∼ 1 0\sim1 01 ,使其对 h t − 1 \large h_{t-1} ht1 具有舍弃功能, 1 1 1 表示 “完全接受”, 0 0 0 表示 “完全忽略” (对当前时刻没有用的历史信息就给它舍弃掉)。

②更新门 z t \Large z_t zt

公式: z t = σ ( W x z ⋅ x t + W h z ⋅ h t − 1 + b z ) = σ ( W z ⋅ [ x t , h t − 1 ] + b z ) \Large z_t=\sigma(W_{xz}·x_t+W_{hz}·h_{t-1}+b_z)=\sigma(W_{z}·[x_t,h_{t-1}]+b_z) zt=σ(Wxzxt+Whzht1+bz)=σ(Wz[xt,ht1]+bz)

③隐层状态输出 h t \Large h_t ht

公式:
h ~ t = t a n h ( W x h ⋅ x t + W h h ⋅ ( r t ⊙ h t − 1 ) + b h ) h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h ~ t \Large \tilde{h}_t=tanh(W_{xh}·x_t+W_{hh}·(r_t⊙h_{t-1})+b_h)\\ \Large h_t = (1-z_t)⊙h_{t-1}+z_t⊙\tilde{h}_t h~t=tanh(Wxhxt+Whh(rtht1)+bh)ht=(1zt)ht1+zth~t
这里的 ⊙ ⊙ 表示:向量或矩阵的对应元素相乘。

这里的 h ~ t \large \tilde{h}_t h~t 可以理解成:是在对历史信息进行部分舍弃之后,再结合当前信息学习到的新知识(有冗余项,相当于候选的隐层状态信息输出)。

h t \large h_t ht 是在 h ~ t \large \tilde{h}_t h~t 的基础上,进一步对历史信息进行筛选,看看是不是还有一些有用的信息。

补充】:其实这里的 ( 1 − z t ) (1-z_t) (1zt) z t z_t zt 是可以交换的,固定好之后让模型自动学习即可。

2)说明:

  • r t \large r_t rt z t \large z_t zt 虽然在表达式上相差无几,不过在模型参数的不断学习中,两者的功能会自动区分开。

    r t \large r_t rt 的作用实质上是在更新 h t \large h_t ht 的时候,舍弃多少 h t − 1 \large h_{t-1} ht1 的信息(用来捕获短期依赖信息); z t \large z_t zt 的作用实质上是在更新 h t \large h_t ht 的时候,吸收多少 h t − 1 \large h_{t-1} ht1 的信息(用来捕获长期依赖信息)。

  • 隐层的尺寸一般来说都是 128 × 1 128×1 128×1 256 × 1 256×1 256×1 这些常规的尺寸。