iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0

為了解決RNN梯度消失的問題,於是衍伸出LSTM,LSTM 一樣是把相同的結構重複,也就是 RNN Recurrent 的概念, LSTM 與 RNN 相似,能處理不同長度的 input 並轉換成同樣長度的 hidden state ,這些 hidden state 就可以再進一步的做各種運算,像是語言模型預測下一個詞、或是句子的翻譯等等。
https://ithelp.ithome.com.tw/upload/images/20201004/2013024635pyyncNB3.png

LSTM

LSTM由四個unit組成: Input Gate、Output Gate、Memory Cell以及Forget Gate。
https://ithelp.ithome.com.tw/upload/images/20201004/20130246s0hlhnhb7k.png

  1. Input Gate: 當資料輸入時,input gate可以控制是否將這次的值輸入,並運算數值
  2. Memory Cell: 將運算出的數值記憶起來,幫助下個cell運用
  3. Output Gate: 控制是否將這次計算出來的值output,若無此次輸出則為0
  4. Forget Gate: 控制是否將Memory清掉(format)

LSTM類型

https://ithelp.ithome.com.tw/upload/images/20201004/2013024694UnsrWgRX.png
http://karpathy.github.io/2015/05/21/rnn-effectiveness/

  1. Many to One:
    就是多個時間點來預測下一個時間點 (Ex: 輸入: 一週股價,輸出: 下週一股價)
  2. Many to Many:
    多個具關聯的資料來預測下一個時間性或者下一個具關聯的資料 (Ex: 輸入: 英文句子,輸出: 中文句子)
    在處理文字的每一個步驟(從第一個詞到最後一個詞),模型都有一個沿用基礎 RNN 的 hidden state 以及 LSTM 加入的 cell state ,memory cell 被用來儲存長期資訊。模型可以對這個 cell 進行三種操作:寫入、讀取以及遺忘,這三種操作分別由 input gate, output gate 與 forget gate 控制。這些閘門並不是只有開跟關兩種狀態,而是可以介於開與關之間的狀態!也就是並非 0 或 1 兩種可能,可以是任意小數。這些閘門的數值,也是經由學習而來。
    https://ithelp.ithome.com.tw/upload/images/20201004/20130246ixEDl4Hzq7.png
    http://colah.github.io/posts/2015-08-Understanding-LSTMS/
    參考
    https://www.coderbridge.com/@weifanhaha/2be54d939e0249f392eba159e5126e0b
    https://ithelp.ithome.com.tw/articles/10223055

上一篇
RNN介紹
下一篇
LSTM-預測股票(一)
系列文
Tensorflow2.030
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言