• GRU 浅析


    1. GRU 简介

      门控循环单元 (Gate Recurrent Unit, GRU) 于 2014 年提出,原论文为《Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling》。GRU 是循环神经网络的一种,和 LSTM 一样,是为了解决长期依赖问题。GRU 总体结构与 RNN 相近,如下图

    但 GRU 的思想却与 LSTM 更加相似,反映在其内部结构上。如下图所示

      LSTM 使用三个门 (遗忘门、输入门和输出门) 来控制信息传递,GRU 将其缩减为两个 (重置门和更新门)。GRU 去除了单元状态,转而使用隐藏状态来传输信息,因此其参数减少,效率更高。虽然 GRU 对 LSTM 做了很多简化,但其依旧保持着与 LSTM 相近的效果。

    2. GRU 详解

      要想掌握 GRU,最好先理解 LSTM。关于 LSTM 的讲解,推荐本人另一篇博客《LSTM 浅析》。GRU 有两个门,重置门决定如何把新的输入与之前的记忆结合,更新门决定多少先前的记忆起作用。重置门和更新门的结构如下图

    2.1 重置门

      GRU 中的隐藏状态 h t h_t ht 与 LSTM 中不同,可视为 LSTM 中单元状态和隐藏状态的混合,记录着历史信息。重置门为上图蓝框部分。重置门计算参数 r t ∈ ( 0 , 1 ) r_t \in (0, 1) rt(0,1),将 r t r_t rt 作为比例因子,控制着 h t − 1 h_{t-1} ht1 中将有多少信息被保留。重置门部分主要完成两项工作,一是参数 r t r_t rt 的计算
    r t = σ ( W r ⋅ [ h t − 1 , x t ] ) r_t = \sigma(W_r \cdot [h_{t-1}, x_t]) rt=σ(Wr[ht1,xt])
    二是将 r t r_t rt h t − 1 h_{t-1} ht1 相乘,得到候选隐藏状态 h ~ t \tilde{h}_t h~t
    h ~ t = σ ( W o ⋅ [ r t ⊙ h t − 1 , x t ] + b o ) \tilde{h}_t = \sigma(W_o \cdot [r_t \odot h_{t-1}, x_t] +b_o) h~t=σ(Wo[rtht1,xt]+bo)
    h ~ t \tilde{h}_t h~t 包含了历史信息和当前时刻的新输入。

      重置门的值越小,流入信息越少/先前信息遗忘得越多。重置门有助于捕捉时间序列里的短期依赖关系

    2.2 更新门

      更新门的作用类似于 LSTM 中的遗忘门和输入门,决定着 h t h_t ht 将从 h t − 1 h_{t-1} ht1 中保留多少信息 (不经过非线性变换), 以及需要从 h ~ t \tilde{h}_t h~t 中接受多少新信息。更新门为上图红框部分。在 LSTM 中,遗忘门和输入门是互补关系,具有一定的冗余性。GRU 直接使用一个门 z t z_t zt 来保持输入和遗忘间的平衡。更新门部分主要完成两项工作,一是参数 z t z_t zt 的计算
    z t = σ ( W z ⋅ [ h t − 1 , x t ] ) z_t = \sigma(W_z \cdot [h_{t-1}, x_t]) zt=σ(Wz[ht1,xt])
    二是隐藏状态 h t h_t ht 的计算
    h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h ^ t h_t = (1-z_t) \odot h_{t-1} + z_t \odot \hat{h}_t ht=(1zt)ht1+zth^t
       z t z_t zt 控制着 h t − 1 h_{t-1} ht1 x t x_t xt 有多大比例流入 h t h_t ht 中,更新门的值越大,流入信息越多。更新门有助于捕捉时间序列里的长期依赖关系

    3. GRU 的 PyTorch 实现

    To be continue…

    参考

    1. LSTM
  • 相关阅读:
    02 【Sass语法介绍-变量】
    P1195 口袋的天空-Kruskal(优先队列+并查集)
    android自定义View: 九宫格解锁
    【经验之谈】关于维修电子设备的几点建议和经验
    【kafka实战】02 kafka生产者和消费者示例
    百度网盘svip白嫖永久手机2024最新教程
    Java高级---->JDK8新特性学习笔记
    vue+python基于django框架酒店餐饮管理系统
    CV之ModelScope:基于ModelScope框架的人脸人像数据集利用DCT-Net算法实现人像卡通化图文教程之详细攻略
    智能指针面试题
  • 原文地址:https://blog.csdn.net/qq_41731861/article/details/126860939