RNN和LSTM GRU的簡單理解

2021-08-14 20:36:02 字數 2076 閱讀 2941

rnn迴圈神經網路,recurrent neural networks

1,rnns已經在眾多自然語言處理(natural language processing, nlp)中取得了巨大成功以及廣泛應用,如語言模型與文字生成,機器翻譯,語音識別,

2,rnns的目的是用來處理序列資料,rnn中乙個序列當前的輸出與前面時刻的輸出也有關(結合前面的狀態、當前的記憶與當前的輸入)。具體的表現形式為rnn網路會對前面的資訊進行記憶並應用於當前輸出的計算中。傳統的神經網路模型中,是從輸入層到隱含層再到輸出層,層與層之間是全連線的,每層之間的節點是無連線的

3,rnn的訓練:

在使用梯度下降演算法中,每一步的輸出不僅依賴當前步的網路,並且還依賴前面若干步網路的狀態

該學習演算法稱為backpropagation through time (bptt)

bptt無法解決長時依賴問題(即當前的輸出與前面很長的一段序列有關,一般超過十步就無能為力了),因為bptt會帶來所謂的梯度消失或梯度**問題(the vanishing/exploding gradient problem),,

梯度**相對比較好處理,可以用梯度裁剪(gradientclipping)來解決

vanilla rnn是最簡單迴圈神經網路

4,lstm netwoorks

4.1lstm目前非常流行。它與一般的rnns結構本質上並沒有什麼不同,只是使用了不同的函式去計算隱藏層的狀態。

4.2在lstms中,記憶結構被稱為cells,可以把cells看作是黑盒用以儲存當前輸入之前儲存的狀態,結合前面的狀態、當前的記憶與當前的輸入

4.3lstm 有通過精心設計的稱作為「門」的結構來去除或者增加資訊到達細胞狀態的能力。門是一種讓資訊選擇式通過的方法。他們包含乙個 sigmoid 神經網路層和乙個 pointwise 乘法操作

sigmoid 層輸出 0 到 1 之間的數值,描述每個部分有多少量可以通過。0 代表「不許任何量通過」,1 就指「允許任意量通過」

4.4lstm 擁有三個門,來保護和控制細胞狀態

忘記門:將細胞狀態中的資訊選擇性的遺忘 ,回到語言模型的例子中來基於已經看到的**下乙個詞。在這個問題中,細胞狀態可能包含當前主語的類別,因此正確的代詞可以被選擇出來。當我們看到新的主語,我們希望忘記舊的主語。 

輸入層門:將新的資訊選擇性的記錄到細胞狀態中 .希望增加新的主語的類別到細胞狀態中,來替代舊的需要忘記的主語。 他今天有事,所以我。。。。當處理到『』我『』這個詞的時候,就會把主語我更新到細胞中去。

輸出層門:

從記憶單元ct產生隱層單元ht(下一層),ct可能包含了很多對ht無用的資訊,ot的作用就是判斷ct中哪些部分是對ht有用的,哪些部分是無用的

5,gated recurrent unit (gru)

grus就是lstm的乙個變體,它將忘記門和輸入門合成了乙個單一的 更新門。同樣還混合了細胞狀態和隱藏狀態,和其他一些改動。最終的模型比標準的 lstm 模型要簡單,也是非常流行的變體。

它也是一般的rnns的改良版本,主要是從以下兩個方面進行改進。一是,序列中不同的位置處的單詞(已單詞舉例)對當前的隱藏層的狀態的影響不同,越前面的影響越小,即每個前面狀態對當前的影響進行了距離加權,距離越遠,權值越小。二是,在產生誤差error時,誤差可能是由某乙個或者幾個單詞而引發的,所以應當僅僅對對應的單詞weight進行更新

6,lstms與grus的區別

newmemory的計算方法都是根據之前的state及input進行計算,但是grus中有乙個reset gate控制之前state的進入量,而在lstms裡沒有這個gate;

產生新的state的方式不同,lstms有兩個不同的gate,分別是forget gate (f gate)和input gate(i gate),而grus只有乙個update gate(z gate);

lstms對新產生的state又乙個output gate(o gate)可以調節大小,而grus直接輸出無任何調節。

BP演算法和RNN 雙向RNN的理解

我們在學習某種神經網路模型時,一定要把如下幾點理解透了,才算真正理解了這種神經網路。網路的架構 包含那些層,每層的輸入和輸出,有那些模型引數是待優化的 前向傳播演算法 損失函式的定義 後向傳播演算法 什麼情況下認為是發現了過擬合,怎麼進行優化。很多介紹深度學習的書籍,在介紹全連線神經網路時,對這幾個...

cookie和session的個人簡單理解

瀏覽器 客戶端發起請求 伺服器響應 setcookie要求瀏覽器 客戶端生成乙個cookie 瀏覽器 客戶端儲存cookie,並在下次請求中在請求頭中傳送這個cookie 伺服器識別這個瀏覽器發來的cookie,證明是同一使用者 這個使用者請求相同的伺服器都會傳送這一cookie重複3 5步,伺服器...

關於session和cookie的簡單理解

0.引子,我們為什麼要cookie和session 因為http請求是無狀態的 不能記錄使用者的登入狀態等 所以需要某種機制來儲存使用者的登入狀態等資訊,在下次訪問web服務的時候,不用再次校驗是否登入等狀態,session機制和cookie機制分別是在服程式設計客棧務器端和瀏覽器端的解決方案。1....