RNN和LSTM、GRU的简单理解
生活随笔
收集整理的這篇文章主要介紹了
RNN和LSTM、GRU的简单理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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.1 LSTM目前非常流行。它與一般的RNNs結構本質上并沒有什么不同,只是使用了不同的函數去計算隱藏層的狀態。
4.2 在LSTMs中,記憶結構被稱為cells,可以把cells看作是黑盒用以保存當前輸入之前保存的狀態,結合前面的狀態、當前的記憶與當前的輸入
4.3 LSTM 有通過精心設計的稱作為“門”的結構來去除或者增加信息到達細胞狀態的能力。門是一種讓信息選擇式通過的方法。他們包含一個 sigmoid 神經網絡層和一個 pointwise 乘法操作
Sigmoid 層輸出 0 到 1 之間的數值,描述每個部分有多少量可以通過。0 代表“不許任何量通過”,1 就指“允許任意量通過”
4.4 LSTM 擁有三個門,來保護和控制細胞狀態
忘記門:將細胞狀態中的信息選擇性的遺忘 ,回到語言模型的例子中來基于已經看到的預測下一個詞。在這個問題中,細胞狀態可能包含當前主語的類別,因此正確的代詞可以被選擇出來。當我們看到新的主語,我們希望忘記舊的主語。?
輸入層門:將新的信息選擇性的記錄到細胞狀態中 .希望增加新的主語的類別到細胞狀態中,來替代舊的需要忘記的主語。 他今天有事,所以我。。。。當處理到‘’我‘’這個詞的時候,就會把主語我更新到細胞中去。
輸出層門:
從記憶單元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直接輸出無任何調節。
總結
以上是生活随笔為你收集整理的RNN和LSTM、GRU的简单理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020 年热门编程语言的发展方向
- 下一篇: 我就想加个索引,怎么就这么难?