循環神經網絡是一類常用在序列資料上的人工神經網絡。三種最常見的循環神經網絡分别是:
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 RNNFig. 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 LSTMFig. 2: Animated LSTM cell
* C — cell state
注意,單元格狀态的次元與隐藏狀态的次元相同。
GRUFig. 3: Animated GRU cell
希望這些卡通片對你有所幫助!以下是靜态圖像中的單元格的概述:
Fig. 6: GRU cell
非常感謝德裡克和任傑對本文的想法、建議和糾正。
如果您想繼續了解人工智能和深度學習,可以在Twitter@remykarem上閱讀我寫的關于這些的摘要文章和示範。
作者資訊
Raimi Karim
本文由阿裡雲雲栖社群組織翻譯。
文章原标題《Animated RNN, LSTM and GRU Recueernt neural network cells in GIFs]》,譯者:麼凹,審校:Viola。
文章簡譯,更為詳細的内容,
請檢視原文。