目录

1 GRU的输入输出结构

2 GRU的内部结构

2.1 重置门 reset gate

2.2 更新门 update gate

3 LSTM与GRU的关系

4. 总结

5 吴恩达视频截图


LSTM 通过门控机制使循环神经网络不仅能记忆过去的信息,同时还能选择性地忘记一些不重要的信息而对长期语境等关系进行建模,而 GRU 基于这样的想法在保留长期序列信息下减少梯度消失问题。

相比LSTM,使用GRU能够达到相当的效果,并且相比之下更容易进行训练,能够很大程度上提高训练效率,因此很多时候会更倾向于使用GRU。

1 GRU的输入输出结构

GRU的输入输出结构与普通的RNN是一样的。

有一个当前的输入  ,和上一个节点传递下来的隐状态(hidden state)  ,这个隐状态包含了之前节点的相关信息。

结合  和 ,GRU会得到当前隐藏节点的输出  和传递给下一个节点的隐状态  。

2 GRU的内部结构

首先,我们先通过上一个传输下来的状态  和当前节点的输入  来获取两个门控状态。如下图所示,其中  控制重置的门控(reset gate),  为控制更新的门控(update gate)

Tips:  sigmoid函数,通过这个函数可以将数据变换为0-1范围内的数值,从而来充当门控信号。

  • 复位门的功能与LSTM单元的输入门相近,
  • 更新门则同时实现了遗忘门和输出门的功能。

2.1 重置门 reset gate

        与LSTM分明的层次结构不同,得到门控信号之后,首先使用重置门控来得到“重置”之后的数据  ,再将  与输入  进行拼接,再通过一个tanh激活函数来将数据放缩到-1~1的范围内。即得到如下图所示的  。

注: 是Hadamard Product,也就是操作矩阵中对应的元素相乘,因此要求两个相乘矩阵是同型的。  则代表进行矩阵加法操作。

这里的  主要是包含了当前输入的  数据。有针对性地对  添加到当前的隐藏状态,相当于“记忆了当前时刻的状态”。类似于LSTM的选择记忆阶段。

2.2 更新门 update gate

最后介绍GRU最关键的一个步骤,我们可以称之为”更新记忆“阶段。

在这个阶段,我们同时进行了遗忘了记忆两个步骤。我们使用了先前得到的更新门控  (update gate)。

        更新表达式

首先再次强调一下,门控信号(这里的  )的范围为0~1。门控信号越接近1,代表”记忆“下来的数据越多;而越接近0则代表”遗忘“的越多。

GRU很聪明的一点就在于,我们使用了同一个门控  就同时可以进行遗忘和选择记忆(LSTM则要使用多个门控)

  • :表示对原本隐藏状态的选择性“遗忘”。这里的  可以想象成遗忘门(forget gate),忘记  维度中一些不重要的信息。
  • : 表示对包含当前节点信息的  进行选择性”记忆“。与上面类似,这里的  同理会忘记  维度中的一些不重要的信息。或者,这里我们更应当看做是对  维度中的某些信息进行选择。
  • :结合上述,这一步的操作就是忘记传递下来的  中的某些维度信息,并加入当前节点输入的某些维度信息。

可以看到,这里的遗忘  和选择  是联动的。也就是说,对于传递进来的维度信息,我们会进行选择性遗忘,则遗忘了多少权重 ( ),我们就会使用包含当前输入的  中所对应的权重进行弥补  。以保持一种”恒定“状态。

3 LSTM与GRU的关系

GRU是在2014年提出来的,而LSTM是1997年。他们的提出都是为了解决相似的问题,那么GRU难免会参考LSTM的内部结构。那么他们之间的关系大概是怎么样的呢?这里简单介绍一下。

大家看到  (reset gate)实际上与他的名字有点不符。我们仅仅使用它来获得了   。

那么这里的  实际上可以看成对应于LSTM中的hidden state;上一个节点传下来的  则对应于LSTM中的cell state。1-z 对应的则是LSTM中的  forget gate,那么 z 我们似乎就可以看成是选择门  了。

4. 总结

GRU输入输出的结构与普通的RNN相似,其中的内部思想与LSTM相似。

与LSTM相比,GRU内部少了一个”门控“,参数比LSTM少,但是却也能够达到与LSTM相当的功能,但是LSTM更加强大灵活。考虑到硬件的计算能力时间成本,我们就会选择更加”实用“的GRU。在实际使用中,应加以尝试。

5 吴恩达视频截图

​​​​​​​

经过研究者的不断探究,终于研究出来一种适合几乎各种研究实验的新型GRU网络是这样的:

这个GRU可以经过经过更加深度的训练而保持强壮记忆力! gamma r的这个r可以表示为relevance相关性,也就是新的t时刻的记忆单元C~和t-1时刻的记忆单元C的相关性。

人人都能看懂的GRU:人人都能看懂的GRU - 知乎

吴恩达视频:【中英字幕】吴恩达深度学习课程第五课 — 序列模型_哔哩哔哩_bilibili

​​​​​​​

