人工智能之循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)

前言:人工智能機(jī)器學(xué)習(xí)有關(guān)算法內(nèi)容,請(qǐng)參見(jiàn)公眾號(hào)“科技優(yōu)化生活”之前相關(guān)文章。人工智能之機(jī)器學(xué)習(xí)主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點(diǎn)探討一下循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)算法。

循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)現(xiàn)已成為國(guó)際上神經(jīng)網(wǎng)絡(luò)專家研究的重要對(duì)象之一。它是一種節(jié)點(diǎn)定向連接成環(huán)的人工神經(jīng)網(wǎng)絡(luò),最初由Jordan,Pineda.Williams,Elman等于上世紀(jì)80年代末提出的一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型。

引領(lǐng)循環(huán)神經(jīng)網(wǎng)絡(luò)RNN研究的主要是JuergenSchmidhuber和他的學(xué)生——其中包括SeppHochreiter,他發(fā)現(xiàn)了高深度網(wǎng)絡(luò)所遇到的梯度消失問(wèn)題,后來(lái)又發(fā)明了長(zhǎng)短期記憶(LSTM)循環(huán)網(wǎng)絡(luò);還有Alex Graves,他目前在DeepMind任職。另外兩位比較著名的研究者分別是:Felix Gers,他發(fā)明了LSTM遺忘門;Justin Bayer,他發(fā)明了可以讓LSTM拓?fù)浣Y(jié)構(gòu)根據(jù)具體問(wèn)題進(jìn)行自動(dòng)演化的方法。

RNN概念:

循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(Recurrent NeuronNetwork)的內(nèi)部狀態(tài)可以展示動(dòng)態(tài)時(shí)序行為。不同于前饋神經(jīng)網(wǎng)絡(luò)的是,RNN可以利用它內(nèi)部的記憶來(lái)處理任意時(shí)序的輸入序列,這讓它可以更容易處理如不分段的手寫識(shí)別、語(yǔ)音識(shí)別等。

blob.png

循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)可以實(shí)現(xiàn)并行和序列計(jì)算,原則上可以計(jì)算任何傳統(tǒng)計(jì)算機(jī)所能計(jì)算的東西。但和傳統(tǒng)計(jì)算機(jī)不同的是,RNN與人類大腦有相似之處;人腦是一種由神經(jīng)元相互聯(lián)結(jié)組成的大型前饋網(wǎng)絡(luò),可以借由某種方式學(xué)會(huì)將長(zhǎng)達(dá)人的一生的感覺(jué)信號(hào)輸入流轉(zhuǎn)換為一個(gè)有效的運(yùn)動(dòng)輸出序列。人腦是一個(gè)杰出的模范,因?yàn)樗芙鉀Q許多計(jì)算機(jī)尚且力所不及的問(wèn)題。

RNN特征:

循環(huán)神經(jīng)網(wǎng)絡(luò)RNN的本質(zhì)特征是在處理單元之間既有內(nèi)部的反饋連接又有前饋連接。從系統(tǒng)觀點(diǎn)看,它是一個(gè)反饋動(dòng)力系統(tǒng),在計(jì)算過(guò)程中體現(xiàn)過(guò)程動(dòng)態(tài)特性,比前饋神經(jīng)網(wǎng)絡(luò)具有更強(qiáng)的動(dòng)態(tài)行為和計(jì)算能力。

RNN分類:

1)完全遞歸網(wǎng)絡(luò)(Fully recurrent network)

2)Hopfield網(wǎng)絡(luò)(Hopfield network)

3)Elman networks and Jordannetworks

4)回聲狀態(tài)網(wǎng)絡(luò)(Echo state network)

5)長(zhǎng)短記憶網(wǎng)絡(luò)(Long short term memery network)

6)雙向網(wǎng)絡(luò)(Bi-directional RNN)

7)持續(xù)型網(wǎng)絡(luò)(Continuous-time RNN)

8)分層RNN(Hierarchical RNN)

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

10)二階遞歸神經(jīng)網(wǎng)絡(luò)(Second Order Recurrent Neural Network)

