【GCN】圖卷積網絡初探——基於圖(Graph)的傅里葉變換和卷積
- 本文為從CNN到GCN的聯系與區別——GCN從入門到精(fang)通(qi)的閱讀筆記,文中絕大部分公式和圖片摘自原文。
一、CNN(卷積神經網絡)中的離散卷積
推薦閱讀:如何通俗易懂地解釋卷積?
1、CNN中的離散卷積:共享參數的過濾器
2、CNN中的卷積操作:通過計算中心像素點以及相鄰像素點的【加權和】構成【feature map】;
加權系數=卷積核的權重系數
【實例】下式是一個隱藏神經元的輸出計算公式,b為偏置,w為5×5的權重向量,a為上一層的激活值,σ()為激活函數。
可以看出,將上一層的5×5=25的神經元(a)加權(w)求和
3、CNN中的卷積目的:空間特征的提取
4、確定卷積核的系數:隨機化初值,訓練中根據誤差函數loss,通過反向傳播+梯度下降進行迭代優化。
二、GCN基本概念介紹
(一)圖Graph
定義:頂點和邊建立的關系拓撲圖
(二)研究GCN的原因
1、CNN的【平移不變性】在【非矩陣結構】數據上不適用
2、希望在【拓撲圖】上提取空間特征來進行機器學習
3、GCN主要工作:引入可以優化的【卷積參數】
(三)提取【拓撲圖】空間特征的兩種方式
1、vertex domain(spatial domain):頂點域(空間域)
操作:把每個頂點相鄰的neighbors找出來
缺點:每個頂點的neighbors不同,計算處理必須針對每個節點
2、spectral domain:譜域
過程:
(1)定義graph上的Fourier Transformation傅里葉變換
(利用Spectral graph theory,借助圖的拉普拉斯矩陣的特征值和特征向量研究圖的性質)
(2)定義graph上的convolution卷積
三、圖的拉普拉斯矩陣
(一)定義:拉普拉斯矩陣L
L=D−AL=D-AL=D−A
其中,L為Laplacian矩陣;
D是頂點的度矩陣(對角矩陣),對角線上的元素依次為各個頂點的度(與該頂點相連的邊的條數);
A是圖的鄰接矩陣。
計算方法實例:
(二)拉普拉斯矩陣L的良好性質
1、是對稱矩陣,可以進行譜分解(特征分解),與GCN的spectral domain對應
2、只在【中心節點】和【一階相連的頂點】這兩種位置上有非0元素,其余位置都是0
注:一階相連就是通過一條邊直接相連,如上圖中與頂點1一階相連的頂點為5和2;
二階相連就是通過兩條邊相連,如上圖中與頂點1二階相連的頂點為4(1-5-4)、2(1-5-2)、5(1-2-5)、3(1-2-3)
3、可以通過拉普拉斯算子與拉普拉斯矩陣進行類比
(三)拉普拉斯矩陣L的譜分解(特征分解)
1、矩陣L的特征分解定義:將矩陣L分解為由特征值λ和特征向量u表示的矩陣之積
(1)求特征值和特征向量:λ為特征值,u為特征向量,則滿足下式:
Lu=λuLu=\lambda uLu=λu
(2)求特征分解:
令 L是一個 N×N 的方陣,且有 N 個線性無關的特征向量 。
這樣, L可以被分解為:
L=UΛU−1=U⎛⎝⎜λ1...λ3⎞⎠⎟U−1L=U\Lambda U^{-1} =U\begin{pmatrix}\lambda_1& & \\ &...& \\ & & \lambda_3 \end{pmatrix} U^{-1}L=UΛU−1=U⎝⎛λ1...λ3⎠⎞U−1
其中,U是N×N方陣,且其第i列為L的特征向量ui,ui為列向量;
U=(u1⃗ ,u2⃗ ,...,un⃗ )U=(\vec{u_1},\vec{u_2},...,\vec{u_n})U=(u1
