當前位置:
首頁 > 最新 > 人工智慧–循環神經網路

人工智慧–循環神經網路

人工智慧之循環神經網路(RNN)

前言:人工智慧機器學習有關演算法內容,請參見公眾號「科技優化生活」之前相關文章。人工智慧之機器學習主要有三大類: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可以利用它內部的記憶來處理任意時序的輸入序列,這讓它可以更容易處理如不分段的手寫識別、語音識別等。

循環神經網路(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基本結構:

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

xt是t時刻的輸入;

st是t時刻的隱狀態(memory),基於上一時刻的隱狀態和當前輸入得到:

st=f(Uxt+Wst?1),其中

f一般是非線性的激活函數,在計算

s0時,需要用到

s?1。

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

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

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

RNN參數訓練:

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

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

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

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

RNN優點:

1)分散式表達;

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

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

RNN缺點:

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

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

RNN改進方案:

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

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

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

RNN應用場景:

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

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

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

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

結語:

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

------以往文章推薦------

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優化生活 的精彩文章:

人工智慧–AI+安防
人工智慧–馬爾可夫模型

TAG:科技優化生活 |