循环神经网络是一类常用在序列数据上的人工神经网络。三种最常见的循环神经网络分别是:

1.维尼拉循环神经网络(vanilla RNN)

2.长短期记忆网络(LSTM),由Hochreiter和Schmidhuber于1997年提出

3.门控循环单元网络(GRU),由Cho等人于2014年提出

现在可以查到许多解释循环神经网络这一概念的图示。不过我个人比较推荐的是Michael Nguyen在《迈向数据科学》上发表的这篇文章,因为这篇文章撰写了关于这些模型的很多知识,而且提供了清楚易懂的插图,易于读者理解。这篇文章目的是启发大家思考如何更好地可视化这些单元中发生的情况,节点是如何共享的,以及它们怎么转换为输出节点这些问题。Michael 的精彩动画也给了我很大的启发,从中受益匪浅。

本文主要研究了维尼拉循环神经(RNN)、长短期记忆(LSTM)和门控循环单元(GRU)这三个网络,介绍的比较简短,适用于已经了解过这几个网络的读者(并且建议在阅读本文之前阅读Michael的文章)。请读者注意,下面的动画是按顺序排列的,读者请依序查看。

如下图所示,是我用来做插图的图例。

在所演示的动画中,我使用了3(绿色)和2个隐藏单元(红色)的输入大小,批处理大小为1。

演示如下:

Vanilla RNN

Fig. 1: Animated RNN cell

* t — time step 时间步长

* X — input 输入

* h — hidden state 隐藏状态

* length of X — size/dimension of input   X的长度表示输入的大小,尺寸

* length of h — no. of hidden units.  h的长度表示不属于隐蔽的单位

注意,不同的库可以用不同的方式调用它们,但它们的含义都是相同的。

- Keras — state_size ,units

- PyTorch — hidden_size

- TensorFlow — num_units

LSTM

Fig. 2: Animated LSTM cell

* C — cell state

注意,单元格状态的维度与隐藏状态的维度相同。

GRU

Fig. 3: Animated GRU cell

希望这些动画片对你有所帮助!以下是静态图像中的单元格的概述:

非常感谢德里克和任杰对本文的想法、建议和纠正。

如果您想继续了解人工智能和深度学习,可以在Twitter@remykarem上阅读我写的关于这些的摘要文章和演示。

原文链接
本文为云栖社区原创内容,未经允许不得转载。

GIF动画解析RNN,LSTM,GRU相关推荐

  1. ​​​​​​​DL之RNN/LSTM/GRU:RNN/LSTM/GRU算法动图对比、TF代码定义之详细攻略

    DL之RNN/LSTM/GRU:RNN/LSTM/GRU算法动图对比.TF代码定义之详细攻略 目录 RNN.LSTM.GRU算法对比 1.RNN/LSTM/GRU对比 2.RNN/LSTM/GRU动图 ...

  2. DL之LSTM:LSTM算法论文简介(原理、关键步骤、RNN/LSTM/GRU比较、单层和多层的LSTM)、案例应用之详细攻略

    DL之LSTM:LSTM算法论文简介(原理.关键步骤.RNN/LSTM/GRU比较.单层和多层的LSTM).案例应用之详细攻略 目录 LSTM算法简介 1.LSTM算法论文 1.1.LSTM算法相关论 ...

  3. RNN LSTM GRU 代码实战 ---- 简单的文本生成任务

    RNN LSTM GRU 代码实战 ---- 简单的文本生成任务 import torch if torch.cuda.is_available():# Tell PyTorch to use the ...

  4. RNN, LSTM, GRU, SRU, Multi-Dimensional LSTM, Grid LSTM, Graph LSTM系列解读

    RNN/Stacked RNN rnn一般根据输入和输出的数目分为5种 一对一 最简单的rnn 一对多 Image Captioning(image -> sequence of words) ...

  5. RNN,LSTM,GRU计算方式及优缺点

    本文主要参考李宏毅老师的视频介绍RNN相关知识,主要包括两个部分: 分别介绍Navie RNN,LSTM,GRU的结构 对比这三者的优缺点 1.RNN,LSTM,GRU结构及计算方式 1.1 Navi ...

  6. 图解 RNN, LSTM, GRU

    参考: Illustrated Guide to Recurrent Neural Networks Illustrated Guide to LSTM's and GRU's: A step by ...

  7. RNN,LSTM,GRU基本原理的个人理解重点

    20210626 循环神经网络_霜叶的博客-CSDN博客 LSTM的理解 - 走看看 重点 深入LSTM结构 首先使用LSTM的当前输入 (x^t)和上一个状态传递下来的 (h^{t-1}) 拼接训练 ...

  8. [PyTorch] rnn,lstm,gru中输入输出维度

    本文中的RNN泛指LSTM,GRU等等 CNN中和RNN中batchSize的默认位置是不同的. CNN中:batchsize的位置是position 0. RNN中:batchsize的位置是pos ...

  9. 序列模型简介——RNN, Bidirectional RNN, LSTM, GRU

    既然我们已经有了前馈网络和CNN,为什么我们还需要序列模型呢?这些模型的问题在于,当给定一系列的数据时,它们表现的性能很差.序列数据的一个例子是音频的剪辑,其中包含一系列的人说过的话.另一个例子是英文 ...

最新文章

  1. 用看板工具leangoo做人事招聘
  2. hibernate 集合类(Collections)映射
  3. IPC进程间通信 D-Bus(Desktop Bus)快速入门(以libdbus-glib库为例)
  4. c# MEF框架(四 见证奇迹的时刻之实战应用)
  5. yui3 html属性,YUI Rich Editor + invalidHTML + style
  6. http sxyk.cdn_Discuz x3 开启cdn和https后链接修改教程
  7. C语言:斗地主发牌程序
  8. C/C++排序算法(4)快速排序
  9. 每日一句20191228
  10. papers for mac 破解版永久激活方法
  11. 统计学中常被误用的分析方法
  12. jq ui autocomplete的使用
  13. 在css表格怎么居中对齐,css居中和对齐方法集锦
  14. ArcGIS数据编辑操作
  15. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
  16. 荣耀终端android面试,华为终端面试经验
  17. int为什么是-32768到32767
  18. Android照片墙应用实现,再多的图片也不怕崩溃
  19. php unpack 原理,unpack
  20. HyperLedger Fabric - 超级账本(8)Node测试

热门文章

  1. django models索引_sql – 为什么Django显式地在唯一字段上创建索引
  2. 华为服务器sn号查询网站,linux 查询服务器sn
  3. python enumerate函数_Python中enumerate函数用法详解
  4. c++数据结构中 顺序队列的队首队尾_数据结构与算法—队列详解
  5. leetcode32 --- longestValidParentheses
  6. 深信服python面试题_(完整版)往年的深信服笔试题(齐全)
  7. 安卓开发怎么调用photopicker_谷歌出手整顿安卓应用程序乱象:无良权限的APP们再见了!...
  8. php 上一条下一条,thinkPhp里添加显示上一条和下一条
  9. python中空字符串的布尔值是什么_Python的布尔值与空值
  10. 爱因斯坦一生最伟大的问候