作者:Raimi Bin Karim編譯:ronghuaiyang
導讀
RNN, LSTM 和 GRU是3個非常常用的循環神經網絡,這三個東西裡面的內部結構又是什麼樣的呢,很多人可能並不清楚,不過除了RNN外,其他兩個也確實比較複雜,記不住沒關係,看總能看明白吧,看不明白也沒關係,動畫演示給你看!
循環神經網絡是一類人工神經網絡,常與序列數據一起使用。最常見的3種循環神經網絡是普通循環神經網絡(RNN)、長短時記憶(LSTM)和門控循環單元(GRU)。
有很多關於循環神經網絡的圖解。我個人最喜歡的是Michael Nguyen在這裡發表的那篇文章,因為他讓我們對這些模型有了直觀的認識,更重要的是,他的漂亮的插圖讓我們更容易理解。但我這篇文章背後的動機是更好地可視化這些單元中發生的事情,以及節點如何被共享,以及它們如何轉換以提供輸出節點。麥可的動畫也給了我靈感。
本文研究了普通的RNN、LSTM和GRU單元。這是一個簡短的文章,是給那些對這幾個東西有所了解的人準備的。(我建議在閱讀本文之前先閱讀Michael的文章。)需要注意的是,以下動畫是連續的,但不反映向量計算時的時間順序。
這是我在插圖中使用的圖例。
Fig. 0: 動畫中的圖例
在我的動畫中,我使用的輸入尺寸為3(綠色)和輸出尺寸為2的隱含單元(紅色),batch size為1。
我們開始!
RNN
Fig. 1: RNN cell的動畫
- t — 時間步
- X — 輸入
- h — 隱含狀態
- length of X — 輸入的尺寸/維度
- length of h — 隱含單元的數量,注意,不同的庫名字不一樣,但是含義是一樣的:
- - Keras — state_size,units
- - PyTorch — hidden_size
- - TensorFlow — num_units
LSTM
Fig. 2: LSTM cell的動畫
- C — cell 狀態
注意,cell狀態的維度和隱含狀態的維度是相同的
GRU
Fig. 3: GRU cell的動畫
希望這些動畫可以幫助到你,這裡是這些cells的靜態圖:
Fig. 4: RNN cell
Fig. 5: LSTM cell
Fig. 6: GRU cell
原文連結:
https://towardsdatascience.com/animated-rnn-lstm-and-gru-ef124d06cf45
更多文章,請關注微信公眾號:AI公園