2017年5月27日 星期六

LSTM network introduction

RNN (recurrent neural network)

         LSTM (long short term memory) 是一種RNN network。RNN是一種可以記憶的神經網路,一般傳統的神經網路或是CNN( convolution neural network),神經元的資訊完全由當下輸入data貢獻,但某些問題像是語音辨識、語言翻譯,除了當下輸入的data,之前的data 也同樣重要。例如"I grew up in France…I speak fluent French ",假設後一個字"French"未知,我們可從前面"speak" 推測是某種語言,又從前文"grew up in France" 可推測為"French",因此前文的資訊是非常重要的。
          為了讓神經元保有前面的記憶,RNN神經元除了與當下輸入的data 連接,還跟過去的神經元連接,如下圖所示
出處:https://read01.com/N6n3Ba.html
Xt 是時間 t 輸入,A為神經網路,ht 為時間t 輸出。可以看到,網路A除了X貢獻,還從過去的網路貢獻,以此達到記憶的功能。

LSTM (long short term memory) 

       然而傳統的RNN 當連接的網路愈久遠,backpropagation 時的gradient 愈小,學習效果愈差(gradient vanish),也就是太久之前的記憶傳統RNN 很難學習。LSTM 就是來解決這個問題。傳統的RNN如下,與過去神經元連接只有一個tanh層運算
出處:https://read01.com/N6n3Ba.html