0
本文作者: 栗峰 | 2019-10-29 16:15 |
雷鋒網(wǎng)AI科技評(píng)論編者按:本篇文章的內(nèi)容是“計(jì)算機(jī)視覺及圖神經(jīng)網(wǎng)絡(luò)教程”的一部分,將概述重要的圖神經(jīng)網(wǎng)絡(luò)方面的工作進(jìn)展。通過提取關(guān)鍵思想并解釋使用Python和PyTorch這樣經(jīng)典的方法背后的所思所想。
本文來自Boris Knyazev的文章《Anisotropic, Dynamic, Spectral and Multiscale Filters Defined on Graphs》在不改變?cè)囊馑嫉幕A(chǔ)上,雷鋒網(wǎng)AI科技評(píng)論的編譯如下:
圖1:圖神經(jīng)網(wǎng)絡(luò)圖(GNN)及其相關(guān)工作進(jìn)展。為了避免造成進(jìn)一步的混亂,有一部分研究成果的邊緣并沒有突出顯示,例如,有關(guān)動(dòng)態(tài)圖所做的大量工作值得單獨(dú)概述。
在之前的“圖神經(jīng)網(wǎng)絡(luò)圖(GNN)以及相關(guān)的成果”中,添加了我去年遇到的關(guān)于圖的論文。在這個(gè)圖中,兩項(xiàng)研究成果之間的有向邊表示一篇文章是以另一篇文章為基礎(chǔ)的,而這個(gè)圖的顏色則表示:
紅色-頻譜方法(需要對(duì)拉普拉斯圖進(jìn)行特征分解,將在下面進(jìn)行解釋)
綠色-在空間域中的有效方法(不需要對(duì)拉普拉斯圖進(jìn)行特征分解)
藍(lán)色-等效于頻譜方法,但不需要進(jìn)行特征分解(因此,真正有效的是空間方法)
黑色-是GNN的補(bǔ)充方法,但與GNN本身的選擇無關(guān)(也就是池化和關(guān)注點(diǎn)的問題)。
請(qǐng)注意,有一部分其他重要的研究成果的邊緣沒有突出顯示,是為了避免造成進(jìn)一步的混亂,其中一小部分用粗體框標(biāo)出來的,將在這篇文章中進(jìn)行重點(diǎn)討論。免責(zé)聲明:我仍然找到了提煉我們近期研究成果的空間。
這里有一份簡(jiǎn)單的研究成果清單涵蓋了大多數(shù)重要方法:
知識(shí)圖的關(guān)系機(jī)器學(xué)習(xí)綜述(Nicket 等人, 2015)https://arxiv.org/abs/1503.00759
幾何深度學(xué)習(xí):超越歐幾里德數(shù)據(jù)(Hamilton等人,2017)https://arxiv.org/abs/1611.08097
結(jié)構(gòu)化的深度模型:在圖上進(jìn)行深度學(xué)習(xí)以及其他內(nèi)容(Kipf等人,2018 ) 通過演示幻燈片的形式進(jìn)行展現(xiàn)。http://tkipf.github.io/misc/SlidesCambridge.pdf
歸納關(guān)系偏差,深度學(xué)習(xí)和圖網(wǎng)絡(luò)(Battaglia等人,2018)https://arxiv.org/abs/1806.01261
在圖上進(jìn)行深度學(xué)習(xí):一項(xiàng)調(diào)查(Zhang等人,2018)https://arxiv.org/abs/1812.04202
圖神經(jīng)網(wǎng)絡(luò):方法與應(yīng)用綜述(Zhou等人,2018)https://arxiv.org/abs/1812.08434
圖神經(jīng)網(wǎng)絡(luò)的綜合研究(Wu等人,2019)https://arxiv.org/abs/1901.00596
深度神經(jīng)網(wǎng)絡(luò)中結(jié)構(gòu)的復(fù)興(Petar Veli?kovi?, 2019)博士論文https://www.repository.cam.ac.uk/handle/1810/292230
NIPS和CVPR視頻教程https://sungsoo.github.io/2018/02/01/geometric-deep-learning.html
第一次出現(xiàn)使用神經(jīng)網(wǎng)絡(luò)對(duì)圖進(jìn)行分類工作的似乎是Alessandro Sperduti和Antonina Starita在1997年發(fā)表的關(guān)于“結(jié)構(gòu)分類的監(jiān)督神經(jīng)網(wǎng)絡(luò)”的論文中提出的(https://ieeexplore.ieee.org/document/572108)。
圖2:這是Sperduti和Starita在1997提供一組的數(shù)字,與20多年后我們現(xiàn)在正在做的工作不謀而合。
Sperduti和Starita在1997指出:“到目前為止,神經(jīng)網(wǎng)絡(luò)已經(jīng)被用來對(duì)非結(jié)構(gòu)化模式和序列進(jìn)行分類。然而,由于它們是基于特征產(chǎn)生的方法,在處理復(fù)雜結(jié)構(gòu)的時(shí)候,標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)和統(tǒng)計(jì)方法還存在著些許不足?!?/p>
自1997年起,從圖中進(jìn)行學(xué)習(xí)的研究成果在數(shù)量上已經(jīng)增長(zhǎng)了很多,而且涉及到了很多不同的方向,如果沒有一些智能化的自動(dòng)化系統(tǒng),就很難找到它們。我相信我們正在趨于使用基于神經(jīng)網(wǎng)絡(luò)的方法(基于本教程第一部分中解釋的公式(2)),或者將神經(jīng)網(wǎng)絡(luò)與其他方法結(jié)合使用。
圖3:這是在本教程的第一部分中制作出來的圖神經(jīng)層的公式(2),在這一部分中我們也會(huì)用到。請(qǐng)記住,如果我們需要計(jì)算輸出特性的特定損耗,或者需要將這些圖層堆疊起來,那么就可以應(yīng)用諸如ReLU或Softmax之類的激活方法。
回顧一下我們?cè)诘谝徊糠种惺褂玫谋硎痉ǎ覀冇幸恍┚哂蠳個(gè)節(jié)點(diǎn)的無向圖G。圖中的每個(gè)節(jié)點(diǎn)都有一個(gè)C維特征向量,所有節(jié)點(diǎn)的特征表示為N×C維矩陣X???。在典型的圖網(wǎng)絡(luò)中,例如GCN(Kipf和Wling,ICLR,2017),我們將這些特征X???提供給具有C×F維可訓(xùn)練權(quán)值W???的圖神經(jīng)層,從而使該層的輸出是一個(gè)N×F矩陣中X?l+1?編碼更新的節(jié)點(diǎn)特征(希望在某種意義上能更好)。?是一個(gè)N×N的矩陣,其中???表示節(jié)點(diǎn)i是否連接到(相鄰)節(jié)點(diǎn)j,這個(gè)矩陣稱為相鄰矩陣。我使用?而不是普通的A來強(qiáng)調(diào)這個(gè)矩陣可以被規(guī)范化,以便于在深度網(wǎng)絡(luò)中的特征傳播。就本教程而言,我們可以假設(shè)?=A,也就是矩陣乘積?X???的每i行都包含節(jié)點(diǎn)i相鄰數(shù)據(jù)特征的和。
在本教程的其余部分中,我將簡(jiǎn)要解釋一些研究成果,它們?cè)诟庞[圖中用粗體標(biāo)記出來了。我建議對(duì)Bronstein等人的綜述進(jìn)行更全面、更正式的分析。
請(qǐng)注意,盡管我在下文中詳細(xì)介紹了頻譜圖卷積的一些技術(shù)細(xì)節(jié),但是最近的很多研究成果(如Xu等人的GIN, ICLR, 2019)都是在沒有頻譜卷積的情況下構(gòu)建的,并且還在一些任務(wù)中取得了很好的效果。但是,了解譜卷積的工作原理仍然有助于我們理解和避免出現(xiàn)其他方法存在的潛在問題。
Bruna 等人, 2014, ICLR 2014(https://arxiv.org/abs/1312.6203)
我在另一篇文章中詳細(xì)的解釋了頻譜圖卷積。
在本教程的這一部分中,我將簡(jiǎn)要地總結(jié)一下。頻譜圖卷積的正式定義與信號(hào)/圖像處理中的卷積定理非常相似,可以寫成:
圖4:頻譜圖卷積,其中⊙表示按特征方向的乘積。
公式中的V表示特征向量,Λ是拉普拉斯圖 L的特征值,通過特征分解可以發(fā)現(xiàn):l=VΛV?;W_頻譜是濾波器。在本教程中,我假設(shè)將“拉普拉斯算子對(duì)稱歸一化”。它僅基于圖的相鄰矩陣A進(jìn)行計(jì)算,可以通過幾行Python代碼完成,如下所示:
在這里,我們假設(shè)A是對(duì)稱的,即A=A?,并且我們的圖是無向的,否則節(jié)點(diǎn)度不能明確的定義,并且在計(jì)算拉普拉斯算子的時(shí)候必須要做一些假設(shè)。在計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)的背景中,拉普拉斯圖定義了如果我們以公式(2)的形式疊加多個(gè)圖神經(jīng)層,那么節(jié)點(diǎn)特征應(yīng)當(dāng)如何更新。
因此,給定拉普拉斯圖L,節(jié)點(diǎn)特征X和濾波器w_頻譜,在Python中,圖的頻譜卷積看起來非常簡(jiǎn)單:
假設(shè)我們的節(jié)點(diǎn)特征X???是一維的,例如MNIST像素,但是它可以擴(kuò)展到C維的情況:我們只需要對(duì)每個(gè)信息通道重復(fù)這個(gè)卷積,然后像信號(hào)或圖像卷積一樣在C上求和。
公式(3)在本質(zhì)上與使用傅立葉變換的規(guī)則網(wǎng)格上對(duì)信號(hào)進(jìn)行的頻譜卷積是一樣的,因此也為機(jī)器學(xué)習(xí)帶來了一些問題:
1.可訓(xùn)練權(quán)值(濾波器)w_頻譜的維數(shù)取決于圖中的節(jié)點(diǎn)數(shù)N;
2. W_頻譜也取決于以特征向量V編碼的圖結(jié)構(gòu)。
這些問題有助于防止數(shù)據(jù)擴(kuò)展到具有大型可變結(jié)構(gòu)的圖的數(shù)據(jù)集中。
為了解決第一個(gè)問題,Bruna等人根據(jù)頻譜理論,提出了在頻譜域中滑動(dòng)濾波器的方法,使濾波器在空間域上更具有局部性。其主題思想就是,你可以將公式(3)中的濾波器W_頻譜表示為?個(gè)預(yù)定義函數(shù)(如樣條曲線)的和,并不是學(xué)習(xí)N個(gè)W的值,而是學(xué)習(xí)K系數(shù)α的總和:
圖5:我們可以將N維濾波器W_頻譜近似為K個(gè)函數(shù)f的有限和,如下所示。因此,我們可以學(xué)習(xí)這些函數(shù)的K個(gè)系數(shù)(alpha),而不是學(xué)習(xí)W_頻譜的N個(gè)值。 當(dāng)K << N時(shí),它變得有效。
盡管fk的維數(shù)取決于節(jié)點(diǎn)N的數(shù)量,但這些函數(shù)是固定的,因此我們不需要學(xué)習(xí)它們。我們唯一需要了解的是系數(shù)α,所以W_頻譜也不再依賴于N。為了使我們?cè)诠?4)中的近似值變得合理,我們希望K<<N能將可訓(xùn)練參數(shù)的數(shù)量從N減少到K,更重要的是使它獨(dú)立于N,這樣我們的GNN就可以消化任意大小的圖。
在解決第一個(gè)問題所用到的這種平滑方法并不適用于解決第二個(gè)問題。
Defferrard等人,NeurIPS, 2016(https://arxiv.org/abs/1606.09375)
頻譜卷積及其平滑形式的主要缺點(diǎn)在于,它仍然需要對(duì)N×N維拉普拉斯圖L進(jìn)行特征分解,這就產(chǎn)生了兩個(gè)主要問題:
1.本征分解是非常復(fù)雜的,O(N3)。 另外,對(duì)于比較大的圖,在RAM中保持拉普拉斯圖的密集格式是不可行的。其中一種解決方案是使用稀疏矩陣并使用Python中的scipy.sparse.linalg.eigs查找特征向量。此外,你可以在具有大量RAM和CPU內(nèi)核的專用服務(wù)器上預(yù)處理所有的訓(xùn)練圖。在很多的應(yīng)用程序中,你的測(cè)試圖都可以預(yù)先進(jìn)行預(yù)處理,但是如果不斷有大量新的大型圖涌入,特征分解的效果可能也會(huì)不那么好。
2. 另一個(gè)問題是,你訓(xùn)練的模型最終與圖的特征向量V會(huì)緊密的聯(lián)系起來。如果你的訓(xùn)練圖和測(cè)試圖的結(jié)構(gòu)相差很大(節(jié)點(diǎn)和邊的數(shù)量),那么這可能是一個(gè)大問題。另一方面,如果所有圖都非常相似,那么所遇到的問題就小得多了。而且,如果你在頻域中使用的是某些平滑的濾波器,例如上面討論的樣條,那么濾波器會(huì)變得更加局部化,并且在適應(yīng)新圖的問題上似乎就更加不明顯了。然而,這些模型仍然非常有限。
那么,到現(xiàn)在為止Chebyshev圖卷積與所有這些內(nèi)容又有什么關(guān)系呢?
事實(shí)證明,它可以同時(shí)解決這兩個(gè)問題!
也就是說,它避免了計(jì)算代價(jià)高昂的特征分解,濾波器也不再“附加”于特征向量(但它們?nèi)匀皇翘卣髦郸暮瘮?shù))。此外,它具有非常有用的參數(shù),通常表示為K,憑直覺講應(yīng)該與我們上面公式(4)中的K相似,它決定了濾波器的位置。通俗地講:對(duì)于K=1,我們只將節(jié)點(diǎn)特征X???提供給我們的GNN;對(duì)于K=2,我們輸入X???和?X???;對(duì)于K = 3,我們輸入X???,?X???和?2X???; 對(duì)于較大的K,依此類推(希望你也注意到了這種模式)請(qǐng)查看Defferrard等人提出的更準(zhǔn)確和正式的定義。下面是我的代碼,以及其他分析,參見(Knyazev等人,NeurIPS-W,2018)。
由于相鄰矩陣的功率特性,當(dāng)我們?cè)趫?zhí)行?2×???的時(shí)候,我們實(shí)際上是對(duì)2-hop相鄰的數(shù)據(jù)求平均值(或與?的歸一化方式有關(guān)),類似于??X???中的任意n,如下圖所示,這里我們就是對(duì)n-hop的相鄰數(shù)據(jù)求平均值。
圖6:對(duì)于節(jié)點(diǎn)1(深藍(lán)色),是K=3的Chebyshev卷積。帶圓圈的節(jié)點(diǎn)表示影響節(jié)點(diǎn)1特征表示的節(jié)點(diǎn),[,]運(yùn)算符表示特征維度上的連接。W???為3C×F維權(quán)值。
請(qǐng)注意,為了滿足Chebyshev基的正交性,?假定在圖中不設(shè)循環(huán),因此在矩陣乘積?X???中的每i行中,我們將具有節(jié)點(diǎn)i的鄰域特征,而不是節(jié)點(diǎn)i本身的特征。單獨(dú)提供給矩陣X???。
如果K等于節(jié)點(diǎn)數(shù)N,那么Chebyshev卷積近似于頻譜卷積,濾波器的接收域就是整個(gè)圖。但是,就卷積網(wǎng)絡(luò)而言,我們不希望我們的濾波器和輸入的圖像一樣大,原因很久之前我就已經(jīng)討論過了,所以實(shí)際上,K取的值會(huì)比較小。
以我的經(jīng)驗(yàn)來看,這是功能最強(qiáng)大的GNN之一,在很多的關(guān)于圖的任務(wù)中都取得了很好的效果。主要缺點(diǎn)是在前進(jìn)或者后退的時(shí)候需要循環(huán)遍歷K(由于Chebyshev多項(xiàng)式是遞歸的,因此無法并行化它們),這會(huì)減慢模型的速度。
和上面討論一樣,我們不需要訓(xùn)練濾波器,只需訓(xùn)練系數(shù),這次訓(xùn)練的是Chebyshev多項(xiàng)式的系數(shù)。
圖7:Chebyshev基用于近似頻譜域中的卷積。
要生成Chebyshev基,可以使用以下Python代碼:
生成的樣條和Chebyshev基的完整代碼在我的 github repo中。
為了說明Chebyshev濾波器是如何在不規(guī)則網(wǎng)格上顯示的,我遵循Bruna等人的實(shí)驗(yàn)。再次以與我展示拉普拉斯圖的特征向量相同的方式,從MNIST網(wǎng)格中抽取400個(gè)隨機(jī)點(diǎn),我在這400個(gè)位置采樣的MNIST圖像上訓(xùn)練了Chebyshev圖卷積模型(所有圖像都使用相同的不規(guī)則網(wǎng)格),下面顯示了當(dāng)K=1和K=20時(shí)的濾波器之一。
圖8:在MNIST上訓(xùn)練了一個(gè)單獨(dú)的Chebyshev濾波器(左側(cè)k=3,右側(cè)K=20),并將其應(yīng)用于具有400個(gè)點(diǎn)的不規(guī)則網(wǎng)格中的不同位置(顯示為紅色像素)。與標(biāo)準(zhǔn)ConvNets的過濾器相比,GNN過濾器根據(jù)應(yīng)用節(jié)點(diǎn)的不同而具有不同的形狀,因?yàn)槊總€(gè)節(jié)點(diǎn)都具有不同的鄰域結(jié)構(gòu)。
Kipf 和 Welling, ICLR, 2017(https://arxiv.org/abs/1609.02907)
你們可能已經(jīng)注意到了,如果增加Chebyshev卷積的K,可訓(xùn)練參數(shù)的總數(shù)就會(huì)相應(yīng)增加。例如,對(duì)于K = 2,我們的權(quán)值W???將會(huì)是2C×F,而不僅僅是C×F。這是因?yàn)槲覀儗⑻卣鱔???和?X???連接到了單個(gè)N×2C的矩陣中。更多的訓(xùn)練參數(shù)也就意味著模型會(huì)更加難以訓(xùn)練,必須標(biāo)記更多的數(shù)據(jù)進(jìn)行訓(xùn)練。圖的數(shù)據(jù)集通常會(huì)非常小。
在計(jì)算機(jī)視覺領(lǐng)域中,MNIST被認(rèn)為是一個(gè)很小的數(shù)據(jù)集,因?yàn)閳D像只有28×28維,并且只有60k訓(xùn)練圖像,但是對(duì)于圖網(wǎng)絡(luò)而言,MNIST卻是相當(dāng)大的,因?yàn)槊總€(gè)圖有N=784個(gè)節(jié)點(diǎn),60k是大量的訓(xùn)練圖。與計(jì)算機(jī)視覺任務(wù)相比,很多圖數(shù)據(jù)集只有大約20-100個(gè)節(jié)點(diǎn)和200-1000個(gè)訓(xùn)練示例。這些圖可以表示特定的小分子,而標(biāo)記化學(xué)或生物數(shù)據(jù)通常比標(biāo)記圖像的成本更昂貴。
因此,訓(xùn)練Chebyshev卷積模型可能會(huì)導(dǎo)致訓(xùn)練集嚴(yán)重過擬合(即模型的訓(xùn)練損失接近于0,但驗(yàn)證或測(cè)試誤差較大)。因此,Kipf和Welling的GCN本質(zhì)上將節(jié)點(diǎn)特征X???和?X???的矩陣“合并”為單個(gè)N×C矩陣。結(jié)果,與K = 2的Chebyshev卷積相比,該模型要訓(xùn)練的參數(shù)少了兩倍,但具有相同的1 hop接受域。主要技巧是通過添加一個(gè)由I到?的單位矩陣并以特定方式對(duì)其進(jìn)行規(guī)范化將自循環(huán)添加到圖中,因此,現(xiàn)在在矩陣乘積?X?的每i行中,我們將擁有節(jié)點(diǎn)i及其相鄰數(shù)據(jù)的特征。
由于這個(gè)模型具有輕量級(jí)、良好的性能和對(duì)較大圖的延展性,因此該模型似乎是適合許多應(yīng)用程序的標(biāo)準(zhǔn)基線選擇。
GCN與Chebyshev卷積的區(qū)別如下
上面的代碼遵循與教程第一部分相同的結(jié)構(gòu),在第一部分中,我比較了經(jīng)典的NN和GNN。GCN和Chebyshev卷積的主要步驟之一是計(jì)算重新縮放拉普拉斯圖L。進(jìn)行重新縮放的目的是使特征值在[-1,1]范圍內(nèi)進(jìn)行,以方便訓(xùn)練(這在實(shí)踐中可能不是很重要的步驟,因?yàn)闄?quán)值可以在訓(xùn)練過程中適應(yīng))。在GCN中,在計(jì)算拉普拉斯算子之前,先通過添加單位矩陣將自循環(huán)添加到圖中。兩種方法的主要區(qū)別在于,在Chebyshev卷積中,我們遞歸地在K上循環(huán),以捕獲K-hop附近的特征。我們可以將這樣的GCN層或Chebyshev圖層與非線性層疊加,建立一個(gè)圖神經(jīng)網(wǎng)絡(luò)。
現(xiàn)在,請(qǐng)?jiān)试S我禮貌地打斷一下頻譜的討論,并給出其他兩個(gè)令人興奮的方法背后的總體思路: :Simonovsky和Komodakis,CVPR,2017年的邊緣條件濾波器(https://arxiv.org/abs/1704.02901)和Monti等人,CVPR,2017年的MoNet(https://arxiv.org/abs/1611.08402),它們具有相似的概念。
Simonovsky 和 Komodakis, CVPR, 2017(https://arxiv.org/abs/1704.02901)
就像你知道的那樣,在ConvNets中,我們通過優(yōu)化諸如交叉熵之類的損失來學(xué)習(xí)權(quán)值(濾波器)。同樣,我們?cè)贕NN中學(xué)習(xí)W???。想象一下,你不用學(xué)習(xí)這些權(quán)值,而是擁有另外一個(gè)可以預(yù)測(cè)權(quán)值的網(wǎng)絡(luò)。因此,在訓(xùn)練過程中,我們將學(xué)習(xí)該輔助網(wǎng)絡(luò)的權(quán)值,它以圖像或圖作為輸入,并返回工作中的權(quán)值W???(Θ)作為輸出。這一想法基于動(dòng)態(tài)濾波器網(wǎng)絡(luò)(Brabandere等人,NIP,2016),其中“動(dòng)態(tài)”意味著濾波器W???將因輸入不同而有所不同,不再是訓(xùn)練結(jié)束后固定(或靜態(tài))濾波器的標(biāo)準(zhǔn)模型。
圖9:使用輔助“濾波器生成網(wǎng)絡(luò)”F?預(yù)測(cè)主要網(wǎng)絡(luò)的邊緣特定權(quán)值Θ。X??1是輸入節(jié)點(diǎn)的特性,X?是輸出特性。這個(gè)圖顯示了節(jié)點(diǎn)1的“動(dòng)態(tài)卷積”的單次迭代(黃色)。標(biāo)準(zhǔn)GNN通常只會(huì)平均(或求和)節(jié)點(diǎn)1相鄰的節(jié)點(diǎn)(節(jié)點(diǎn)2、3、4、5)的特征,這相當(dāng)于各向同性濾波器(Θ將是一個(gè)常數(shù)向量)。相比之下,這個(gè)模型還具有各向異性濾波器,因?yàn)樗谶吘墭?biāo)簽L可以預(yù)測(cè)節(jié)點(diǎn)1及其所有相鄰數(shù)據(jù)之間的不同邊緣值,因此將特征X?(1)計(jì)算為相鄰數(shù)據(jù)特征的加權(quán)平均值。圖來自(Simonovsky 和 Komodakis, CVPR, 2017)。
這是一種非常普遍的卷積形式,除了圖像以外,還可以很容易地應(yīng)用到圖或點(diǎn)云上,就像他們?cè)贑VPR論文中所做的那樣,而且還獲得了很好的效果。但是,沒有“免費(fèi)的午餐”,訓(xùn)練這樣的模型是相當(dāng)具有挑戰(zhàn)性的,因?yàn)楝F(xiàn)在對(duì)常規(guī)的網(wǎng)格約束已經(jīng)放松,并且解決方案的范圍顯著擴(kuò)大。
對(duì)于有許多邊的較大圖,或者對(duì)于更深層次的卷積尤其如此,這些圖通常有數(shù)百個(gè)通道(特征數(shù)量,C),所以你可能最終會(huì)為每個(gè)輸入生成數(shù)千個(gè)數(shù)字!在這方面,標(biāo)準(zhǔn)的ConvNets的表現(xiàn)就非常好,因?yàn)槲覀儧]有浪費(fèi)模型的功能來預(yù)測(cè)這些權(quán)值,而是直接強(qiáng)制所有輸入的濾波器都相同。但是,這種先驗(yàn)條件也使ConvNets受到了限制,我們不能直接將它們應(yīng)用于圖或點(diǎn)云。因此,與往常一樣,在特定的任務(wù)中,靈活性和性能之間需要權(quán)衡取舍。
當(dāng)模型需要應(yīng)用于像MNIST這樣的圖像時(shí),邊緣條件模型可以學(xué)習(xí)預(yù)測(cè)各向異性濾波器例如對(duì)方向敏感的濾波器,邊緣檢測(cè)器。與我在本教程第一部分中討論的高斯濾波器相比,這些濾波器能夠更好地捕捉圖像中的某些模式,比如數(shù)字筆畫。
圖10:在MNIST上學(xué)習(xí)的卷積濾波器以低(左)和高(右)的分辨率采樣。圖來自(Simonovsky和Komodakis, CVPR, 2017)。
我想再?gòu)?qiáng)調(diào)一次,每當(dāng)我們有了一個(gè)帶有輔助網(wǎng)絡(luò)的復(fù)雜模型時(shí),從某種意義上講,它就變成了先有雞還是先有蛋的問題。為了解決這個(gè)問題,其中一個(gè)網(wǎng)絡(luò)(輔助網(wǎng)絡(luò)或主要網(wǎng)絡(luò))應(yīng)該接收到非常強(qiáng)的信號(hào),以便它可以隱蔽地監(jiān)控另一個(gè)網(wǎng)絡(luò)。 在我們的BMVC論文中,有類似于Simonovsky和Komodakis的研究工作的內(nèi)容,為了促進(jìn)訓(xùn)練,我們對(duì)邊緣生成網(wǎng)絡(luò)添加了額外的限制條件。 我將在以后的文章中詳細(xì)描述我們的研究工作。
Monti 等人, CVPR, 2017(https://arxiv.org/abs/1688.08420)
MoNet與本文討論的其他研究工作不同,因?yàn)镸oNet假定了具有節(jié)點(diǎn)坐標(biāo)的概念,因此它更適合諸如3D網(wǎng)格分析或圖像/視頻推理之類的幾何任務(wù)。這有點(diǎn)類似于Simonovsky和Komodakis的邊緣條件濾波器,因?yàn)樗麄冞€引入了一個(gè)輔助可學(xué)的函數(shù)?(?,?ρ)可以預(yù)測(cè)權(quán)值(?,?,ρ)。
不同之處在于這些權(quán)值取決于節(jié)點(diǎn)的極坐標(biāo)(?角和半徑ρ);高斯的均值和方差可以約束這個(gè)具有可訓(xùn)練參數(shù)為w的函數(shù),因此我們不需要學(xué)習(xí)N×N矩陣,而僅需要學(xué)習(xí)獨(dú)立于圖大小,N的固定大小向量(均值和方差)。對(duì)于ConvNets,這與為每個(gè)濾波器僅學(xué)習(xí)2個(gè)值(高斯的均值和方差)相同,而不是分別為3×3、5×5或11×11維濾波器學(xué)習(xí)9、25或121個(gè)值。這種參數(shù)化將大大減少ConvNet中的參數(shù)數(shù)量,但濾波器捕捉圖像特征的能力將非常有限。
Monti等人。訓(xùn)練?高斯的均值和方差,以及節(jié)點(diǎn)坐標(biāo)的轉(zhuǎn)換過程類似于將它們擬合到高斯混合模型中。如果我們希望我們的濾波器能夠更加全局化,那么該模型需要大量的計(jì)算訓(xùn)練,但它對(duì)于可視任務(wù)來說會(huì)是一個(gè)不錯(cuò)的選擇(請(qǐng)參閱我們的BMVC文章進(jìn)行比較),但是在非可視任務(wù)上它的表現(xiàn)比簡(jiǎn)單的GCN還要差。(Knyazev等人,NeurIPS-W,2018)。 由于函數(shù)D取決于坐標(biāo),因此生成的濾波器也是各向異性的,并且具有定向和拉長(zhǎng)高斯曲線的形狀,如下圖所示。
圖11:用MoNet訓(xùn)練的極坐標(biāo)為?和ρ的濾波器。 每個(gè)橢圓對(duì)應(yīng)于某個(gè)固定水平的高斯切片。這里有個(gè)想法是,如果第i個(gè)節(jié)點(diǎn)的坐標(biāo)接近第j個(gè)高斯的中點(diǎn),則在索引(i,j)處生成的權(quán)值將接近1。
總結(jié):
盡管經(jīng)過了這么長(zhǎng)時(shí)間的討論,但我們也只是了解到了一點(diǎn)皮毛。圖神經(jīng)網(wǎng)絡(luò)的應(yīng)用已經(jīng)遠(yuǎn)遠(yuǎn)超出了典型的圖推理任務(wù),比如分子分類。不同的圖神經(jīng)層的數(shù)量正在迅速增加,就像是幾年前卷積網(wǎng)絡(luò)出現(xiàn)的情況,所以很難追蹤它們。在這一點(diǎn)上,PyTorch geometry (PyG)是一個(gè)很好的學(xué)習(xí)圖的工具,它經(jīng)常使用新的圖層和技巧填充它的集合。
雷鋒網(wǎng)擴(kuò)展閱讀:
手把手解釋頻譜圖卷積http://www.ozgbdpf.cn/news/201909/UBlc5tduQD9yjnnC.html?type=preview&sign=rqhxr4R4oqeDpqKqg3V6koDLo5OBn4-WhIbMoQ
原文鏈接:https://towardsdatascience.com/tutorial-on-graph-neural-networks-for-computer-vision-and-beyond-part-2-be6d71d70f49
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。