门控循环单元(Gate Recurrent Unit,GRU)相关推荐

  1. 2020-10-21 吴恩达DL学习-C5 序列模型-W1 循环序列模型(1.9 GRU门控循环单元-改善梯度消失-在序列中学习非常深的连接-简化和完整版本-记忆细胞)

    1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c 2.详细笔记网站(中文):http://www.ai-sta ...

  2. 门控循环单元-GRU单元(Gated Recurrent Unit)

    来源:Coursera吴恩达深度学习课程 接下来我们将会学习门控循环单元(Gated Recurrent Unit),它改变了RNN的隐藏层,使其可以更好地捕捉深层连接,并改善了梯度消失问题,让我们看 ...

  3. (pytorch-深度学习)门控循环单元(GRU)

    门控循环单元(GRU) 循环神经网络中的梯度计算 当时间步数较大或者时间步较小时,循环神经网络的梯度较容易出现衰减或爆炸. 虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题. 通常由于这个原因, ...

  4. pytorch学习笔记(三十一):门控循环单元(GRU)

    文章目录 前言 1. 门控循环单元 1.1 重置门和更新门 1.2 候选隐藏状态 1.3 隐藏状态 2. 读取数据集 3. 从零开始实现 3.1 初始化模型参数 3.2 定义模型 3.3 训练模型并创 ...

  5. 动手学深度学习(三十九)——门控循环单元GRU

    文章目录 门控循环单元(GRU) 一.门控隐藏状态 1.1 重置门和更新门 1.2候选隐藏状态 1.3 隐藏状态 二.从零实现GRU 2.1 初始化模型参数 2.2 定义模型 2.3 训练与预测 2. ...

  6. GRU(门控循环单元),易懂。

    一.什么是GRU? GRU(Gate Recurrent Unit)是循环神经网络(RNN)的一种,可以解决RNN中不能长期记忆和反向传播中的梯度等问题,与LSTM的作用类似,不过比LSTM简单,容易 ...

  7. 门控循环单元网络(GRU)在自然语言处理中的应用

    作者:禅与计算机程序设计艺术 1.简介 自然语言处理(NLP)是人类认知的一项重要技能,它涉及到对文本数据进行处理.提取信息并对其做出回应.传统上,文本分析方法使用基于统计模式的算法,如TF-IDF. ...

  8. 花书+吴恩达深度学习(十七)序列模型之长短期记忆 LSTM 和门控循环单元 GRU

    目录 0. 前言 1. 长短期记忆 LSTM 2. 门控循环单元 GRU 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十五)序列模型之循环神经网络 ...

  9. 【吴恩达deeplearning.ai】Course 5 - 1.9 GRU 单元(门控循环单元)

    GRU 单元 (Gated Recurrent Unit (GRU)) 你已经了解了基础的RNN模型的运行机制,在本节视频中你将会学习门控循环单元,它改变了RNN的隐藏层,使其可以更好地捕捉深层连接, ...

  10. GRU门控循环单元读书笔记

    文章目录 1. 概述 2. GRU关键组件 2.1 门 2.2 候选隐藏状态H~t\widetilde{H}_tHt​ 2.3 隐状态 HtH_tHt​ 2.4 小结 3. 代码 4. torch.n ...

最新文章

  1. 关于Jfinal的分享代码托管GitHub
  2. [数据结构复习]树_二叉树
  3. java提供两种处理异常的机制_浅析Java异常处理机制
  4. oss https 代理
  5. Java 编程的动态性,第3部分: 应用反射--转载
  6. [Teaching] [Silverlight] 用 Silverlight 一起開發Kuso小遊戲《捏氣泡》- 設計人員篇
  7. 制作五彩纸屑转场动效_何时以及如何将五彩纸屑添加到产品UI
  8. 软件设计师09-面向对象-用例图
  9. mysql 5.7 差异备份_MySQL 5.7 新备份工具mysqlpump 使用说明 - 运维小结
  10. 基于生成对抗的知识图谱零样本关系学习 AAAI2020
  11. 突发!贾跃亭或将申请个人破产重组
  12. win7 自带计算机(for programmer)
  13. 源泉设计cad插件下载 | 含源泉cad插件使用教程
  14. C语言比赛评分系统报告,c语言编程:本课题模拟一个简单的比赛评分系统,选手从1号开始连续编号,选手得分分为专业素质得分和综...
  15. linux打印机无法识别usb设备,佳能LBP2900打印机驱动安装使用 USB无法识别的解决方法步骤...
  16. android备份手机号码,简单四步 完成Android手机通讯录云备份操作
  17. Nape的回调系统 nape.callbacks
  18. 三国杀网页版普通服务器怎么进,就想知道老服怎么进_三国杀Online_玩家社区_三国杀官方社区 - Powered by Discuz!...
  19. 北大AI公开课第五课--深度学习处理器by寒武纪陈云霁
  20. linux下的go富集分析,GO富集分析

热门文章

  1. 微信发送视频不被压缩的方法
  2. 互联网世界的神奇逻辑
  3. Hbuildx打包ios自定义基座
  4. java语音输入_求教:javaWeb,添加语音输入的功能实现方法
  5. Crow:hello world
  6. Parse 教程:网络后台基础
  7. 【性能优化】-多线程实现百万级导出/导入到excel
  8. 全宇宙第一编辑器VS Code搭配Markdown打造云端笔记(一)
  9. for in 用法
  10. 神经网络与深度学习(一)——机器学习基础