溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在圖上發(fā)送消息的神經(jīng)網(wǎng)絡(luò)MPNN原理和代碼實(shí)現(xiàn)是怎樣的

發(fā)布時間:2021-11-23 10:27:11 來源:億速云 閱讀:335 作者:柒染 欄目:大數(shù)據(jù)

在圖上發(fā)送消息的神經(jīng)網(wǎng)絡(luò)MPNN原理和代碼實(shí)現(xiàn)是怎樣的,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

歡迎來到圖神經(jīng)網(wǎng)絡(luò)的世界,在這里我們在圖上構(gòu)建深度學(xué)習(xí)模型。你可以認(rèn)為這很簡單。畢竟,我們難道不能重用使用正常數(shù)據(jù)的模型嗎?

其實(shí)不是。在圖中所有的數(shù)據(jù)點(diǎn)(節(jié)點(diǎn))是相互連接的。這意味著數(shù)據(jù)不再是獨(dú)立的,這使得大多數(shù)標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)模型毫無用處,因?yàn)樗鼈兊耐茖?dǎo)都強(qiáng)烈地基于這個假設(shè)。為了克服這個問題,可以從圖中提取數(shù)字?jǐn)?shù)據(jù),或者使用直接對這類數(shù)據(jù)進(jìn)行操作的模型。

創(chuàng)建直接在圖上工作的模型更為理想,因?yàn)槲覀兛梢垣@得更多關(guān)于圖的結(jié)構(gòu)和屬性的信息。在本文中,我們將研究一種專門為此類數(shù)據(jù)設(shè)計(jì)的架構(gòu),即消息傳遞神經(jīng)網(wǎng)絡(luò)(MPNNs)。

模型的各種變體

在將模型標(biāo)準(zhǔn)化為單個MPNN框架之前,幾位獨(dú)立研究人員已經(jīng)發(fā)布了不同的變體。這種類型的結(jié)構(gòu)在化學(xué)中特別流行,可以幫助預(yù)測分子的性質(zhì)。

Duvenaud等人在2015年發(fā)表了有關(guān)該主題的第一批著作之一[1]。他使用消息傳遞體系結(jié)構(gòu)從圖分子中提取有價值的信息,然后將其轉(zhuǎn)換為單個特征向量。當(dāng)時,他的工作具有開創(chuàng)性,因?yàn)樗贵w系結(jié)構(gòu)與眾不同。實(shí)際上是最早可以在圖上運(yùn)行的卷積神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)之一。

在圖上發(fā)送消息的神經(jīng)網(wǎng)絡(luò)MPNN原理和代碼實(shí)現(xiàn)是怎樣的

Duvenaud等人創(chuàng)建的消息傳遞體系結(jié)構(gòu)。 他將模型定義為可區(qū)分的層的堆棧,其中每一層是傳遞消息的另一輪。修改自[1]

Li等人在2016年對此構(gòu)架進(jìn)行了另一嘗試[2]。在這里,他們專注于圖的順序輸出,例如在圖[2]中找到最佳路徑。為此,他們將GRU(門控循環(huán)單元)嵌入其算法中。

盡管這些算法似乎完全不同,但是它們具有相同的基本概念,即消息在圖中的節(jié)點(diǎn)之間傳遞。我們將很快看到如何將這些模型組合成一個框架。

將模型統(tǒng)一到MPNN框架

在圖上發(fā)送消息的神經(jīng)網(wǎng)絡(luò)MPNN原理和代碼實(shí)現(xiàn)是怎樣的

節(jié)點(diǎn)V1的消息傳遞體系結(jié)構(gòu)的一個非常簡單的示例。在這種情況下,一條消息是鄰居的隱藏狀態(tài)的總和。更新函數(shù)是消息m和h2之間的平均值。

畢竟,MPNN背后的想法在概念上很簡單。

圖中的每個節(jié)點(diǎn)都具有隱藏狀態(tài)(即特征向量)。對于每個節(jié)點(diǎn)Vt,我們將隱藏狀態(tài)的函數(shù)以及所有相鄰節(jié)點(diǎn)的邊緣與節(jié)點(diǎn)Vt本身進(jìn)行聚合。然后,我們使用獲得的消息和該節(jié)點(diǎn)的先前隱藏狀態(tài)來更新節(jié)點(diǎn)Vt的隱藏狀態(tài)。

有3個主要方程式定義圖[3]上的MPNN框架。從相鄰節(jié)點(diǎn)獲得的消息由以下公式給出:

在圖上發(fā)送消息的神經(jīng)網(wǎng)絡(luò)MPNN原理和代碼實(shí)現(xiàn)是怎樣的

從鄰居節(jié)點(diǎn)獲取消息。

它是從鄰居獲得的所有消息Mt的總和。Mt是取決于隱藏狀態(tài)和相鄰節(jié)點(diǎn)邊緣的任意函數(shù)。我們可以通過保留一些輸入?yún)?shù)來簡化此功能。在上面的示例中,我們僅求和不同的隱藏狀態(tài)hw。

然后,我們使用一個簡單的方程式更新節(jié)點(diǎn)Vt的隱藏狀態(tài):

在圖上發(fā)送消息的神經(jīng)網(wǎng)絡(luò)MPNN原理和代碼實(shí)現(xiàn)是怎樣的

使用先前的隱藏狀態(tài)和新消息更新節(jié)點(diǎn)的狀態(tài)。

簡單地說,通過用新獲得的消息mv更新舊的隱藏狀態(tài)來獲得節(jié)點(diǎn)Vt的隱藏狀態(tài)。在上述示例的情況下,更新函數(shù)Ut是先前隱藏狀態(tài)和消息之間的平均值。

我們將此消息傳遞算法重復(fù)指定的次數(shù)。之后,我們進(jìn)入最后的讀出階段。

在圖上發(fā)送消息的神經(jīng)網(wǎng)絡(luò)MPNN原理和代碼實(shí)現(xiàn)是怎樣的

將獲得的隱藏狀態(tài)映射到描述整個圖形的單個特征向量中。

在此步驟中,我們提取所有新近更新的隱藏狀態(tài),并創(chuàng)建描述整個圖形的最終特征向量。然后可以將此特征向量用作標(biāo)準(zhǔn)機(jī)器學(xué)習(xí)模型的輸入。

就是這樣!這些是MPNN的基礎(chǔ)。這個框架非常強(qiáng)大,因?yàn)槲覀兛梢远x不同的消息并根據(jù)想要實(shí)現(xiàn)的功能更新功能。我建議查看[3]以獲得更多信息,以了解MPNN模型的不同變體。

MPNN框架標(biāo)準(zhǔn)化了由多個研究人員獨(dú)立創(chuàng)建的不同消息傳遞模型。該框架的主要思想包括消息,更新和讀出功能,它們在圖中的不同節(jié)點(diǎn)上運(yùn)行。MPNN模型的一些變體共享此功能,但是它們的定義不同。

看完上述內(nèi)容,你們掌握在圖上發(fā)送消息的神經(jīng)網(wǎng)絡(luò)MPNN原理和代碼實(shí)現(xiàn)是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI