递归神经网络(RNN)是一类人工神经网络,通常与顺序数据一起使用。3种最常见的递归神经网络类型是
- 香草RNN,
- 长期短暂记忆(LSTM),由Hochreiter和Schmidhuber在1997年提出,和
- Cho 等人提出的门控复发单位(GRU)。人在2014年。
请注意,我将使用“RNN”来统一指代固有循环的神经网络架构,并使用“vanilla RNN”来指代最简单的递归神经网络架构,如图> 1所示。
有许多用于递归神经网络的图解图。我最喜欢的是迈克尔·阮(Michael Nguyen)在“走向数据科学”(Towards Data Science)上发表的这篇文章,因为他为我们提供了对这些模型的直觉,更重要的是让我们更容易理解的美丽插图。但我的帖子背后的动机是更好地可视化在这些单元格中发生的事情,以及如何共享节点以及它们如何转换以给出输出节点。我的灵感来自迈克尔的精彩动画。
本文探讨了香草RNN,LSTM和GRU细胞。这是一个简短的阅读,适用于那些阅读过这些主题的人。(我建议在阅读这篇文章之前阅读迈克尔的文章。)重要的是要注意以下动画是连续的,以引导人眼,但不反映矢量化机器计算期间的时间顺序。
这是我用于插图的传奇。
在我的动画中,我使用的输入大小为3(绿色)和2个隐藏单位(红色),批量大小为1。
让我们开始!
香草RNN
- 牛逼 -时间步
- 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
C - 细胞状态
GRU
希望这些动画以某种方式帮助你!以下是静态图像中单元格的摘要:
深度学习相关文章
逐行Word2Vec实现(关于字嵌入)
带随机梯度下降的线性回归分步教程
10个梯度下降优化算法+备忘单
计算深度学习模型中的参数数量
Attn:插图注意