日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

递归神经网络的认识

發(fā)布時間:2024/3/26 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 递归神经网络的认识 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?????? 遞歸神經(jīng)網(wǎng)絡(luò)(recursive neural network)是具有樹狀階層結(jié)構(gòu)且網(wǎng)絡(luò)節(jié)點按其連接順序?qū)斎胄畔⑦M行遞歸的人工神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)算法之一。

?????? 遞歸神經(jīng)網(wǎng)絡(luò)提出于1990年,被視為循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network)的推廣。當(dāng)遞歸神經(jīng)網(wǎng)絡(luò)的每個父節(jié)點都僅與一個子節(jié)點連接時,其結(jié)構(gòu)等價于全連接的循環(huán)神經(jīng)網(wǎng)絡(luò)。遞歸神經(jīng)網(wǎng)絡(luò)可以引入門控機制(gated mechanism)以學(xué)習(xí)長距離依賴。遞歸神經(jīng)網(wǎng)絡(luò)具有靈活的拓?fù)浣Y(jié)構(gòu)且權(quán)重共享,適用于包含結(jié)構(gòu)關(guān)系的機器學(xué)習(xí)任務(wù),在自然語言處理(Natural Language Processing, NLP)領(lǐng)域有重要應(yīng)用。

?

實例(https://blog.csdn.net/zb123455445/article/details/78178794)

因為神經(jīng)網(wǎng)絡(luò)的輸入層單元個數(shù)是固定的,因此必須用循環(huán)或者遞歸的方式來處理長度可變的輸入。循環(huán)神經(jīng)網(wǎng)絡(luò)實現(xiàn)了前者,通過將長度不定的輸入分割為等長度的小塊,然后再依次的輸入到網(wǎng)絡(luò)中,從而實現(xiàn)了神經(jīng)網(wǎng)絡(luò)對變長輸入的處理。一個典型的例子是,當(dāng)我們處理一句話的時候,我們可以把一句話看作是詞組成的序列,然后,每次向循環(huán)神經(jīng)網(wǎng)絡(luò)輸入一個詞,如此循環(huán)直至整句話輸入完畢,循環(huán)神經(jīng)網(wǎng)絡(luò)將產(chǎn)生對應(yīng)的輸出。如此,我們就能處理任意長度的句子了。然而,有時候把句子看做是詞的序列是不夠的,比如下面這句話『兩個外語學(xué)院的學(xué)生』:

上圖顯示了這句話的兩個不同的語法解析樹。可以看出來這句話有歧義,不同的語法解析樹則對應(yīng)了不同的意思。一個是『兩個外語學(xué)院的/學(xué)生』,也就是學(xué)生可能有許多,但他們來自于兩所外語學(xué)校;另一個是『兩個/外語學(xué)院的學(xué)生』,也就是只有兩個學(xué)生,他們是外語學(xué)院的。為了能夠讓模型區(qū)分出兩個不同的意思,我們的模型必須能夠按照樹結(jié)構(gòu)去處理信息,而不是序列,這就是遞歸神經(jīng)網(wǎng)絡(luò)的作用。當(dāng)面對按照樹/圖結(jié)構(gòu)處理信息更有效的任務(wù)時,遞歸神經(jīng)網(wǎng)絡(luò)通常都會獲得不錯的結(jié)果。

遞歸神經(jīng)網(wǎng)絡(luò)可以把一個樹/圖結(jié)構(gòu)信息編碼為一個向量,也就是把信息映射到一個語義向量空間中。這個語義向量空間滿足某類性質(zhì),比如語義相似的向量距離更近。也就是說,如果兩句話(盡管內(nèi)容不同)它的意思是相似的,那么把它們分別編碼后的兩個向量的距離也相近;反之,如果兩句話的意思截然不同,那么編碼后向量的距離則很遠。如下圖所示:

從上圖我們可以看到,遞歸神經(jīng)網(wǎng)絡(luò)將所有的詞、句都映射到一個2維向量空間中。句子『the country of my birth』和句子『the place where I was born』的意思是非常接近的,所以表示它們的兩個向量在向量空間中的距離很近。另外兩個詞『Germany』和『France』因為表示的都是地點,它們的向量與上面兩句話的向量的距離,就比另外兩個表示時間的詞『Monday』和『Tuesday』的向量的距離近得多。這樣,通過向量的距離,就得到了一種語義的表示。

上圖還顯示了自然語言可組合的性質(zhì):詞可以組成句、句可以組成段落、段落可以組成篇章,而更高層的語義取決于底層的語義以及它們的組合方式。遞歸神經(jīng)網(wǎng)絡(luò)是一種表示學(xué)習(xí),它可以將詞、句、段、篇按照他們的語義映射到同一個向量空間中,也就是把可組合(樹/圖結(jié)構(gòu))的信息表示為一個個有意義的向量。比如上面這個例子,遞歸神經(jīng)網(wǎng)絡(luò)把句子"the country of my birth"表示為二維向量[1,5]。有了這個『編碼器』之后,我們就可以以這些有意義的向量為基礎(chǔ)去完成更高級的任務(wù)(比如情感分析等)。如下圖所示,遞歸神經(jīng)網(wǎng)絡(luò)在做情感分析時,可以比較好的處理否定句,這是勝過其他一些模型的。

在下圖中,藍色表示正面評價,紅色表示負(fù)面評價。每個節(jié)點是一個向量,這個向量表達了以它為根的子樹的情感評價。比如"intelligent humor"是正面評價,而"care about cleverness wit or any other kind of intelligent humor"是中性評價。我們可以看到,模型能夠正確的處理doesn't的含義,將正面評價轉(zhuǎn)變?yōu)樨?fù)面評價。

?

計算

1前向計算

遞歸神經(jīng)網(wǎng)絡(luò)的輸入是兩個子節(jié)點(也可以是多個),輸出就是將這兩個子節(jié)點編碼后產(chǎn)生的父節(jié)點,父節(jié)點的維度和每個子節(jié)點是相同的。如下圖所示:

分別是表示兩個子節(jié)點的向量,P是表示父節(jié)點的向量。子節(jié)點和父節(jié)點組成一個全連接神經(jīng)網(wǎng)絡(luò),也就是子節(jié)點的每個神經(jīng)元都和父節(jié)點的每個神經(jīng)元兩兩相連。我們用矩陣W表示這些連接上的權(quán)重,它的維度將是d×2d ,其中,d 表示每個節(jié)點的維度。父節(jié)點的計算公式可以寫成:

在上式中,tanh是激活函數(shù)(當(dāng)然也可以用其它的激活函數(shù)),b 是偏置項,它也是一個維度為d 的向量。

然后,我們把產(chǎn)生的父節(jié)點的向量和其他子節(jié)點的向量再次作為網(wǎng)絡(luò)的輸入,再次產(chǎn)生它們的父節(jié)點。如此遞歸下去,直至整棵樹處理完畢。最終,我們將得到根節(jié)點的向量,我們可以認(rèn)為它是對整棵樹的表示,這樣我們就實現(xiàn)了把樹映射為一個向量。在下圖中,我們使用遞歸神經(jīng)網(wǎng)絡(luò)處理一棵樹,最終得到的向量 ,就是對整棵樹的表示:

舉個例子,我們使用遞歸神將網(wǎng)絡(luò)將『兩個外語學(xué)校的學(xué)生』映射為一個向量,如下圖所示:

最后得到的向量 就是對整個句子『兩個外語學(xué)校的學(xué)生』的表示。由于整個結(jié)構(gòu)是遞歸的,不僅僅是根節(jié)點,事實上每個節(jié)點都是以其為根的子樹的表示。比如,在左邊的這棵樹中,向量 是短語『外語學(xué)院的學(xué)生』的表示,而向量 是短語『外語學(xué)院的』的表示。

式1就是遞歸神經(jīng)網(wǎng)絡(luò)的前向計算算法。它和全連接神經(jīng)網(wǎng)絡(luò)的計算沒有什么區(qū)別,只是在輸入的過程中需要根據(jù)輸入的樹結(jié)構(gòu)依次輸入每個子節(jié)點。需要特別注意的是,遞歸神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏置項在所有的節(jié)點都是共享的。

2 訓(xùn)練

遞歸神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法和循環(huán)神經(jīng)網(wǎng)絡(luò)類似,兩者不同之處在于,前者需要將殘差δ 從根節(jié)點反向傳播到各個子節(jié)點,而后者是將殘差δ 從當(dāng)前時刻 反向傳播到初始時刻 。

誤差項的傳遞

首先,先推導(dǎo)將誤差從父節(jié)點傳遞到子節(jié)點的公式,如下圖:

?

?

?

?

?

?

上圖是在樹型結(jié)構(gòu)中反向傳遞誤差項的全景圖,反復(fù)應(yīng)用式2,在已知 的情況下,我們不難算出 為:

權(quán)重梯度的計算

根據(jù)加權(quán)輸入的計算公式:

式3就是第l層權(quán)重項的梯度計算公式。我們知道,由于權(quán)重W是在所有層共享的,所以和循環(huán)神經(jīng)網(wǎng)絡(luò)一樣,遞歸神經(jīng)網(wǎng)絡(luò)的最終的權(quán)重梯度是各個層權(quán)重梯度之和。即:

把上式擴展為矩陣的形式:

???????????????????????? (式5)

式5是第l層偏置項的梯度,那么最終的偏置項梯度是各個層偏置項梯度之和,即:

應(yīng)用

自然語言和自然場景解析

?

兩種不同的場景,可以用相同的遞歸神經(jīng)網(wǎng)絡(luò)模型來實現(xiàn)。我們以第一個場景,自然語言解析為例。

https://www.sohu.com/a/128784058_487514

我們希望將一句話逐字輸入到神經(jīng)網(wǎng)絡(luò)中,然后,神經(jīng)網(wǎng)絡(luò)返回一個解析好的樹。為了做到這一點,我們需要給神經(jīng)網(wǎng)絡(luò)再加上一層,負(fù)責(zé)打分。分?jǐn)?shù)越高,說明兩個子節(jié)點結(jié)合更加緊密,分?jǐn)?shù)越低,說明兩個子節(jié)點結(jié)合更松散。如下圖所示:

