2017年3月30日 星期四

[深度學習練習] [Deep Learning Practice] 神經網路入門(八)- 遞歸神經網路 X 基礎

這一集分享一下遞歸神經網路 ( Recurrent Neural Network )

簡稱為 RNN,對於和時間相關的學習非常強大,

可以拿來玩期貨、音樂或文意理解等之類和時間有強烈關係的主題。

------------------------------------------------------------------------------------------------------------

一、遞歸神經網路介紹

遞歸神經網路主要是在模擬我們人類連續性思考,舉例來說,

當我們今天遇到一個人,對方說,早啊!你今天要做... ...

講到這的時候,我們腦袋就會自動腦補完這句話,你今天要做什麼?

我們腦補的方法,就是去理解對方的語意,前面每一個字,

“早” “啊“ ”你“ ”今天“ ”要“ ”做“,這樣子。



要注意,基本的 Deep Neural Network model 是沒有這個能力的,

“早啊你今天要做” 和 “你今天做早啊要” 這兩句話,對 DNN 來說是沒有差別的。



在 RNN 中,我們會利用文字解碼與編碼去把文字向量化 ( word2vec ) ,

一個字一個字照順序去解析,然後猜出對方即將要說出的話。

早 輸入至 operator ,operator 輸出一個值 叫 hidden state 1,

啊 和 hidden state 1 輸入至 operator ,operator 輸出一個值 叫 hidden state 2,

你 和 hidden state 2 輸入至 operator ,operator 輸出一個值 叫 hidden state 3,

以此類推,最後得出 final state 並把它解碼獲得 ”什麼“。

而把這整個 RNN model 對一群資料做最佳化,

就可以使這個 RNN model 對這群資料有理解能力。

圖解大概會如下,





















每一個 State 都等於上一次的 State ( hidden state ) 和這一次的 input 輸入後的輸出值

就想成 St = f ( xt, St-1  )。



除此之外,我們也不一定是要用來預測下一個東西,

也可能是要預測這句話是正面的話或是負面的話,這樣就變成分類問題,

模型也是差不多,只要要學習的事物,是受時間和順序影響的,

RNN 就會被拿來用。

------------------------------------------------------------------------------------------------------------

二、LSTM Networks

剛剛介紹完 RNN,覺得好像滿厲害,但其實不然。

RNN 固然有記憶東西的能力,但記憶力卻不怎麼好

舉例像,今天我在圖書館看_,

RNN可以藉由”圖書館“以及”看“,推知要填 書。

但如果今天句子長一點,關係遠一點,如,

我是台灣人,除了會講中文以外,我還會說___。

RNN 可能就無法判斷是 台語,因為會影響這個 output 的 features 距離太遠了



這時候,就要拿出 Hochreiter & Schmidhuber 發明的 LSTM Networks。

其實說穿了,也不是特別厲害,就是在每一個 state 裡面,

加上三個 gate,要忘記什麼、要記得什麼、要輸出什麼

回想剛剛的 RNN 單一個 Cell,和現在 LSTM Cell 做比較,

圖解大概如下,













當我們有這三個閘後,每一個 cell,

去學習什麼東西該保存,該忘記,該輸出

這樣的功能,讓我們可以記得很久以前的東西,只要他是重要的。

這邊講得很簡單,如果有興趣徹底一點了解,

可以看上面的 paper 或是這篇文章,講得非常非常仔細而且易懂。



接下來,我們將使用 mnist 的數字預測,來練習 RNN 的使用方法,

練習完後,再利用 LSTM 學習台股分k資料。

------------------------------------------------------------------------------------------------------------

Reference

[1] Practical Machine Learning Problem

[2] 圖解機器學習

[3] Coursera - Machine Leanring 

[4] A tour of machine learning algorithms

2 則留言: