RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解圖神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)原理2

jf_78858299 ? 來源:人工智能大講堂 ? 作者:人工智能大講堂 ? 2023-03-17 09:58 ? 次閱讀

整合在一起

現(xiàn)在我們已經(jīng)完成了消息傳遞、聚合和更新步驟,讓我們把它們放在一起,在單個(gè)節(jié)點(diǎn)i上形成單個(gè)GNN層:

圖片

這里我們使用求和聚合和一個(gè)簡(jiǎn)單的前饋層作為函數(shù)F和H。設(shè)hi∈Rd, W1,W2?Rd ' ×d其中d '為嵌入維數(shù)。

使用鄰接矩陣

到目前為止,我們通過單個(gè)節(jié)點(diǎn)i的視角觀察了整個(gè)GNN正向傳遞,當(dāng)給定整個(gè)鄰接矩陣a和X?RN×d中所有N=∥V∥節(jié)點(diǎn)特征時(shí),知道如何實(shí)現(xiàn)GNN正向傳遞也很重要。

在 MLP 前向傳遞中,我們想要對(duì)特征向量 xi 中的項(xiàng)目進(jìn)行加權(quán)。這可以看作是節(jié)點(diǎn)特征向量 xi∈Rd 和參數(shù)矩陣 W?Rd′×d 的點(diǎn)積,其中 d′ 是嵌入維度:

圖片

如果我們想對(duì)數(shù)據(jù)集中的所有樣本(矢量化)這樣做,我們只需將參數(shù)矩陣和特征矩陣相乘,就可以得到轉(zhuǎn)換后的節(jié)點(diǎn)特征(消息):

圖片

在gnn中,對(duì)于每個(gè)節(jié)點(diǎn)i,消息聚合操作包括獲取相鄰節(jié)點(diǎn)特征向量,轉(zhuǎn)換它們,并將它們相加(在和聚合的情況下)。

單行Ai對(duì)于Aij=1的每個(gè)指標(biāo)j,我們知道節(jié)點(diǎn)i和j是相連的→eij∈E。例如,如果A2=[1,0,1,1,0],我們知道節(jié)點(diǎn)2與節(jié)點(diǎn)1、3和4連接。因此,當(dāng)我們將A2與Z=XW相乘時(shí),我們只考慮列1、3和4,而忽略列2和5:

圖片

圖片

圖片

比如說A的第二行。

圖片

矩陣乘法就是A中的每一行與Z中的每一列的點(diǎn)積,這就是消息聚合的含義!!

獲取所有N的聚合消息,根據(jù)圖中節(jié)點(diǎn)之間的連接,將整個(gè)鄰接矩陣A與轉(zhuǎn)換后的節(jié)點(diǎn)特征進(jìn)行矩陣乘法:

圖片

但是這里有一個(gè)小問題:觀察到聚合的消息沒有考慮節(jié)點(diǎn)i自己的特征向量(正如我們上面所做的那樣)。所以我們將自循環(huán)添加到A(每個(gè)節(jié)點(diǎn)i連接到自身)。

這意味著對(duì)角線的而數(shù)值需要進(jìn)行修改,用一些線性代數(shù),我們可以用單位矩陣來做這個(gè)!

圖片

圖片

添加自循環(huán)可以允許GNN將源節(jié)點(diǎn)的特征與其鄰居節(jié)點(diǎn)的特征一起聚合!!

有了這些,你就可以用矩陣而不是單節(jié)點(diǎn)來實(shí)現(xiàn)GNN的傳遞。

?要執(zhí)行平均值聚合(mean),我們可以簡(jiǎn)單地將總和除以1,對(duì)于上面的例子,由于A2=[1,0,0,1,1]中有三個(gè)1,我們可以將∑j∈N2Wxj除以3,但是用gnn的鄰接矩陣公式來實(shí)現(xiàn)最大(max)和最小聚合(min)是不可能的。

GNN層堆疊

上面我們已經(jīng)介紹了單個(gè)GNN層是如何工作的,那么我們?nèi)绾问褂眠@些層構(gòu)建整個(gè)“網(wǎng)絡(luò)”呢?信息如何在層之間流動(dòng),GNN如何細(xì)化節(jié)點(diǎn)(和/或邊)的嵌入/表示?

  • 第一個(gè)GNN層的輸入是節(jié)點(diǎn)特征X?RN×d。輸出是中間節(jié)點(diǎn)嵌入H1?RN×d1,其中d1是第一個(gè)嵌入維度。H1由h1i: 1→N∈Rd1組成。
  • H1是第二層的輸入。下一個(gè)輸出是H2?RN×d2,其中d2是第二層的嵌入維度。同理,H2由h2i: 1→N∈Rd2組成。
  • 經(jīng)過幾層之后,在輸出層L,輸出是HL?RN×dL。最后,HL由hLi: 1→N∈RdL構(gòu)成。

這里的{d1,d2,…,dL}的選擇完全取決于我們,可以看作是GNN的超參數(shù)。把這些看作是為MLP層選擇單位(“神經(jīng)元”的數(shù)量)。

圖片

節(jié)點(diǎn)特征/嵌入(“表示”)通過GNN傳遞。雖然結(jié)構(gòu)保持不變,但節(jié)點(diǎn)表示在各個(gè)層中不斷變化。邊表示也將改變,但不會(huì)改變連接或方向。

HL也可以做一些事情:

我們可以沿著第一個(gè)軸(即∑Nk=1hLk)將其相加,得到RdL中的向量。這個(gè)向量是整個(gè)圖的最新維度表示。它可以用于圖形分類(例如:這是什么分子?)

圖片

我們可以在HL中連接向量(即?Nk=1hk,其中⊕是向量連接操作),并將其傳遞給一個(gè)Graph Autoencoder。當(dāng)輸入圖有噪聲或損壞,而我們想要重建去噪圖時(shí),就需要這個(gè)操作。

圖片

我們可以做節(jié)點(diǎn)分類→這個(gè)節(jié)點(diǎn)屬于什么類?在特定索引hLi (i:1→N)處嵌入的節(jié)點(diǎn)可以通過分類器(如MLP)分為K個(gè)類(例如:這是碳原子、氫原子還是氧原子?)

圖片

我們還可以進(jìn)行鏈接預(yù)測(cè)→某個(gè)節(jié)點(diǎn)i和j之間是否存在鏈接?hLi和hLj的節(jié)點(diǎn)嵌入可以被輸入到另一個(gè)基于sigmoid的MLP中,該MLP輸出這些節(jié)點(diǎn)之間存在邊的概率。

圖片

這些就是GNN在不同的應(yīng)用中所進(jìn)行的操作,無(wú)論哪種方式,每個(gè)h1→N∈HL都可以被堆疊,并被視為一批樣本。我們可以很容易地將其視為批處理。

對(duì)于給定的節(jié)點(diǎn)i, GNN聚合的第l層具有節(jié)點(diǎn)i的l跳鄰域。節(jié)點(diǎn)看到它的近鄰,并深入到網(wǎng)絡(luò)中,它與鄰居的鄰居交互。

這就是為什么對(duì)于非常小、稀疏(很少邊)的圖,大量的GNN層通常會(huì)導(dǎo)致性能下降:因?yàn)楣?jié)點(diǎn)嵌入都收斂到一個(gè)向量,因?yàn)槊總€(gè)節(jié)點(diǎn)都看到了許多跳之外的節(jié)點(diǎn)。對(duì)于小的圖,這是沒有任何作用的。

這也解釋了為什么大多數(shù)GNN論文在實(shí)驗(yàn)中經(jīng)常使用≤4層來防止網(wǎng)絡(luò)出現(xiàn)問題。

以節(jié)點(diǎn)分類為例訓(xùn)練GNN

在訓(xùn)練期間,對(duì)節(jié)點(diǎn)、邊或整個(gè)圖的預(yù)測(cè)可以使用損失函數(shù)(例如:交叉熵)與來自數(shù)據(jù)集的ground-truth標(biāo)簽進(jìn)行比較。也就是說gnn能夠使用反向傳播和梯度下降以端到端方式進(jìn)行訓(xùn)練。

訓(xùn)練和測(cè)試數(shù)據(jù)

與常規(guī)ML一樣,圖數(shù)據(jù)也可以分為訓(xùn)練和測(cè)試。這有兩種方法:

1、Transductive

訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)都在同一個(gè)圖中。每個(gè)集合中的節(jié)點(diǎn)相互連接。只是在訓(xùn)練期間,測(cè)試節(jié)點(diǎn)的標(biāo)簽是隱藏的,而訓(xùn)練節(jié)點(diǎn)的標(biāo)簽是可見的。但所有節(jié)點(diǎn)的特征對(duì)于GNN都是可見的。

我們可以對(duì)所有節(jié)點(diǎn)進(jìn)行二進(jìn)制掩碼(如果一個(gè)訓(xùn)練節(jié)點(diǎn)i連接到一個(gè)測(cè)試節(jié)點(diǎn)j,只需在鄰接矩陣中設(shè)置Aij=0)。

