GIF动画解析RNN,LSTM,GRU

摘要: 本文主要研究了维尼拉循环神经(RNN)、长短期记忆(LSTM)和门控循环单元(GRU)这三个网络,介绍的比较简短,适用于已经了解过这几个网络的读者阅读。

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

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

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

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

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

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

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

Fig. 0: Legend for animations

在所演示的动画中,我使用了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

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

Fig. 4: RNN cell

Fig. 5: LSTM cell

Fig. 6: GRU cell

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

原文链接

转载于:https://my.oschina.net/u/1464083/blog/2998177

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值