動畫圖解RNN, LSTM 和 GRU,沒有比這個更直觀的了

2019-07-22     AI公園
作者: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公園

文章來源: https://twgreatdaily.com/zh-cn/ugVEW2wBUcHTFCnfOg7H.html