Defferrard, Michaël, Xavier Bresson, and Pierre Vandergheynst. "Convolutional neural networks on graphs with fast localized spectral filtering." Advances in Neural Information Processing Systems. 2016.
摘要:
作者提出了一種把傳統CNN擴展到非歐空間上的一種卷積網絡
1.介紹
作者的主要貢獻有:
(1)譜方法的形式化。一種基於譜方法的CNN的形式化表述,基於GSP(Shuman, David I., et al. "The emerging field of signal processing on graphs: Extending high-dimensional data analysis to networks and other irregular domains." IEEE Signal Processing Magazine 30.3 (2013): 83-98.)
(2)嚴格的局部化的filters。作者擴展了(Bruna, Joan, et al. "Spectral networks and locally connected networks on graphs." arXiv preprint arXiv:1312.6203 (2013).d)的工作。局部化就是定義了一個參數K,K代表以一個節點為中心的K次跳躍(也就是距離為K)。
(3)小的計算復雜度。復雜度是和K以及邊數成正比。因為大部分現實生活中的圖是高度稀疏的,那么就是邊數遠遠低於點數的平方,即 邊 = k*點數。k可以看做是一個點的k最近鄰。這也就是說復雜度是和輸入數據的大小。另外,這個方法避免計算傅里葉因子(需要計算和儲存傅里葉因子)。這個方法只用儲存一個拉普拉斯矩陣,這是一個稀疏矩陣,只有邊數個非零值。
(4)高效的pooling。通過構建一個二叉樹進行pooling。
(5)實驗結果。作者在MNIST上做了實驗,取得了和傳統CNN相當的實驗結果。tensorflow code:https://github.com/mdeff/cnn_graph
2.技術細節
實現圖上的CNN需要滿足一下一點要求:(1)設計卷積核(2)相似點聚集(3)pooling操作
2.1 學習局部化譜filters
圖的傅里葉變換:首先定義拉普拉斯矩陣:
其中D是度矩陣,W是鄰接矩陣,
如果對拉歐拉斯矩陣做歸一化,則表示為:
然后對L做特征值分解,得到:
U是特征向量組成的矩陣,A是特征值組成的對角矩陣。
那么圖上的傅里葉變換為:
其中x是整個圖組成的特征,n為圖上的節點數。
圖上的卷積操作定義為:
那么對x做卷積操作即為:
其中
多項式近似實現局部化:
快速過濾的遞歸推導:主要是利用了切比雪夫多項式的遞推關系
學習過濾器:通過梯度下降即可完成:
2.2 圖粗化
主要是用了(Dhillon, Inderjit S., Yuqiang Guan, and Brian Kulis. "Weighted graph cuts without eigenvectors a multilevel approach." IEEE transactions on pattern analysis and machine intelligence 29.11 (2007).)的方法
2.3 快速pooling
作者通過上述方法得到更粗糙的圖,然后對節點重排序,然后構建一個二叉樹。
相關論文:
Semi-Supervised Classification with Graph Convolutional Networks
Geometric deep learning on graphs and manifolds using mixture model CNNs