深度学习~循环神经网络RNN, LSTM
目錄
1. 循環神經網絡RNN
1.1 RNN出現背景
1.2 RNN概念
2. LSTM
2.1 LSTM出現背景
2.2?LSTM結構
參考
1. 循環神經網絡RNN
1.1 RNN出現背景
problem:傳統的神經網絡通常無法從先前的信息中進行推理。
solve:但是受人類記憶啟發的RNN可以通過添加一個循環來解決此問題,該循環允許信息從網絡的一個步驟傳遞到下一步驟。
1.2 RNN概念
循環神經網絡(Recurrent Neural Network,RNN)是一種用于處理序列數據的神經網絡。
相比一般的神經網絡來說,他能夠處理序列變化的數據。比如某個單詞的意思會因為上文提到的內容不同而有不同的含義,RNN就能夠很好地解決這類問題。
這里:
x為當前狀態下數據的輸入,??h表示接收到的上一個節點的輸入。
?y為當前節點狀態下的輸出,而h'為傳遞到下一個節點的輸出。
通過上圖的公式可以看到,輸出?h'?與?x?和?h?的值都相關。
而?y?則常常使用?h'?投入到一個線性層(主要是進行維度映射)然后使用softmax進行分類得到需要的數據。
對這里的y如何通過?h'?計算得到往往看具體模型的使用方式。
通過序列形式的輸入,我們能夠得到如下形式的RNN。
如圖8所示,RNN的循環過程描述了在時間范圍[1,t + 1]中的特定節點A。
在時間t的節點A接收兩個輸入變量:Xt表示在時間t的輸入,回流回路表示在時間[0,t1]的隱藏狀態,并且節點A在時間t導出變量ht。
在這種情況下,提出了長期短期記憶(LSTM)網絡,這是一種能夠學習長期依賴關系的特殊RNN。如圖8所示,
- LSTM單元接收三個輸入:當前時間t的輸入X,先前時間t -1的輸出h和代表先前時間t -1的隱藏狀態的輸入箭頭。
- LSTM單元輸出兩個輸出:輸出h和當前時間t的隱藏狀態(表示為向外箭頭)。
- LSTM單元包含四個門,即輸入門,輸出門,忘記門和輸入調制門,以通過操作以及S形和tanh函數控制數據流。
2. LSTM
2.1 LSTM出現背景
長短期記憶(Long short-term memory, LSTM)是一種特殊的RNN,
problem:為了解決長序列訓練過程中的梯度消失和梯度爆炸問題,因為當前的RNN僅查看最新信息以在實踐中執行當前任務,因此它無法保留長期依賴關系
solve:簡單來說,就是相比普通的RNN,LSTM是一種能夠學習長期依賴關系的特殊RNN,LSTM能夠在更長的序列中有更好的表現
相比RNN只有一個傳遞狀態,LSTM有兩個傳輸狀態,一個(cell state)和一個(hidden state)。
Tips:RNN中的對于LSTM中的。其中對于傳遞下去的改變得很慢,通常輸出的是上一個狀態傳過來的加上一些數值。
而則在不同節點下往往會有很大的區別。
2.2?LSTM結構
- 首先使用LSTM的當前輸入和上一個狀態傳遞下來的拼接訓練得到四個狀態。
?
其中,,,是由拼接向量乘以權重矩陣之后,再通過一個sigmoid激活函數轉換成0到1之間的數值,來作為一種門控狀態。而z則是將結果通過一個tanh激活函數將轉換成-1到1之間的值(這里使用tanh是因為這里是將其做為輸入數據,而不是門控信號)。
- 下面開始進一步介紹這四個狀態在LSTM內部的使用。(敲黑板)
是Hadamard Product,也就是操作矩陣中對應的元素相乘,因此要求兩個相乘矩陣是同型的。則代表進行矩陣加法。
-->哈達馬積(hadamard product):?兩個維度相同的矩陣相乘,得到另一個維數相同的矩陣
LSTM內部主要有三個階段:
1. 忘記階段。這個階段主要是對上一個節點傳進來的輸入進行選擇性忘記--簡單來說就是?“忘記不重要的,記住重要的”。
具體來說是通過計算得到的(f表示forget)來作為忘記門控,來控制上一個狀態的哪些需要留哪些需要忘。
2. 選擇記憶階段。這個階段將這個階段的輸入有選擇性地進行“記憶”。主要是會對輸入進行選擇記憶。哪些重要則著重記錄下來,哪些不重要,則少記一些。
當前的輸入內容由前面計算得到的z表示。而選擇的門控信號則是由(i代表information)來進行控制。
將上面兩步得到的結果相加,即可得到傳輸給下一個狀態的。也就是上圖中的第一個公式。
3. 輸出階段。這個階段將決定哪些將會被當成當前狀態的輸出。主要是通過來進行控制的。并且還對上一階段得到的進行了放縮(通過一個tanh激活函數進行變化)。
與普通RNN類似,輸出往往最終也是通過變化得到。
通過門控狀態來控制傳輸狀態,記住需要長時間記憶的,忘記不重要的信息;而不像普通的RNN那樣只能夠“呆萌”地僅有一種記憶疊加方式。對很多需要“長期記憶”的任務來說,尤其好用。
參考
臺大李宏毅教授的深度學習視頻~第一部分RNN尤其LSTM的介紹,https://blog.csdn.net/qq_15111861/article/details/95932902。
總結
以上是生活随笔為你收集整理的深度学习~循环神经网络RNN, LSTM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习~生成式对抗神经网络GAN
- 下一篇: 强化学习Reinforcement Le