iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
AI & Data

ROS新手挑戰AI&Data組系列 第 22

[AI#5]遞歸神經網路(RNN)

  • 分享至 

  • xImage
  •  

參考資料
1. 李弘毅的ML講義
2. [ML筆記] Recurrent Neural Network (RNN) - Part I Part II
3. Day 23:銷售量預測 -- LSTM 的另一個應用
4. [ML筆記] Why Deep ?

• 原理與架構說明
https://ithelp.ithome.com.tw/upload/images/20191006/20120406ZI34gyYf8R.png
https://ithelp.ithome.com.tw/upload/images/20191006/20120406ZyPNaPLzn9.png
#有其他長相的: Elman Network & Jordan Network & Bidirectional RNN
RNN就只是多一個儲存位置,用來暫存上一次的值?那如果要記得的值不是要取上一個呢?

• Gradient Vanish(梯度消失)
RNN-based network is not always easy to learn.
The error surface is rough.
https://ithelp.ithome.com.tw/upload/images/20191006/201204067w4Q4zFNH3.png
由舉例得知“w 在 0~0.99 之間變化,可能完全沒有造成影響;但 w 超過 1 後,只要一有影響,就是巨大的影響”
也就是會發生Gradient Vanish(梯度消失)或梯度爆炸的問題

#RNN中容易出現Gradient Vanishing是因為
1.在梯度在向後傳遞的時候,由於相同的矩陣相乘次數太多,梯度傾向於逐漸消失,導致後面的結點無法更新參數,整個學習過程無法正常進行
2.不適當的激活函數sigmoid,可改用relu或maxout
#而梯度爆炸的部分: 有一種暴力的方法就是,當梯度的大小超過某個閾值的時候,將其縮放到某個閾值
(或以下說明也可以改善Gradient Vanish)

• LSTM(Long Short-Term Memory)模型說明
https://ithelp.ithome.com.tw/upload/images/20191006/20120406WX5WmmIXMZ.png
https://ithelp.ithome.com.tw/upload/images/20191006/20120406NJ4TnhtCkh.png
當然還有其他有幫助的技術: Gated Recurrent Unit (GRU) 、Clockwise RNN 、Structurally Constrained Recurrent Network (SCRN)

• Early Stopping
目的: 在overfiting之前停下來,避免model weights被搞爛
參考: Learning Model : EarlyStopping介紹[轉錄]

• 應用說明:時間序列(Time series)、詞向量(word vector / word embedding)、自然語言處理(Nature language processing)、語音辨識

  1. 簡單的迴歸(Regression)有時候不太貼近現實,因此有了更複雜的''時間序列分析(Time Series Analysis)''來處理。當然,時間序列分析的模型因應問題的型態不同也有很多種:
    自迴歸模型 (AR, Autoregressive Models)、移動平均模型 (MA, Moving Average Models)、以及混合兩種的
    ARIMA(Autoregressive Integrated Moving Average)
    例子比較偏向金融,過程有點數學: 可參考 Time Series Analysis
  2. 詞向量(word vector / word embedding / representation)是近年在自然語言處理(Natural Language Processing, NLP)中被廣泛使用的一種技術
    簡單來說,就是把它定義成向量,就可以用之前所學的架構做後續動作
    參考: 自然語言處理入門- Word2vec小實作
    #Word Embedding將句子中每個字轉換為向量,但會因為句子過長導致向量(矩陣)超大(內含大量的0)
    ->而有了Word2vec,透過使每個字詞與前後字詞的向量相近,來訓練出含有每個字詞語義的字詞向量(字詞的層面獲得了不錯的成果),但會發生失去順序性的問題
    ->而又有了Doc2vec…
  3. 語音辨識
    https://ithelp.ithome.com.tw/upload/images/20191006/20120406m6WX8RCcjB.png
    傳統 :把連續的 feature 把它分成很多的 state,聲音訊號轉成 state 後再轉成 phoneme ,再根據 phoneme 去轉成文字
    V.s.
    現在: DNN 把所有個 state 通通用同一個 model 來做分類
    https://ithelp.ithome.com.tw/upload/images/20191006/20120406QA2Xokxl70.png
    參考: [ML筆記] Why Deep ?

• 主題實作:美國國際航空乘客量分析、情緒分析、中英翻譯


上一篇
[AI#4]卷積神經網路(CNN)
下一篇
[AI#6]遷移式學習(Transfer Learning)
系列文
ROS新手挑戰AI&Data組30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言