一旦這個打分函數(shù)訓(xùn)練好了(也就是矩陣U的各項值變?yōu)楹线m的值),我們就可以利用貪心算法來實現(xiàn)句子的解析(貪心算法的基本思路是從問題的某一個初始解出發(fā)一步一步地進行,根據(jù)某個優(yōu)化測度,每一步都要確保能獲得局部最優(yōu)解。每一步只考慮一個數(shù)據(jù),他的選取應(yīng)該滿足局部優(yōu)化的條件。若下一個數(shù)據(jù)和部分最優(yōu)解連在一起不再是可行解時,就不把該數(shù)據(jù)添加到部分解中,直到把所有數(shù)據(jù)枚舉完,或者不能再添加算法停止)。第一步,我們先將詞按照順序兩兩輸入神經(jīng)網(wǎng)絡(luò),得到第一組打分:

我們發(fā)現(xiàn),現(xiàn)在分?jǐn)?shù)最高的是第一組,The cat,說明它們的結(jié)合是最緊密的。這樣,我們可以先將它們組合為一個節(jié)點。然后,再次兩兩計算相鄰子節(jié)點的打分:

?????

現(xiàn)在,分?jǐn)?shù)最高的是最后一組,the mat。于是,我們將它們組合為一個節(jié)點,再兩兩計算相鄰節(jié)點的打分。這時,我們發(fā)現(xiàn)最高的分?jǐn)?shù)是on the mat,把它們組合為一個節(jié)點,繼續(xù)兩兩計算相鄰節(jié)點的打分......最終,我們就能夠得到整個解析樹:

總結(jié)

以上是生活随笔為你收集整理的递归神经网络的认识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。