11)波拉克的連續(xù)的級(jí)聯(lián)網(wǎng)絡(luò)(Pollack’s sequential cascaded networks)

RNN與FNN區(qū)別:

循環(huán)神經(jīng)網(wǎng)絡(luò)RNN和前饋神經(jīng)網(wǎng)絡(luò)FNN的最大區(qū)別在于有一個(gè)反饋循環(huán)。另外,兩者的記憶模式完全不同。在定型之后,前饋神經(jīng)網(wǎng)絡(luò)會(huì)生成已學(xué)習(xí)數(shù)據(jù)的靜態(tài)模型,然后接受新的樣例,進(jìn)行準(zhǔn)確的分類或聚類。而循環(huán)神經(jīng)網(wǎng)絡(luò)RNN則會(huì)生成動(dòng)態(tài)模型,即會(huì)隨時(shí)間推移變化的模型,即將第n-1步的輸出反饋給神經(jīng)網(wǎng)絡(luò),對(duì)第n步的輸出產(chǎn)生影響,之后的每一步也都以此類推。這種變化可以讓模型依據(jù)輸入樣例的上下文來(lái)進(jìn)行準(zhǔn)確的分類。

RNN模型與記憶:

循環(huán)神經(jīng)網(wǎng)絡(luò)RNN包含了決定同個(gè)序列中的前一次分類結(jié)果的隱藏狀態(tài)。以后每一步,這一隱藏狀態(tài)會(huì)與新一步的輸入數(shù)據(jù)相加,生成一個(gè)新的隱藏狀態(tài),再得出一個(gè)新的分類結(jié)果。每個(gè)隱藏狀態(tài)都會(huì)被循環(huán)利用,生成經(jīng)過(guò)調(diào)整的后續(xù)隱藏狀態(tài)。

人類的記憶模式同樣能考慮上下文,循環(huán)利用對(duì)于過(guò)往狀態(tài)的認(rèn)知來(lái)恰當(dāng)?shù)亟庾x新數(shù)據(jù)。人類會(huì)受到短期記憶先前感覺(jué)的影響,保留了不同的“隱藏狀態(tài)”。

RNN基本結(jié)構(gòu):

blob.png

RNN是一種對(duì)序列數(shù)據(jù)建模的神經(jīng)網(wǎng)絡(luò),即一個(gè)序列當(dāng)前的輸出與前面的輸出也有關(guān)。具體的表現(xiàn)形式為網(wǎng)絡(luò)會(huì)對(duì)前面的信息進(jìn)行記憶并應(yīng)用于當(dāng)前輸出的計(jì)算中,即隱藏層之間的節(jié)點(diǎn)不再無(wú)連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出還包括上一時(shí)刻隱藏層的輸出。下面是一個(gè)RNN模型的示例圖,其中:

xt是t時(shí)刻的輸入;

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

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

在RNN中,所有層次均共享同樣的參數(shù)。其反應(yīng)出RNN中的每一步都在做相同的事,只是輸入不同,因此大大地降低了網(wǎng)絡(luò)中需要學(xué)習(xí)的參數(shù)。

blob.png

RNN允許對(duì)向量的序列進(jìn)行操作:輸入可以是序列,輸出也可以是序列,在最一般化的情況下輸入輸出都可以是序列。輸出序列理解為RNN關(guān)于序列下一個(gè)狀態(tài)預(yù)測(cè)的信心程度。

RNN參數(shù)訓(xùn)練:

循環(huán)神經(jīng)網(wǎng)絡(luò)RNN的參數(shù)訓(xùn)練可以通過(guò)隨時(shí)間進(jìn)行反向傳播(Back propagation Through Time,BPTT)算法,BPTT算法是針對(duì)循環(huán)層的訓(xùn)練算法,包含三個(gè)步驟:

1)前向計(jì)算每個(gè)神經(jīng)元的輸出值;

