我們?cè)赱1]中探討了歐幾里德結(jié)構(gòu)數(shù)據(jù)(如圖像,音視頻,文本等)和非歐幾里德結(jié)構(gòu)數(shù)據(jù)(如Graph和Manifold等)之間的不同點(diǎn),在本文中,我們探討如何在非歐幾里德結(jié)構(gòu)數(shù)據(jù),特別是Graph數(shù)據(jù)上定義出卷積操作,以便于實(shí)現(xiàn)深度神經(jīng)學(xué)習(xí)。本文轉(zhuǎn)載自徐飛翔的“《Geometric Deep Learning學(xué)習(xí)筆記》第二篇, 在Graph上定義卷積操作,圖卷積網(wǎng)絡(luò)”
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
非歐幾里德數(shù)據(jù) 嵌入 歐幾里德空間
我們提到過歐幾里德數(shù)據(jù)可以很容易嵌入到歐幾里德空間中,無論是樣本空間還是經(jīng)過特征提取后的特征空間,這個(gè)特性可以方便后續(xù)的分類器設(shè)計(jì)。然后,遺憾的是,非歐幾里德數(shù)據(jù)因?yàn)樘烊坏鼐哂胁还潭ǖ念I(lǐng)域元素?cái)?shù)量或者連接數(shù)量等,不能直觀地嵌入歐幾里德空間,并且也很難在Spatial上定義出卷積操作出來,而這個(gè)卷積操作,在歐幾里德數(shù)據(jù)上是很直觀可以定義出來的,如:
因此我們后續(xù)要想辦法在非歐幾里德數(shù)據(jù),比如常見的Graph數(shù)據(jù)上定義出卷積操作。在進(jìn)一步探討之前,我們不妨先探討下什么叫做 嵌入到歐幾里德空間以及為什么要這樣做。一般來說,歐幾里德數(shù)據(jù)因?yàn)槠渑帕姓R,天然可以嵌入到歐幾里德空間內(nèi),并且進(jìn)行歐幾里德空間下定義的算子的度量,比如歐式距離等,然后可以進(jìn)一步的進(jìn)行樣本之間的距離計(jì)算以及分類聚類等更為高級(jí)的操作。然而,非歐數(shù)據(jù)不能直接嵌入到其中,需要用特定的方法才能嵌入到歐幾里德空間中,在Geometric Deep Learning中,這個(gè)特定方法就是指的是深度學(xué)習(xí)方法,整個(gè)框圖如:
有了這個(gè)操作,即便是對(duì)于元素排列不整齊的Graph或者M(jìn)anifold,也可在歐幾里德空間進(jìn)行樣本之間的距離度量了,而且,這個(gè)過程還往往伴隨著降維,減少計(jì)算量,方便可視化等優(yōu)點(diǎn)。這個(gè)將會(huì)方便后續(xù)的分類器,聚類器等設(shè)計(jì)。
Graph Deep Learning
因?yàn)镚raph數(shù)據(jù)是最為常見的非歐幾里德數(shù)據(jù),我們這里以圖深度學(xué)習(xí)為例子。圖深度學(xué)習(xí)的任務(wù)目標(biāo)可以分為幾種:
- 將有著不同拓?fù)浣Y(jié)構(gòu),不同特征的圖分類為幾類。在這種情況是對(duì)整個(gè)Graph進(jìn)行分類,每個(gè)Graph有一個(gè)標(biāo)簽。
- 對(duì)一個(gè)Graph的所有節(jié)點(diǎn)node進(jìn)行分類。這種情況相當(dāng)于是文獻(xiàn)引用網(wǎng)絡(luò)中對(duì)文獻(xiàn)類型分類,社交網(wǎng)絡(luò)對(duì)用戶屬性分類,每個(gè)節(jié)點(diǎn)有一個(gè)標(biāo)簽。
- 生成一個(gè)新的Graph。這個(gè)相當(dāng)于是藥物分子的生成等。
其中,最為常見的是第一類型,我們對(duì)此進(jìn)行詳細(xì)的任務(wù)定義如:
我們用
表示一個(gè)圖,其中
是對(duì)于圖的鄰接矩陣[2],而
是節(jié)點(diǎn)的特征矩陣,其中
表示有
個(gè)節(jié)點(diǎn),
表示每個(gè)節(jié)點(diǎn)有
個(gè)特征。給定一個(gè)有標(biāo)簽的
樣本集:
,其中
是標(biāo)簽有限集合,并且對(duì)應(yīng)于
,那么我們的學(xué)習(xí)目標(biāo)就是學(xué)習(xí)到一個(gè)映射
使得:
在頻域定義卷積
我們之前談到在spatial域上難以直接定義graph的卷積操作,那么我們自然就想到如果能在頻域定義出來卷積,那也是不錯(cuò)的,因此我們接下來想要探討怎么在頻域定義卷積。在此之前,我們需要了解下熱傳播模型的一點(diǎn)東西,因?yàn)閳D中節(jié)點(diǎn)的信息傳遞,一般來說是通過鄰居節(jié)點(diǎn)進(jìn)行傳遞的,這一點(diǎn)和物體將熱量從高到低的傳遞非常相似,可以對(duì)此建立和熱傳遞相似的模型。
在[3]的這篇回答中,作者對(duì)熱傳播和圖節(jié)點(diǎn)信息傳遞進(jìn)行了非常精彩的闡述,并且引出了 拉普拉斯矩陣(Laplacian Matrix) 對(duì)于節(jié)點(diǎn)之間關(guān)系的描述作用,值得各位讀者參考。
總的來說,就是對(duì)拉普拉斯矩陣進(jìn)行特征值分解,其每個(gè)特征向量可以看成是頻域中正交的正交基底,其對(duì)應(yīng)的特征值可以看成是頻率,對(duì)拉普拉斯矩陣進(jìn)行特征值分解的公式如下:
其中是拉普拉斯矩陣,而
是前
個(gè)拉普拉斯特征向量組成的矩陣,而
是由對(duì)應(yīng)特征值組成的對(duì)角矩陣。我們接下來先暫時(shí)忘記這個(gè)(2.1)公式,我們要對(duì)整個(gè)圖的拓?fù)浣Y(jié)構(gòu)進(jìn)行表示,那么通過鄰接矩陣A就可以很容易的表示出來,其中,無向圖的鄰接矩陣是對(duì)稱矩陣,而有向圖的鄰接矩陣則不一定,讓我們舉一個(gè)例子方便接下來的討論,如Fig 4所示,這是個(gè)無向圖的例子。其中我們之前談到的拉普拉斯矩陣可以用公式(2.2)
確定,其中D DD為度數(shù)矩陣,A AA為鄰接矩陣,整個(gè)過程如Fig 3.所示。
總的來說,用拉普拉斯矩陣可以在某種程度上表示一個(gè)Graph的拓?fù)浣Y(jié)構(gòu),這點(diǎn)和鄰接矩陣相似。
注意到我們有對(duì)拉普拉斯矩陣L LL的特征值分解:
其中為正交矩陣,其每一列都是特征向量,而
是一個(gè)對(duì)角矩陣,其每個(gè)對(duì)角元素都是對(duì)應(yīng)特征向量的特征值。對(duì)式子(2.3)進(jìn)行變換,注意到正交矩陣的轉(zhuǎn)置等于其逆,我們有:
因此,對(duì)于一個(gè)給定信號(hào)來說,其傅立葉變換可以定義為
,其反傅立葉變換為
,我們用符號(hào)
表示圖傅立葉變換。那么對(duì)于信號(hào)
和卷積核,我們有:
其中表示逐個(gè)元素的相乘。
那么對(duì)于一個(gè)卷積核,我們有:
其中我們需要學(xué)習(xí)的參數(shù)就在中,一共有
個(gè)。
類似于一般歐幾里德結(jié)構(gòu)數(shù)據(jù)的傅立葉變換,在圖傅立葉變換中,其每個(gè)基底(也就是特征向量)也可以可視化出來,如Fig 4所示:
ChebNet, 切比雪夫網(wǎng)絡(luò)
上面介紹的網(wǎng)絡(luò)有兩個(gè)很大的問題:
- 它們不是在空間上具有局部性的,比如二維圖像的卷積網(wǎng)絡(luò)就具有局部性,也稱之為局部連接,某個(gè)輸出神經(jīng)元只是和局部的輸入神經(jīng)元直接相連接。這個(gè)操作有利于減少計(jì)算量,參數(shù)量和提高泛化能力。
- 計(jì)算復(fù)雜度為
,和節(jié)點(diǎn)的數(shù)量成比例,不利于應(yīng)用在大規(guī)模Graph上。
- 為了解決第一個(gè)問題,我們把
寫成:
,
我們?cè)趫D論中知道有個(gè)結(jié)論:
若節(jié)點(diǎn)
和節(jié)點(diǎn)
的最短路徑
,那么有
,其中
為拉普拉斯矩陣。
因此有:
不難看出當(dāng),其中
為預(yù)設(shè)的核大小 時(shí),
,因此式子(3.2)其實(shí)只有前
項(xiàng)不為0,因此是具有K-局部性的,這樣我們就定義出了局部性,那么計(jì)算復(fù)雜度變成了
。
注意到,在式子中,因?yàn)?span>
,因此存在
,
的矩陣相乘,其計(jì)算復(fù)雜度為
,而且每次計(jì)算都要計(jì)算這個(gè)乘積,這個(gè)顯然不是我們想看到的。
一種解決方法就是把參數(shù)化為一個(gè)可以從L LL遞歸地計(jì)算出來的多項(xiàng)式,用人話說就是可以k kk時(shí)刻的
可以由
時(shí)刻的
簡(jiǎn)單地通過多項(xiàng)式組合計(jì)算出來。在文章[5]中,使用了切比雪夫多項(xiàng)式展開作為這個(gè)近似的估計(jì)。該式子可表示為:
因此我們最后有:
式子(3.4)仍然是和有關(guān)的值,我們希望直接和
相關(guān),以便于計(jì)算,因此繼續(xù)推導(dǎo),有:
注意到是冪等矩陣,也就是有
,因此繼續(xù)推導(dǎo)(3.5)有:
同樣的,采用切比雪夫多項(xiàng)式展開,有:
因此,最后對(duì)于第個(gè)輸出的特征圖而言,我們有:
其中是輸入的特征圖,
表示第
個(gè)樣本。因此我們一共有
個(gè)向量,每個(gè)向量中有
個(gè)參數(shù),因?yàn)?span>
,最后一共有
個(gè)可訓(xùn)練參數(shù)。其中的
是采用了切比雪夫多項(xiàng)式展開,因此可以遞歸運(yùn)算,以減少運(yùn)算復(fù)雜度。
ChebNet一階近似
根據(jù)我們之前的討論,階的
可以表示為:
我們從網(wǎng)絡(luò)的設(shè)計(jì)中知道,
的卷積核在足夠多的的層數(shù)的疊加后,有足夠的層次信息可以提供足夠大的感知野[6]。因此,也許對(duì)于
的一階近似就足夠了,因此我們將
,有:
在式子(4.2)中,我們假設(shè)了?以進(jìn)一步減少參數(shù)量,而且對(duì)拉普拉斯矩陣進(jìn)行了歸一化,這個(gè)歸一化操作我們接下來會(huì)繼續(xù)討論,這里暫且給出歸一化的公式為:
其中,是度數(shù)矩陣,
。
另外,為了增加節(jié)點(diǎn)自身的連接(這個(gè)我們以后繼續(xù)講解),我們通常會(huì)對(duì)鄰接矩陣A AA進(jìn)行變化,有:
因此最終有ChebNet的一階近似結(jié)果為:
對(duì)(4.5)進(jìn)行矩陣表達(dá)并且加入激活函數(shù),有 Graph Convolution Network(GCN) 的表達(dá)[7],如:
其中的是
層的特征圖,
是
層的可學(xué)習(xí)參數(shù)。其中激活函數(shù)一般選擇
,即是
。
本篇文章就此結(jié)束,我們?cè)谙乱黄恼聦?huì)繼續(xù)介紹GCN在空間域上的理解,即是基于消息傳遞(Message Passing)中的解釋,并且會(huì)舉出一些例子來方便理解。
該系列其他文章
- 《學(xué)習(xí)geometric deep learning筆記系列》第一篇,Non-Euclidean Structure Data之我見
- 《Geometric Deep Learning學(xué)習(xí)筆記》第三篇,GCN的空間域理解,Message Passing以及其含義
Reference
[1].https://blog.csdn.net/LoseInVain/article/details/88373506
[2].https://en.wikipedia.org/wiki/Adjacency_matrix[
3].https://www.zhihu.com/question/54504471/answer/630639025
[4].https://blog.csdn.net/wang15061955806/article/details/50902351
[5]. Defferrard M, Bresson X, Vandergheynst P. Convolutional neural networks on graphs with fast localized spectral filtering[C]//Advances in neural information processing systems. 2016: 3844-3852.
[6]. Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.
[7]. Kipf T N, Welling M. Semi-supervised classification with graph convolutional networks[J]. arXiv preprint arXiv:1609.02907, 2016.