1.gif
递归神经网络(RNN)是一类人工神经网络,通常与顺序数据一起使用。3种最常见的递归神经网络类型是

  1. 香草RNN,
  2. 长期短暂记忆(LSTM),由Hochreiter和Schmidhuber在1997年提出,和
  3. Cho 等人提出的门控复发单位(GRU)在2014年。 请注意,我将使用“RNN”来统一指代固有循环的神经网络架构,并使用“vanilla RNN”来指代最简单的递归神经网络架构,如图> 1所示。 有许多用于递归神经网络的图解图。我最喜欢的是迈克尔·阮(Michael Nguyen)在走向数据科学”(Towards Data Science)上发表的这篇文章,因为他为我们提供了对这些模型的直觉,更重要的是让我们更容易理解的美丽插图。但我的帖子背后的动机是更好地可视化在这些单元格中发生的事情,以及如何共享节点以及它们如何转换以给出输出节点。我的灵感来自迈克尔的精彩动画。
    本文探讨了香草RNN,LSTM和GRU细胞。这是一个简短的阅读,适用于那些阅读过这些主题的人。(我建议在阅读这篇文章之前阅读迈克尔的文章。)重要的是要注意以下动画是连续的,以引导人眼,但不反映矢量化机器计算期间的时间顺序。

    这是我用于插图的传奇。
    2.png
    在我的动画中,我使用的输入大小为3(绿色)和2个隐藏单位(红色),批量大小为1。
    让我们开始!

香草RNN

2.gif

  • 牛逼  -时间步
  • X - 输入
  • h - 隐藏状态
  • X的长度- 输入的尺寸/尺寸
  • h的长度- 没有。隐藏单位。需要注意的是不同的库调用它们不同,但它们的意思是一样的:
    - Keras - [state_size](https://keras.io/layers/recurrent/) - PyTorch -  - TensorFlow - [units](https://keras.io/layers/recurrent/#lstm)``[hidden_size](https://pytorch.org/docs/stable/nn.html#rnn)
    [num_units](https://www.tensorflow.org/api_docs/python/tf/nn/rnn_cell/BasicLSTMCell)

    LSTM

    3.gif

  • C - 细胞状态

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

GRU

4.gif
希望这些动画以某种方式帮助你!以下是静态图像中单元格的摘要:
7.png

图4:香草RNN细胞
8.png图5:LSTM细胞
9.png
图6:GRU细胞

深度学习相关文章

逐行Word2Vec实现(关于字嵌入)
带随机梯度下降的线性回归分步教程
10个梯度下降优化算法+备忘单
计算深度学习模型中的参数数量
Attn:插图注意