1. 程式人生 > >RNN系列之一 初識RNN

RNN系列之一 初識RNN

1.簡介

    迴圈神經網路(recurrent neural network,RNN)是一類用於處理序列資料的神經網路。類似於卷積神經網路(Convolutional neural network,CNN)可以處理空間上的資料(例如影象),RNN則專門處理序列上的資料,主要用於時序,自然語言處理(Natural Language Processing)等領域。

2.早期思想

    如何從多層網路發展到迴圈網路呢?我們需要利用機器學習與統計模型早期思想優點:在模型的不同部分共享引數。引數共享使得模型能夠擴充套件到不同長度的樣本並具有泛化能力。如果在每一個時間節點都有一個單獨的引數,不但不能泛化,也不能在時間上共享不同序列長度和不同位置的統計強度。例如,我們需要訓練一個處理固定長度句子的網路。傳統的全連線層會給每個輸入特徵分配一個單獨的引數,需要分別學習每個位置的所有語言規則,但如果RNN共享權重,則不需要分別學習每個位置的所有語言規則。

    當然,一開始也出現了用卷積處理一維時間序列。卷積操作可以跨越時間共享引數,即卷積的輸出中的每一項是相鄰幾項輸入的函式。引數共享的概念體現在每一個時間步長使用相同的卷積核。

--------------------------------------採摘自花書-------------------------------------------

3.應用領域

    RNN專門處理序列問題,如下圖所示:

                                                                                  ---來源Andrew Ng深度學習課件

(1)語音識別,輸入語音訊號,得到輸出文字資訊。

(2)音樂生成,給定一個音樂型別(eg. 數字:0,1,2……)或者空輸入,得到一段音樂。

(3)情感分析,給一段影評,對其打分。

……………………