2)反向計(jì)算每個(gè)神經(jīng)元的誤差項(xiàng)值,它是誤差函數(shù)E對(duì)神經(jīng)元j的加權(quán)輸入的偏導(dǎo)數(shù);

3)計(jì)算每個(gè)權(quán)重的梯度,最后再用隨機(jī)梯度下降算法更新權(quán)重。

blob.png

RNN優(yōu)點(diǎn):

1)分布式表達(dá);

2)能在序列預(yù)測(cè)中明確地學(xué)習(xí)和利用背景信息;

3)具有長(zhǎng)時(shí)間范圍內(nèi)學(xué)習(xí)和執(zhí)行數(shù)據(jù)的復(fù)雜轉(zhuǎn)換能力。

RNN缺點(diǎn):

1)會(huì)造成梯度消失問(wèn)題;

2)會(huì)造成梯度爆炸問(wèn)題;

RNN改進(jìn)方案:

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

2)引入改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)的機(jī)制,比如LSTM,GRU;

3)自然語(yǔ)音處理上應(yīng)用十分廣的就是LSTM。

blob.png

RNN應(yīng)用場(chǎng)景:

循環(huán)神經(jīng)網(wǎng)絡(luò)RNN是一類功能強(qiáng)大的人工神經(jīng)網(wǎng)絡(luò)算法,特別適用于處理聲音、時(shí)間序列(傳感器)數(shù)據(jù)或書面自然語(yǔ)言等序列數(shù)據(jù)。DeepMind在自動(dòng)代理玩游戲的研究中就使用了一種循環(huán)網(wǎng)絡(luò)。

循環(huán)神經(jīng)網(wǎng)絡(luò)RNN也適用于聚類和異常狀態(tài)檢測(cè)。可以應(yīng)用于可穿戴式設(shè)備生成的醫(yī)療保健數(shù)據(jù)、恒溫器等智能設(shè)備生成的家居環(huán)境數(shù)據(jù)、股票及指數(shù)變動(dòng)生成的市場(chǎng)數(shù)據(jù)、賬戶交易活動(dòng)生成的個(gè)人財(cái)務(wù)數(shù)據(jù)(可用于檢測(cè)欺詐或洗錢行為)等。

blob.png

目前,循環(huán)神經(jīng)網(wǎng)絡(luò)RNN在自然語(yǔ)言處理、機(jī)器翻譯、圖像識(shí)別、語(yǔ)音識(shí)別等領(lǐng)域迅速得到大量應(yīng)用。

RNN已在實(shí)踐中證明對(duì)自然語(yǔ)言處理是非常成功的,如詞向量表達(dá)、語(yǔ)句合法性檢查、詞性標(biāo)注等。

結(jié)語(yǔ):

循環(huán)神經(jīng)網(wǎng)絡(luò)RNN是一類功能強(qiáng)大的人工神經(jīng)網(wǎng)絡(luò)算法,其模型是目前人工神經(jīng)網(wǎng)絡(luò)應(yīng)用中最為廣泛的一類模型。特別適用于處理聲音、時(shí)間序列(傳感器)數(shù)據(jù)或書面自然語(yǔ)言等序列數(shù)據(jù)。DeepMind在自動(dòng)代理玩游戲的研究中就使用了一種循環(huán)網(wǎng)絡(luò)。RNN算法在人工智能機(jī)器學(xué)習(xí)、自然語(yǔ)言處理、機(jī)器翻譯、圖像識(shí)別、語(yǔ)音識(shí)別、時(shí)間序列數(shù)據(jù)、股票交易數(shù)據(jù)和氣象觀測(cè)數(shù)據(jù)等領(lǐng)域有著廣泛應(yīng)用。

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )

贊助商
2018-06-15
人工智能之循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)
前言:人工智能機(jī)器學(xué)習(xí)有關(guān)算法內(nèi)容,請(qǐng)參見(jiàn)公眾號(hào)“科技優(yōu)化生活”之前相關(guān)文章。人工智能之機(jī)器學(xué)習(xí)主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點(diǎn)探討一下循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)算法。

長(zhǎng)按掃碼 閱讀全文