圖片

訓(xùn)練節(jié)點(diǎn)和測(cè)試節(jié)點(diǎn)都是同一個(gè)圖的一部分。訓(xùn)練節(jié)點(diǎn)暴露它們的特征和標(biāo)簽,而測(cè)試節(jié)點(diǎn)只暴露它們的特征。測(cè)試標(biāo)簽對(duì)模型隱藏。二進(jìn)制掩碼需要告訴GNN什么是訓(xùn)練節(jié)點(diǎn),什么是測(cè)試節(jié)點(diǎn)。

2、Inductive

另外一種方法是單獨(dú)的訓(xùn)練圖和測(cè)試圖。這類似于常規(guī)的ML,其中模型在訓(xùn)練期間只看到特征和標(biāo)簽,并且只看到用于測(cè)試的特征。訓(xùn)練和測(cè)試在兩個(gè)獨(dú)立的圖上進(jìn)行。這些測(cè)試圖分布在外,可以檢查訓(xùn)練期間的泛化質(zhì)量。

圖片

與常規(guī)ML一樣,訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)是分開保存的。GNN只使用來自訓(xùn)練節(jié)點(diǎn)的特征和標(biāo)簽。這里不需要二進(jìn)制掩碼來隱藏測(cè)試節(jié)點(diǎn),因?yàn)樗鼈儊碜圆煌募稀?/p>

反向傳播和梯度下降

