1. 程式人生 > >【GCN】圖卷積網路初探——基於圖(Graph)的傅立葉變換和卷積

【GCN】圖卷積網路初探——基於圖(Graph)的傅立葉變換和卷積


一、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 A L=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為特徵向量,則滿足下式:
L u = λ u Lu=\lambda u

(2)求特徵分解:

令 L是一個 N×N 的方陣,且有 N 個線性無關的特徵向量 。
這樣, L可以被分解為:
L = U Λ U 1 = U ( λ 1 . . . λ 3 ) U 1 L=U\Lambda U^{-1} =U\begin{pmatrix}\lambda_1& & \\ &...& \\ & & \lambda_3 \end{pmatrix} U^{-1}
其中,U是N×N方陣,且其第i列為L的特徵向量ui,ui為列向量;
U = ( u 1 , u 2 , . . . , u n ) U=(\vec{u_1},\vec{u_2},...,\vec{u_n})
      Λ是對角矩陣,其對角線上的元素為對應的特徵值。

2、拉普拉斯矩陣:【半正定】【對稱】矩陣
性質:
(1)有n個線性無關的特徵向量
(2)特徵值非負
(3)特徵向量相互正交,即Q為正交矩陣
設拉普拉斯矩陣L中,λi為特徵值,ui為特徵向量,U為特徵向量ui作為列向量組成的方陣,那麼拉普拉斯矩陣的譜分解形式為:
在這裡插入圖片描述

四、Graph上的傅立葉變換與卷積

(一)核心工作

把拉普拉斯運算元的【特徵函式】
變為
Graph對應的拉普拉斯矩陣的【特徵向量】

(二)Graph上的傅立葉變換

1、傳統傅立葉變換:
在這裡插入圖片描述
在這裡插入圖片描述

2、Graph上的傅立葉變換

  • 拉普拉斯矩陣=離散拉普拉斯運算元
  • 拉普拉斯矩陣的【特徵向量U】=拉普拉斯運算元的【特徵函式exp(-iwt)】

仿照上面傳統傅立葉定義,得到Graph上的傅立葉變換:

  • i為第i個頂點
  • λl為第l個特徵值;ul為第l個特徵向量
  • f為待變換函式,f尖為其對應的傅立葉變換,f和f尖與頂點i一一對應
    在這裡插入圖片描述
    在這裡插入圖片描述

3、Graph上的傅立葉逆變換:
在這裡插入圖片描述

(三)Graph上的卷積

1、傳統卷積定理:

  • f為待卷積函式,h為卷積核(根據需要設計)
  • f*h為卷積結果
    在這裡插入圖片描述

2、Graph上的卷積:仿照上面定義

  • f為待卷積函式,h為卷積核(根據需要設計)
  • f*h為卷積結果
    在這裡插入圖片描述
    在這裡插入圖片描述

3、由式(1)可以看出,U為特徵向量,f為待卷積函式,重點在於設計含有【可訓練】【共享引數】的【卷積核h】
d i a g ( h ^ ( λ l ) ) 卷積引數就是diag(\hat{h}(\lambda_l))

五、深度學習中的GCN

1、第一代GCN:

  • 卷積核:
    d i a g ( h ^ ( λ l ) ) d i a g ( θ l ) diag(\hat{h}(\lambda_l)): diag(\theta_l)

  • output公式:
    在這裡插入圖片描述
    在這裡插入圖片描述

  • 缺點:有n個引數θn,計算量大

2、第二代GCN:

  • 卷積核:
    h ^ ( λ l ) j = 0 K α j λ l j \hat{h}(\lambda_l):\sum_{j=0}^K \alpha_j\lambda_l^j
  • output公式:
    在這裡插入圖片描述

注意到下式:
在這裡插入圖片描述
進而可以匯出下式:
在這裡插入圖片描述
在這裡插入圖片描述

  • 經過矩陣變換,簡化後的output公式:
    在這裡插入圖片描述
    在這裡插入圖片描述

3、例項

  • K=1時,對於頂點i,將頂點i以及頂點i的一階相連頂點(j,k,m,n)的feature值(f函式值)做加權求和,權重就是引數αj,最終輸出新的feature值(g函式),為提取得到的空間特徵
  • K=2時,對於頂點i,將頂點i以及頂點i的一階相連頂點、二階相連頂點的feature值加權求和,輸出新的feature值
    在這裡插入圖片描述