LSTM和GRU聯絡以及區別

2021-09-27 09:28:49 字數 1257 閱讀 2554

為什麼會出現lstm

基於rnn的缺點:當輸入序列較長時rnn很難把較早的資訊傳遞到後面,出現這個問題的原因是在反向傳播期間,rnn的梯度可能會消失。我們都知道,網路權重更新依賴梯度計算,rnn的梯度會隨著時間的推移逐漸減小,當序列足夠長時,梯度值會變得非常小,這時權重無法更新,網路自然會停止學習。

lstm和gru都是為了解決短期記憶問題而建立的,其中包含「控制門」,可調節資訊流。

tanh啟用函式:它能把值始終約束在-1到1之間

sigmoid函式:每個門都包含sigmoid啟用,它和tanh的主要區別是取值範圍在0到1之間,而不是-1到1。這個特點有助於在cell中更新、去除資料,因為任何數字乘以0都是0(遺忘),任何數字乘以1都等於它本身(保留)。由於值域是0到1,神經網路也能計算、比較哪些資料更重要,哪些更不重要。

遺忘門、輸入門、輸出門

遺忘門:這個門決定應該丟棄哪些資訊。當來自先前隱藏狀態的資訊和來自當前輸入的資訊進入cell時,它們經sigmoid函式啟用,向量的各個值介於0-1之間。越接近0意味著越容易被忘記,越接近1則越容易被保留。

輸入門:它是更新cell狀態的重要步驟。如下圖所示,首先,我們把先前隱藏狀態和當前輸入傳遞給sigmoid函式,由它計算出哪些值更重要(接近1),哪些值不重要(接近0)。其次,同一時間,我們也把原隱藏狀態和當前輸入傳遞給tanh函式,由它把向量的值推到-1和1之間,防止神經網路數值過大。最後,我們再把tanh的輸出與sigmoid的輸出相乘,由後者決定對於保持tanh的輸出,原隱藏狀態和當前輸入中的哪些資訊是重要的,哪些是不重要的

輸出門:它決定了下乙個隱藏狀態應該是什麼隱藏狀態和cell狀態不同,它包含有關先前輸入的資訊,神經網路的**結果也正是基於它。如下圖所示,首先,我們將先前隱藏狀態和當前輸入傳遞給sigmoid函式,其次,我們再更新後的cell狀態傳遞給tanh函式。最後,將這兩個啟用函式的輸出相乘,得到可以轉移到下一時間步的新隱藏狀態

lstm的乙個變種,區別是它擺脫了cell狀態,直接用隱藏狀態傳遞資訊。gru只有兩個門:重置門和更新門。

更新門:更新門的作用類似lstm的遺忘門和輸入門,它決定要丟棄的資訊和要新新增的資訊

重置門:決定要丟棄多少之前的資訊。

lstm和gru之間的區別

gru和lstm的效能在很多任務上不分伯仲。

gru 引數更少因此更容易收斂,但是資料集很大的情況下,lstm表達效能更好。

從結構上來說,gru只有兩個門,lstm有三個門,gru直接將hidden state 傳給下乙個單元,而lstm則用memory cell 把hidden state 包裝起來。

GRU和LSTM結構對比

1.2 模型結構 降低了整體的模型引數,因為所有steps都共享相同的引數 在nlp領域有著很廣泛的應用 將rnn模型展開形式類似於dnn模型,只是在每個輸入step都共享相同的引數變數,如下圖所示 在1990年,由jefrey elman提出的網路是最早的簡單的迴圈神經網路,以及後面jordan提...

和 區別和聯絡, 和 區別和聯絡

和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...

測試種類以及區別和聯絡

其實,如果有人直接問你測試的種類有哪些的話,這樣的問題是夠。的。因為測試的種類按照不同的屬性或者說劃分角度,劃分的是不同的。比如說 1.按測試的階段分類 軟體測試可分為單元測試 整合測試,系統測試和驗收測試。單元測試 針對每個單元的測試,以確保每個模組能正常工作為目標。多為開發人員自己進行 確認 有...