Keras關於LSTM的units參數解釋

LSTM(units,input_shape(3,1)),這裏的units指的是cell的個數麼?如果是,按照LSTM原理這些cell之間應該是無連接的,那units的多少其意義是什麼呢,是不是相當於MLP裏面對應隱層的神經元個數,只是爲了擴展系統的輸出能力?

 

 

可以看到中間的 cell 裏面有四個黃色小框,你如果理解了那個代表的含義一切就明白了,每一個小黃框代表一個前饋網絡層,對,就是經典的神經網絡的結構,num_units就是這個層的隱藏神經元個數,就這麼簡單。其中1、2、4的激活函數是 sigmoid,第三個的激活函數是 tanh。

 

另外幾個需要注意的地方:

1、 cell 的狀態是一個向量,是有多個值的。。。一開始沒有理解這點的時候怎麼都想不明白

2、 上一次的狀態 h(t-1)是怎麼和下一次的輸入 x(t) 結合(concat)起來的,這也是很多資料沒有明白講的地方,也很簡單,concat, 直白的說就是把二者直接拼起來,比如 x是28位的向量,h(t-1)是128位的,那麼拼起來就是156位的向量,就是這麼簡單。。

3、 cell 的權重是共享的,這是什麼意思呢?這是指這張圖片上有三個綠色的大框,代表三個 cell 對吧,但是實際上,它只是代表了一個 cell 在不同時序時候的狀態,所有的數據只會通過一個 cell,然後不斷更新它的權重。

4、那麼一層的 LSTM 的參數有多少個?根據第 3 點的說明,我們知道參數的數量是由 cell 的數量決定的,這裏只有一個 cell,所以參數的數量就是這個 cell 裏面用到的參數個數。假設 num_units 是128,輸入是28位的,那麼根據上面的第 2 點,可以得到,四個小黃框的參數一共有 (128+28)*(128*4),也就是156 * 512,可以看看 TensorFlow 的最簡單的 LSTM 的案例,中間層的參數就是這樣,不過還要加上輸出的時候的激活函數的參數,假設是10個類的話,就是128*10的 W 參數和10個bias 參數

5、cell 最上面的一條線的狀態即 s(t) 代表了長時記憶,而下面的 h(t)則代表了工作記憶或短時記憶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章