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)行。

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

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

2)信息更新門(輸入門):
?將新的信息選擇性的記錄到細(xì)胞狀態(tài)中 ,決定放什么新信息到"細(xì)胞狀態(tài)"中。
?更新門中包含兩個(gè)部分:
??Sigmoid層稱 ‘輸入門層’ ,決定什么值需要更新;(即增加想要特征信息的權(quán)重)
??Tanh層創(chuàng)建一個(gè)新的候選向量,這個(gè)向量會(huì)被加入到細(xì)胞狀態(tài)中。(即創(chuàng)建一個(gè)需要增加到細(xì)胞狀態(tài)中的特征信息向量)

就可以確定傳遞信息的刪除和增加,即進(jìn)行細(xì)胞狀態(tài)的更新了。
- 更新
為
- 將舊狀態(tài)與
相乘,丟掉不想要的信息
- 加上新的候選信息
- 得到最終更新后的細(xì)胞狀態(tài)
細(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門的輸出相乘,輸出 程序確定輸出的部分。

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

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

2)GRU公式
?:更新門
?:重置門
?:決定從之前細(xì)胞狀態(tài)中保留(抽取)多少信息
?:決定接受多少的新信息放入當(dāng)前細(xì)胞狀態(tài)
中
?:當(dāng)前時(shí)刻的細(xì)胞狀態(tài)。百分之多少的內(nèi)容從舊的信息中抽取,百分之多少的內(nèi)容從新的信息中抽取。
