在使用反向傳播(Elman,1990)訓(xùn)練第一個(gè) Elman 式 RNN 后不久,學(xué)習(xí)長(zhǎng)期依賴性(由于梯度消失和爆炸)的問題變得突出,Bengio 和 Hochreiter 討論了這個(gè)問題 (Bengio等人, 1994 年,Hochreiter等人,2001 年). Hochreiter 早在他 1991 年的碩士論文中就闡明了這個(gè)問題,盡管結(jié)果并不廣為人知,因?yàn)檎撐氖怯玫抡Z寫的。雖然梯度裁剪有助于梯度爆炸,但處理消失的梯度似乎需要更精細(xì)的解決方案。Hochreiter 和 Schmidhuber ( 1997 )提出的長(zhǎng)短期記憶 (LSTM) 模型是解決梯度消失問題的第一個(gè)也是最成功的技術(shù)之一。LSTM 類似于標(biāo)準(zhǔn)的遞歸神經(jīng)網(wǎng)絡(luò),但這里每個(gè)普通的遞歸節(jié)點(diǎn)都被一個(gè)記憶單元取代。每個(gè)存儲(chǔ)單元包含一個(gè)內(nèi)部狀態(tài),即具有固定權(quán)重 1 的自連接循環(huán)邊的節(jié)點(diǎn),確保梯度可以跨越多個(gè)時(shí)間步而不會(huì)消失或爆炸。
“長(zhǎng)短期記憶”一詞來自以下直覺。簡(jiǎn)單的遞歸神經(jīng)網(wǎng)絡(luò)具有權(quán)重形式的長(zhǎng)期記憶。權(quán)重在訓(xùn)練過程中緩慢變化,對(duì)數(shù)據(jù)的一般知識(shí)進(jìn)行編碼。它們還具有短暫激活形式的短期記憶,從每個(gè)節(jié)點(diǎn)傳遞到連續(xù)的節(jié)點(diǎn)。LSTM 模型通過記憶單元引入了一種中間類型的存儲(chǔ)。存儲(chǔ)單元是一個(gè)復(fù)合單元,由具有特定連接模式的較簡(jiǎn)單節(jié)點(diǎn)構(gòu)成,并包含新的乘法節(jié)點(diǎn)。
import tensorflow as tf
from d2l import tensorflow as d2l
10.1.1。門控存儲(chǔ)單元
每個(gè)存儲(chǔ)單元都配備了一個(gè)內(nèi)部狀態(tài)和多個(gè)乘法門,用于確定 (i) 給定的輸入是否應(yīng)該影響內(nèi)部狀態(tài)(輸入門),(ii) 內(nèi)部狀態(tài)是否應(yīng)該被刷新到0(遺忘門),以及 (iii) 應(yīng)該允許給定神經(jīng)元的內(nèi)部狀態(tài)影響細(xì)胞的輸出(輸出門)。
10.1.1.1。門控隱藏狀態(tài)
普通 RNN 和 LSTM 之間的主要區(qū)別在于后者支持隱藏狀態(tài)的門控。這意味著我們有專門的機(jī)制來確定何時(shí)應(yīng)該更新隱藏狀態(tài)以及何時(shí)應(yīng)該重置它。這些機(jī)制是學(xué)習(xí)的,它們解決了上面列出的問題。例如,如果第一個(gè)標(biāo)記非常重要,我們將學(xué)習(xí)在第一次觀察后不更新隱藏狀態(tài)。同樣,我們將學(xué)會(huì)跳過不相關(guān)的臨時(shí)觀察。最后,我們將學(xué)習(xí)在需要時(shí)重置潛在狀態(tài)。我們將在下面詳細(xì)討論。
10.1.1.2。輸入門、遺忘門和輸出門
進(jìn)入 LSTM 門的數(shù)據(jù)是當(dāng)前時(shí)間步的輸入和前一時(shí)間步的隱藏狀態(tài),如圖 10.1.1所示。三個(gè)具有 sigmoid 激活函數(shù)的全連接層計(jì)算輸入門、遺忘門和輸出門的值。作為 sigmoid 激活的結(jié)果,三個(gè)門的所有值都在范圍內(nèi)(0,1). 此外,我們需要一個(gè) 輸入節(jié)點(diǎn),通常使用tanh激活函數(shù)計(jì)算。直觀上,輸入門決定了輸入節(jié)點(diǎn)的多少值應(yīng)該添加到當(dāng)前存儲(chǔ)單元的內(nèi)部狀態(tài)。遺忘 門決定是保留內(nèi)存的當(dāng)前值還是刷新內(nèi)存。而輸出門決定了記憶單元是否應(yīng)該影響當(dāng)前時(shí)間步的輸出。
在數(shù)學(xué)上,假設(shè)有h隱藏單元,批量大小為n,輸入的數(shù)量是d. 因此,輸入是Xt∈Rn×d上一個(gè)時(shí)間步的隱藏狀態(tài)是 Ht?1∈Rn×h. 相應(yīng)地,時(shí)間步長(zhǎng)的門t定義如下:輸入門是It∈Rn×h, 遺忘門是 Ft∈Rn×h,輸出門是 Ot∈Rn×h. 它們的計(jì)算方式如下:
在哪里
評(píng)論
查看更多