訂閱
糾錯
加入自媒體

人工智能之循環神經網絡(RNN)

2018-06-15 04:02
AI優化生活
關注

前言:人工智能機器學習有關算法內容,人工智能之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下循環神經網絡(RNN)算法。

循環神經網絡(RNN)現已成為國際上神經網絡專家研究的重要對象之一。它是一種節點定向連接成環的人工神經網絡,最初由Jordan,Pineda.Williams,Elman等于上世紀80年代末提出的一種神經網絡結構模型。

引領循環神經網絡RNN研究的主要是JuergenSchmidhuber和他的學生——其中包括SeppHochreiter,他發現了高深度網絡所遇到的梯度消失問題,后來又發明了長短期記憶(LSTM)循環網絡;還有Alex Graves,他目前在DeepMind任職。另外兩位比較著名的研究者分別是:Felix Gers,他發明了LSTM遺忘門;Justin Bayer,他發明了可以讓LSTM拓撲結構根據具體問題進行自動演化的方法。

RNN概念:

循環神經網絡RNN(Recurrent NeuronNetwork)的內部狀態可以展示動態時序行為。不同于前饋神經網絡的是,RNN可以利用它內部的記憶來處理任意時序的輸入序列,這讓它可以更容易處理如不分段的手寫識別、語音識別等。

blob.png

循環神經網絡(RNN)可以實現并行和序列計算,原則上可以計算任何傳統計算機所能計算的東西。但和傳統計算機不同的是,RNN與人類大腦有相似之處;人腦是一種由神經元相互聯結組成的大型前饋網絡,可以借由某種方式學會將長達人的一生的感覺信號輸入流轉換為一個有效的運動輸出序列。人腦是一個杰出的模范,因為它能解決許多計算機尚且力所不及的問題。

RNN特征:

循環神經網絡RNN的本質特征是在處理單元之間既有內部的反饋連接又有前饋連接。從系統觀點看,它是一個反饋動力系統,在計算過程中體現過程動態特性,比前饋神經網絡具有更強的動態行為和計算能力。

RNN分類:

1)完全遞歸網絡(Fully recurrent network)

2)Hopfield網絡(Hopfield network)

3)Elman networks and Jordannetworks

4)回聲狀態網絡(Echo state network)

5)長短記憶網絡(Long short term memery network)

6)雙向網絡(Bi-directional RNN)

7)持續型網絡(Continuous-time RNN)

8)分層RNN(Hierarchical RNN)

9)復發性多層感知器(Recurrent multilayer perceptron)

10)二階遞歸神經網絡(Second Order Recurrent Neural Network)

11)波拉克的連續的級聯網絡(Pollack’s sequential cascaded networks)

RNN與FNN區別:

循環神經網絡RNN和前饋神經網絡FNN的最大區別在于有一個反饋循環。另外,兩者的記憶模式完全不同。在定型之后,前饋神經網絡會生成已學習數據的靜態模型,然后接受新的樣例,進行準確的分類或聚類。而循環神經網絡RNN則會生成動態模型,即會隨時間推移變化的模型,即將第n-1步的輸出反饋給神經網絡,對第n步的輸出產生影響,之后的每一步也都以此類推。這種變化可以讓模型依據輸入樣例的上下文來進行準確的分類。

RNN模型與記憶:

循環神經網絡RNN包含了決定同個序列中的前一次分類結果的隱藏狀態。以后每一步,這一隱藏狀態會與新一步的輸入數據相加,生成一個新的隱藏狀態,再得出一個新的分類結果。每個隱藏狀態都會被循環利用,生成經過調整的后續隱藏狀態。

人類的記憶模式同樣能考慮上下文,循環利用對于過往狀態的認知來恰當地解讀新數據。人類會受到短期記憶先前感覺的影響,保留了不同的“隱藏狀態”。

RNN基本結構:

blob.png

RNN是一種對序列數據建模的神經網絡,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網絡會對前面的信息進行記憶并應用于當前輸出的計算中,即隱藏層之間的節點不再無連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。下面是一個RNN模型的示例圖,其中:

xt是t時刻的輸入;

st是t時刻的隱狀態(memory),基于上一時刻的隱狀態和當前輸入得到:st=f(Uxt+Wst?1),其中f一般是非線性的激活函數,在計算s0時,需要用到s?1。

ot表示t時刻的輸出,ot=softmax(Vst);

在RNN中,所有層次均共享同樣的參數。其反應出RNN中的每一步都在做相同的事,只是輸入不同,因此大大地降低了網絡中需要學習的參數。

blob.png

RNN允許對向量的序列進行操作:輸入可以是序列,輸出也可以是序列,在最一般化的情況下輸入輸出都可以是序列。輸出序列理解為RNN關于序列下一個狀態預測的信心程度。

RNN參數訓練:

循環神經網絡RNN的參數訓練可以通過隨時間進行反向傳播(Back propagation Through Time,BPTT)算法,BPTT算法是針對循環層的訓練算法,包含三個步驟:

1)前向計算每個神經元的輸出值;

2)反向計算每個神經元的誤差項值,它是誤差函數E對神經元j的加權輸入的偏導數;

3)計算每個權重的梯度,最后再用隨機梯度下降算法更新權重。

blob.png

RNN優點:

1)分布式表達;

2)能在序列預測中明確地學習和利用背景信息;

3)具有長時間范圍內學習和執行數據的復雜轉換能力。

RNN缺點:

1)會造成梯度消失問題;

2)會造成梯度爆炸問題;

RNN改進方案:

1)選擇其他的激活函數,比如ReLU;

2)引入改進網絡結構的機制,比如LSTM,GRU;

3)自然語音處理上應用十分廣的就是LSTM。

blob.png

RNN應用場景:

循環神經網絡RNN是一類功能強大的人工神經網絡算法,特別適用于處理聲音、時間序列(傳感器)數據或書面自然語言等序列數據。DeepMind在自動代理玩游戲的研究中就使用了一種循環網絡。

循環神經網絡RNN也適用于聚類和異常狀態檢測。可以應用于可穿戴式設備生成的醫療保健數據、恒溫器等智能設備生成的家居環境數據、股票及指數變動生成的市場數據、賬戶交易活動生成的個人財務數據(可用于檢測欺詐或洗錢行為)等。

blob.png

目前,循環神經網絡RNN在自然語言處理、機器翻譯、圖像識別、語音識別等領域迅速得到大量應用。

RNN已在實踐中證明對自然語言處理是非常成功的,如詞向量表達、語句合法性檢查、詞性標注等。

結語:

循環神經網絡RNN是一類功能強大的人工神經網絡算法,其模型是目前人工神經網絡應用中最為廣泛的一類模型。特別適用于處理聲音、時間序列(傳感器)數據或書面自然語言等序列數據。DeepMind在自動代理玩游戲的研究中就使用了一種循環網絡。RNN算法在人工智能之機器學習、自然語言處理、機器翻譯、圖像識別、語音識別、時間序列數據、股票交易數據和氣象觀測數據等領域有著廣泛應用。

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

發表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續

暫無評論

暫無評論

    人工智能 獵頭職位 更多
    掃碼關注公眾號
    OFweek人工智能網
    獲取更多精彩內容
    文章糾錯
    x
    *文字標題:
    *糾錯內容:
    聯系郵箱:
    *驗 證 碼:

    粵公網安備 44030502002758號