【深度學(xué)習(xí)】人人都能看懂的LSTM
共 8352字,需瀏覽 17分鐘
·
2024-04-30 12:00
0. 從RNN說起
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是一種用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。相比一般的神經(jīng)網(wǎng)絡(luò)來說,他能夠處理序列變化的數(shù)據(jù)。比如某個單詞的意思會因為上文提到的內(nèi)容不同而有不同的含義,RNN就能夠很好地解決這類問題。
1. 普通RNN
先簡單介紹一下一般的RNN。其主要形式如下圖所示(圖片均來自臺大李宏毅教授的PPT):
通過上圖的公式可以看到,輸出 h' 與 x 和 h 的值都相關(guān)。
而 y 則常常使用 h' 投入到一個線性層(主要是進行維度映射)然后使用softmax進行分類得到需要的數(shù)據(jù)。
對這里的y如何通過 h' 計算得到往往看具體模型的使用方式。
2. LSTM
2.1 什么是LSTM
長短期記憶(Long short-term memory, LSTM)是一種特殊的RNN,主要是為了解決長序列訓(xùn)練過程中的梯度消失和梯度爆炸問題。簡單來說,就是相比普通的RNN,LSTM能夠在更長的序列中有更好的表現(xiàn)。
LSTM結(jié)構(gòu)(圖右)和普通RNN的主要輸入輸出區(qū)別如下所示。
相比RNN只有一個傳遞狀態(tài)
其中對于傳遞下去的
而
2.2 深入LSTM結(jié)構(gòu)
下面具體對LSTM的內(nèi)部結(jié)構(gòu)來進行剖析。
首先使用LSTM的當(dāng)前輸入
其中
下面開始進一步介紹這四個狀態(tài)在LSTM內(nèi)部的使用(敲黑板)
LSTM內(nèi)部主要有三個階段:
1. 忘記階段。這個階段主要是對上一個節(jié)點傳進來的輸入進行選擇性忘記。簡單來說就是會 “忘記不重要的,記住重要的”。
具體來說是通過計算得到的
2. 選擇記憶階段。這個階段將這個階段的輸入有選擇性地進行“記憶”。主要是會對輸入
將上面兩步得到的結(jié)果相加,即可得到傳輸給下一個狀態(tài)的。也就是上圖中的第一個公式。
與普通RNN類似,輸出
3. 總結(jié)
以上,就是LSTM的內(nèi)部結(jié)構(gòu)。通過門控狀態(tài)來控制傳輸狀態(tài),記住需要長時間記憶的,忘記不重要的信息;而不像普通的RNN那樣只能夠“呆萌”地僅有一種記憶疊加方式。對很多需要“長期記憶”的任務(wù)來說,尤其好用。
但也因為引入了很多內(nèi)容,導(dǎo)致參數(shù)變多,也使得訓(xùn)練難度加大了很多。因此很多時候我們往往會使用效果和LSTM相當(dāng)?shù)珔?shù)更少的GRU來構(gòu)建大訓(xùn)練量的模型。
往期精彩回顧
交流群
歡迎加入機器學(xué)習(xí)愛好者微信群一起和同行交流,目前有機器學(xué)習(xí)交流群、博士群、博士申報交流、CV、NLP等微信群,請掃描下面的微信號加群,備注:”昵稱-學(xué)校/公司-研究方向“,例如:”張小明-浙大-CV“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~(也可以加入機器學(xué)習(xí)交流qq群772479961)
