RNN學(xué)習(xí)筆記(二):LSTM

1.LSTM概述

?LSTM(Long Short Term Memory,長(zhǎng)短時(shí)記憶),是RNN的一種改進(jìn)網(wǎng)絡(luò)。普通RNN在解決長(zhǎng)時(shí)間依賴問(wèn)題時(shí),會(huì)存在信息丟失(梯度消失or梯度爆炸)等問(wèn)題,而LSTM為解決這個(gè)問(wèn)題應(yīng)運(yùn)而生。

2.LSTM與RNN的區(qū)別

?LSTM與RNN的網(wǎng)絡(luò)結(jié)構(gòu)大體一樣,只是每個(gè)隱狀態(tài)內(nèi)部存在差異,具體區(qū)別如下:

  • LSTM的"記憶細(xì)胞Cell"是改造過(guò)的
  • 想記錄的信息會(huì)一直傳遞,不想記錄的信息會(huì)被忘掉
3.LSTM的核心思想

?LSTM 的關(guān)鍵就是細(xì)胞狀態(tài),細(xì)胞狀態(tài)類似于傳送帶,直接在整個(gè)鏈上運(yùn)行,由于細(xì)胞狀態(tài)鏈上只有一些少量的線性交互,所以信息在上面流傳會(huì)很容易保持不變。
?細(xì)胞狀態(tài)會(huì)在如圖,水平線上方貫穿運(yùn)行。

細(xì)胞狀態(tài)傳送.png
4.LSTM網(wǎng)絡(luò)結(jié)構(gòu)

?LSTM是通過(guò)門結(jié)構(gòu)為細(xì)胞狀態(tài)刪除或者增加信息的,LSTM隱狀態(tài)中共有三個(gè)門,分別是:忘記門、更新門、輸出門。


LSTM中的隱狀態(tài).png

1)忘記門:
?將細(xì)胞狀態(tài)中的信息選擇性地遺忘 ,決定從"細(xì)胞狀態(tài)"中丟棄什么信息。
?忘記門會(huì)讀取輸入信息\left [ h_{t-1},x_{t} \right ],通過(guò)sigmoid轉(zhuǎn)換后,會(huì)輸出一個(gè)0到1之間的數(shù)值,用來(lái)控制上一時(shí)刻細(xì)胞狀態(tài)C_{t-1}中需要?jiǎng)h除or保留的信息。1表示”完全保留“,0表示”完全舍棄“。
f^{\left ( t \right )} = \sigma \left ( w_{f}\cdot h_{t-1}+u_{f}\cdot x_{t}+ b_{f}\right )

忘記門.png

2)信息更新門(輸入門):
?將新的信息選擇性的記錄到細(xì)胞狀態(tài)中 ,決定放什么新信息到"細(xì)胞狀態(tài)"中。
?更新門中包含兩個(gè)部分:
??Sigmoid層稱 ‘輸入門層’ ,決定什么值需要更新;(即增加想要特征信息的權(quán)重)
??Tanh層創(chuàng)建一個(gè)新的候選向量\widetilde{C_{t}},這個(gè)向量會(huì)被加入到細(xì)胞狀態(tài)中。(即創(chuàng)建一個(gè)需要增加到細(xì)胞狀態(tài)中的特征信息向量)
i^{\left ( t \right )} = \sigma \left ( w_{i}\cdot h_{t-1}+u_{i}\cdot x_{t}+ b_{i}\right ) \widetilde{C}^{\left ( t \right )} = tanh \left ( w_{C}\cdot h_{t-1}+u_{C}\cdot x_{t}+ b_{C}\right )

更新門.png

\color{red}{經(jīng)過(guò)第一個(gè)和第二個(gè)門后:}就可以確定傳遞信息的刪除和增加,即進(jìn)行細(xì)胞狀態(tài)的更新了。

  • 更新C_{t-1}C_{t}
  • 將舊狀態(tài)與f_{t}相乘,丟掉不想要的信息
  • 加上新的候選信息i_{t}*C_{t}
  • 得到最終更新后的細(xì)胞狀態(tài)
    C^{\left ( t \right )} = f^{\left ( t \right )}\cdot C^{\left ( t-1 \right )}+i^{\left ( t \right )}\cdot \widetilde{C}^{\left ( t \right )}
    細(xì)胞狀態(tài)更新.png

3)輸出門:
?基于更新后的”細(xì)胞狀態(tài)“得到輸出。

  • 首先運(yùn)行一個(gè)sigmoid層來(lái)確定細(xì)胞狀態(tài)的那個(gè)部分將輸出
  • 使用tanh處理細(xì)胞狀態(tài)得到一個(gè)-1到1之間的值,再將它和sigmoid門的輸出相乘,輸出 程序確定輸出的部分。

o^{\left ( t \right )} = \sigma \left ( w_{o}\cdot h_{t-1}+u_{o}\cdot x_{t}+ b_{o}\right ) h_{t} = o^{\left ( t \right )}*tanh\left ( C^{\left ( t \right )}\right )

輸出門.png

5. LSTM的應(yīng)用場(chǎng)景

  • 自然語(yǔ)言處理:語(yǔ)言模型與文本生成
  • 機(jī)器翻譯
  • 語(yǔ)音識(shí)別
  • 看圖說(shuō)話
  • 代碼生成
LSTM應(yīng)用場(chǎng)景.png

6.GRU

1)GRU結(jié)構(gòu)

  • 只有兩個(gè)門:更新門和重置門。
  • 將忘記門和輸入門合并為一個(gè)更新門
  • 同時(shí)合并了數(shù)據(jù)單元狀態(tài)和隱藏狀態(tài)
  • 結(jié)構(gòu)比LSTM更加簡(jiǎn)單,但效果卻與LSTM差不多
GRU細(xì)胞結(jié)構(gòu).png

2)GRU公式
\begin{align*}\label{2} & u^{\left ( t \right )} = \sigma \left ( w_{u}\cdot h_{ t-1}+u_{u}\cdot x_{t }+b_{u} \right )\\ & r^{\left ( t \right )} = \sigma \left ( w_{r}\cdot h_{ t-1}+u_{r}\cdot x_{t}+b_{r} \right )\\\\ & \widetilde{h^{\left ( t \right )}} = tanh\left ( w_{h} \cdot \left ( r^{\left ( t \right )}\cdot h_{t-1} \right )+u_{h}\cdot x_{t}+b_{h}\right )\\ & h_{t} = \left ( 1-u^{\left ( t \right )} \right )\cdot h_{t-1}+u^{\left ( t \right )}\cdot \widetilde{h^{\left ( t \right )}} \end{align*}

\color{red}{注釋:}
?u^{\left ( t \right )}:更新門
?r^{\left ( t \right )}:重置門
?r^{\left ( t \right )}:決定從之前細(xì)胞狀態(tài)中保留(抽取)多少信息
?\widetilde{h^{\left ( t \right )}}:決定接受多少的新信息放入當(dāng)前細(xì)胞狀態(tài)h_{t}
?h_{t}:當(dāng)前時(shí)刻的細(xì)胞狀態(tài)。百分之多少的內(nèi)容從舊的信息中抽取,百分之多少的內(nèi)容從新的信息中抽取。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容