iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
1
Google Developers Machine Learning

Towards Tensorflow 2.0系列 第 16

[Day-16] RNN - LSTM介紹

今天我們來討論深度學習中,專門在Run時間序列型資料的網路模型 - Recurrent Neural Network (RNN),在之前所討論到DNN跟CNN模型,兩個均未納入時間序列性質於設計模型。因此,當遇到時間序列問題,大部分都會把時間的性質拿掉,變成特徵獨立的關性,再繼續做Prediction或者Classification的問題。例如像是語音翻譯或者股價預測等等的應用場景,都是前後有關聯的問題。RNN主要是透過將隱藏層的output存在Memory裡,當下次input資料進去train的時候,會同時考慮上一次存在Memory裡的值進行計算。
https://ithelp.ithome.com.tw/upload/images/20191001/20119971xoccpdLQ6p.png

其中,RNN模型中,最有名的就是Long short-term memory (LSTM)

LSTM (Long short-term memory)

https://ithelp.ithome.com.tw/upload/images/20191001/20119971fZrNfn0tVn.png

LSTM(Long short-term memory),主要改善了以前RNN的一些問題 (Ex: Memory的設計問題),而LSTM由四個unit組成: Input Gate、Output Gate、Memory Cell以及Forget Gate。
https://ithelp.ithome.com.tw/upload/images/20191001/20119971ToTCRtVWSu.png

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

而這些“控制”也都是網路中learnable的參數!

接下來我們來看一下實際一個cell的運作流程
https://ithelp.ithome.com.tw/upload/images/20191001/20119971lqLtJSWKl0.png
source:李教授投影片

當資料input進一個LSTM cells,數學上可表示為g(z),第一個先遇到的就是input gate,input gate會使用f(Zi) (Activation function f),來表示input gate開啟的機率。接下來遇到第二關會是,Memory cell,首先,先紀錄當下input值加上前一次Memory cell裡的值並乘上forget gate的機率,看是否要遺忘前一次紀錄 。最後一關就是output gate,output gate會確認是否把值放出,也是以機率的方式來使用。

LSTM 類型:

LSTM依照不同的input及output有一些基本的變化類型,如下圖:
https://ithelp.ithome.com.tw/upload/images/20191001/20119971so5PgWWJyP.png
source

以下針對常用的情境來方便大家更容易理解

  1. Many to One:
    就是多個時間點來預測下一個時間點 (Ex: 輸入: 一週股價,輸出: 下週一股價)

  2. Many to Many:
    多個具關聯的資料來預測下一個時間性或者下一個具關聯的資料 (Ex: 輸入: 英文句子,輸出: 中文句子)

除了input output的變化,LSTM也可以後面train回來 (Bidirectional LSTM),舉個例子來說,當有一個句子,一般的LSTM只會從前面掃過去,但Bidirectional LSTM除了從前面掃過去,也會從後面掃過來,類似從後文來回推前文。與一般的LSTM相比Bidirectional LSTM在一些語音辨識或者NLP應用上有更好的效果。但還是要注意應用場景上是否合乎資料邏輯 (Ex: 往回推的時候是否符合資料邏輯)
https://ithelp.ithome.com.tw/upload/images/20191001/20119971l0NPKQ7h1J.png

小結:

今天看完RNN - LSTM的部分,明天會來實作LSTM的應用。感謝大家漫長的閱讀~ 另外,今天Tesnoflow release了 2.0的stable版本!大家有興趣的話可以上官網看一下唷~Link

一天一梗圖:

https://ithelp.ithome.com.tw/upload/images/20191001/20119971jaUEdGtnpP.png
source

Reference

LSTM_paper

LSTM

LSTM_lecture


上一篇
[Day-15] CNN - ResNet 實作
下一篇
[Day-17] LSTM - Sentiment Analysis (Data: Twitter)
系列文
Towards Tensorflow 2.030
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言