在訓(xùn)練過程中,一旦我們向前通過GNN,我們就得到了最終的節(jié)點(diǎn)表示hLi∈HL, 為了以端到端方式訓(xùn)練,可以做以下工作:

  • 將每個(gè)hLi輸入MLP分類器,得到預(yù)測(cè)^yi
  • 使用ground-truth yi和預(yù)測(cè)yi→J(yi,yi)計(jì)算損失
  • 使用反向傳播來計(jì)算?J/?Wl,其中Wl是來自l層的參數(shù)矩陣
  • 使用優(yōu)化器更新GNN中每一層的參數(shù)Wl
  • (如果需要)還可以微調(diào)分類器(MLP)網(wǎng)絡(luò)的權(quán)重。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50714

    瀏覽量

    423137
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4771

    瀏覽量

    100712
  • 數(shù)學(xué)
    +關(guān)注

    關(guān)注

    0

    文章

    99

    瀏覽量

    19235
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    matlab 神經(jīng)網(wǎng)絡(luò) 數(shù)學(xué)建模數(shù)值分析

    matlab神經(jīng)網(wǎng)絡(luò) 數(shù)學(xué)建模數(shù)值分析 精通的可以討論下
    發(fā)表于 09-18 15:14

    matlab 中亮劍數(shù)學(xué) 全面掌握控制 神經(jīng)網(wǎng)絡(luò)就在腳下

    `如果想學(xué)控制,你的數(shù)學(xué)就是造詣,神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)離散數(shù)學(xué)數(shù)學(xué)建模實(shí)際問題分析,如何matlab求解,這里給你解答,這里是數(shù)學(xué)視頻,偏導(dǎo)數(shù)分
    發(fā)表于 07-30 11:46

    關(guān)于開關(guān)磁阻電機(jī)的matlab BP神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)建模方面的資料

    求大神們 給點(diǎn)關(guān)于開關(guān)磁阻電機(jī)的matlab BP神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)建模方面的資料
    發(fā)表于 11-17 11:16

    卷積神經(jīng)網(wǎng)絡(luò)入門資料

    卷積神經(jīng)網(wǎng)絡(luò)入門詳解
    發(fā)表于 02-12 13:58

    【PYNQ-Z2試用體驗(yàn)】神經(jīng)網(wǎng)絡(luò)基礎(chǔ)知識(shí)

    超過閾值,輸出就一躍而起。但我們一般用S函數(shù)作為激活函數(shù)。如下圖:2 該函數(shù)相比階越函數(shù)更加接近現(xiàn)實(shí)。神經(jīng)網(wǎng)絡(luò)原理如圖所示是一個(gè)具有兩層的神經(jīng)網(wǎng)絡(luò),每層有兩個(gè)
    發(fā)表于 03-03 22:10

    BP神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)數(shù)學(xué)知識(shí)分享

    一文看懂BP神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)數(shù)學(xué)知識(shí)
    發(fā)表于 06-16 07:14

    如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?

    原文鏈接:http://tecdat.cn/?p=5725 神經(jīng)網(wǎng)絡(luò)是一種基于現(xiàn)有數(shù)據(jù)創(chuàng)建預(yù)測(cè)的計(jì)算系統(tǒng)。如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?神經(jīng)網(wǎng)絡(luò)包括:輸入層:根據(jù)現(xiàn)有數(shù)據(jù)獲取輸入的層隱藏層:使用反向傳播優(yōu)化輸入變量權(quán)重的層,以提高模型的預(yù)測(cè)
    發(fā)表于 07-12 08:02

    卷積神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)原理介紹

    在之前的系列中,我們學(xué)習(xí)了密集連接的神經(jīng)網(wǎng)絡(luò)(densely connected neural networks)。這些網(wǎng)絡(luò)神經(jīng)元被分成組,形成連續(xù)的層,相鄰的兩個(gè)層之間的神經(jīng)元相互
    的頭像 發(fā)表于 04-22 11:44 ?4808次閱讀

    深入卷積神經(jīng)網(wǎng)絡(luò)背后的數(shù)學(xué)原理

    在計(jì)算機(jī)神經(jīng)視覺技術(shù)的發(fā)展過程中,卷積神經(jīng)網(wǎng)絡(luò)成為了其中的重要組成部分,本文對(duì)卷積神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)原理進(jìn)行了介紹。
    的頭像 發(fā)表于 04-25 14:52 ?3545次閱讀

    深度:了解訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)所用到的數(shù)學(xué)過程

    模型的訓(xùn)練、調(diào)參是一項(xiàng)非常費(fèi)時(shí)費(fèi)力的工作,了解神經(jīng)網(wǎng)絡(luò)內(nèi)部的數(shù)學(xué)原理有利于快速找出問題所在。
    的頭像 發(fā)表于 07-15 15:22 ?4089次閱讀
    深度:了解訓(xùn)練<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>時(shí)所用到的<b class='flag-5'>數(shù)學(xué)</b>過程

    圖解:卷積神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)原理解析

    圖解:卷積神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)原理解析 源自:數(shù)學(xué)中國(guó) 過去我們已經(jīng)知道被稱為緊密連接的神經(jīng)網(wǎng)絡(luò)。這些網(wǎng)絡(luò)神經(jīng)
    的頭像 發(fā)表于 09-16 10:01 ?1567次閱讀
    圖解:卷積<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b><b class='flag-5'>數(shù)學(xué)原理</b>解析

    詳解神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)原理1

    。 本文將流行的神經(jīng)網(wǎng)絡(luò)及其數(shù)學(xué)細(xì)微差別的進(jìn)行詳細(xì)的梳理和解釋,深度學(xué)習(xí)背后的思想是學(xué)習(xí)具有節(jié)點(diǎn)和邊的的結(jié)構(gòu)和空間特征,這些節(jié)點(diǎn)
    的頭像 發(fā)表于 03-17 09:58 ?632次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>圖</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的<b class='flag-5'>數(shù)學(xué)原理</b>1

    詳解神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)原理3

    。 本文將流行的神經(jīng)網(wǎng)絡(luò)及其數(shù)學(xué)細(xì)微差別的進(jìn)行詳細(xì)的梳理和解釋,深度學(xué)習(xí)背后的思想是學(xué)習(xí)具有節(jié)點(diǎn)和邊的的結(jié)構(gòu)和空間特征,這些節(jié)點(diǎn)
    的頭像 發(fā)表于 03-17 09:58 ?907次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>圖</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的<b class='flag-5'>數(shù)學(xué)原理</b>3

    神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)建模中的應(yīng)用

    數(shù)學(xué)建模是一種利用數(shù)學(xué)方法和工具來描述和分析現(xiàn)實(shí)世界問題的過程。神經(jīng)網(wǎng)絡(luò)是一種模擬人腦神經(jīng)元結(jié)構(gòu)和功能的計(jì)算模型,可以用于解決各種復(fù)雜問題。在數(shù)學(xué)
    的頭像 發(fā)表于 07-02 11:29 ?925次閱讀

    數(shù)學(xué)建模神經(jīng)網(wǎng)絡(luò)模型的優(yōu)缺點(diǎn)有哪些

    數(shù)學(xué)建模神經(jīng)網(wǎng)絡(luò)模型是一種基于人工神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)建模方法,它通過模擬人腦神經(jīng)元的連接和信息傳遞機(jī)制,對(duì)復(fù)雜系統(tǒng)進(jìn)行建模和分析。
    的頭像 發(fā)表于 07-02 11:36 ?896次閱讀
    RM新时代网站-首页