詳解標準RNN、GRU和LSTM cell之間的區別
標準RNN cell狀態更新公式如下所示:
解釋:
RNN cell當前時刻的hidden state
由上一時刻的hidden state
和當前時刻的input vector
共同決定,RNN的訓練過程實際上是根據loss 調整
和
兩個引數矩陣的過程。
標準GRU cell狀態更新公式如下所示:
解釋:
1。
中的
表示sigmoid函式,
函式值域為
,其中
記為update gate,
記為reset gate。
2。
表示
Hadamard Product
,也就是操作矩陣中對應的元素相乘,因此要求兩個相乘矩陣是同型的。
3。
向量維度保持一致,但
向量元素值均處於
。
4。
為當前時刻的“中間-隱狀態”。當
為全1向量時,
與標準RNN cell的隱狀態更新(計算)方式保持一致。
In addition
, 當
為全0向量時,
。此時,
GRU cell退化成了標準的RNN cell。
5。 當
為全0向量時,
。此時, 當前時刻隱狀態
的更新結果是否包含上一個時刻的隱狀態
完全取決於update gate
的值。
6。 GRU的訓練過程實際上是根據loss 調整
引數矩陣的過程。
標準LSTM cell狀態更新公式如下所示:
解釋:
1。
中的
表示sigmoid函式,
函式值域為
,其中
記為input gate,
記為forget gate,
記為output gate。
2。
表示
Hadamard Product
,也就是操作矩陣中對應的元素相乘,因此要求兩個相乘矩陣是同型的。
記為“中間-記憶體狀態”,
記為最終記憶體狀態。
3。 當前時刻的 最終記憶體狀態
由forget gate 向量、上一時刻的最終記憶體狀態、input gate向量 和 當前時刻的“中間-記憶體狀態”共同決定。input gate決定當前時刻的輸入
和上一時刻的隱狀態
的資訊的保留部分,forget gate決定上一時刻的最終記憶體狀態資訊的保留部分。即可理解為:
是否忘記過去,是否保留當前輸入。
4。 而
起到的作用可以理解為:
在經歷過遺忘 和 保留輸入之後,是否將現有的資訊在當前時刻輸出
。因此,
。否則,直接
即可。
5。 LSTM的訓練過程就是根據loss更新
八個引數矩陣的過程。