1. 爲何會出現圖卷積神經網絡?
普通卷積神經網絡研究的對象是具有Euclidean domains的數據,Euclidean domains data數據最顯著的特徵是他們具備規則的空間結構 ,如圖片是規則的正方形,語音是規則的一維序列等,這些特徵均可以用一維或二維的矩陣來表示,卷積神經網絡處理起來比較高效。html
CNN的【平移不變性】在【非矩陣結構】數據上不適用node
平移不變性(translation invariance) :比較好理解,在用基礎的分類結構好比ResNet、Inception給一隻貓分類時,不管貓怎麼扭曲、平移,最終識別出來的都是貓,輸入怎麼變形輸出都不變 這就是平移不變性,網絡的層次越深這個特性會越明顯。
平移可變性(translation variance) :針對目標檢測的,好比一隻貓從圖片左側移到了右側,檢測出的貓的座標會發生變化就稱爲平移可變性。當卷積網絡變深後最後一層卷積輸出的feature map變小,物體在輸入上的小偏移,通過N多層pooling後在最後的小feature map上會感知不到,這就是爲何R-FCN原文會說網絡變深平移可變性變差。
離散卷積本質就是一種加權求和 。CNN中的卷積就是一種離散卷積,本質上就是利用一個共享參數的過濾器(kernel),經過計算中心像素點以及相鄰像素點的加權和來構成feature map實現空間特徵的提取 ,固然加權係數就是卷積核的權重係數(W) 。git
那麼卷積核的係數如何肯定的呢?是隨機化初值 ,而後根據偏差函數經過反向傳播梯度降低進行迭代優化 。這是一個關鍵點,卷積核的參數經過優化求出才能實現特徵提取的做用,GCN的理論很大一部分工做就是爲了引入能夠優化的卷積參數 。github
生活中不少數據不具有規則的空間結構,稱爲Non Euclidean data,如,推薦系統、電子交易、分子結構等抽象出來的圖譜。這些圖譜中的每一個節點鏈接不盡相同,有的節點有三個鏈接,有的節點只有一個鏈接,是不規則 的結構。對於這些不規則的數據對象,普通卷積網絡的效果不盡人意。CNN卷積操做配合pooling等在結構規則的圖像等數據上效果顯著,可是若是做者考慮非歐氏空間 好比圖(即graph,流形也是典型的非歐結構 ,這裏做者只考慮圖),就難以選取固定的卷積核來適應整個圖的不規則性,如鄰居節點數量的不肯定和節點順序的不肯定。 web
例如,社交網絡很是適合用圖數據來表達,如社交網絡中節點以及節點與節點之間的關係,用戶A(有ID信息等)、用戶B、帖子都是節點,用戶與用戶之間的關係是關注,用戶與帖子之間的關係多是發佈或者轉發。經過這樣一個圖譜,能夠分析用戶對什麼人、什麼事感興趣,進一步實現推薦機制。算法
總結一下,圖數據中的空間特徵具備如下特色: 1) 節點特徵 :每一個節點有本身的特徵;(體如今點上) 2) 結構特徵 :圖數據中的每一個節點具備結構特徵,即節點與節點存在必定的聯繫。(體如今邊上) 總地來講,圖數據既要考慮節點信息 ,也要考慮結構信息 ,圖卷積神經網絡就能夠自動化地既學習節點特徵 ,又能學習節點與節點之間的關聯信息 。網絡
綜上所述,GCN是要爲除CV、NLP以外的任務提供一種處理、研究的模型。 圖卷積的核心思想是利用『邊的信息』對『節點信息』進行『聚合』從而生成新的『節點表示』。 app
2. 圖卷積網絡的兩種理解方式
GCN的本質目的就是用來提取拓撲圖的空間特徵。 而圖卷積神經網絡主要有兩類,一類是基於空間域或頂點域vertex domain(spatial domain)的,另外一類則是基於頻域或譜域spectral domain的。通俗點解釋,空域能夠類比到直接在圖片的像素點上進行卷積,而頻域能夠類比到對圖片進行傅里葉變換後,再進行卷積。框架
所謂的兩類其實就是從兩個不一樣的角度理解,關於從空間角度的理解能夠看本文的從空間角度理解GCN dom
2.1 vertex domain(spatial domain):頂點域(空間域)
基於空域卷積的方法直接將卷積操做定義在每一個結點的鏈接關係上,它跟傳統的卷積神經網絡中的卷積更類似一些。在這個類別中比較有表明性的方法有 Message Passing Neural Networks(MPNN)[1], GraphSage[2], Diffusion Convolution Neural Networks(DCNN)[3], PATCHY-SAN[4]等。
2.2 spectral domain:頻域方法(譜方法)
這就是譜域圖卷積網絡的理論基礎了。這種思路就是但願藉助圖譜的理論來實現拓撲圖上的卷積操做。從整個研究的時間進程來看:首先研究GSP(graph signal processing)的學者定義了graph上的Fourier Transformation,進而定義了graph上的convolution,最後與深度學習結合提出了Graph Convolutional Network。
基於頻域卷積的方法則從圖信號處理起家,包括 Spectral CNN[5], Cheybyshev Spectral CNN(ChebNet)[6], 和 First order of ChebNet(1stChebNet)[7] 等
論文Semi-Supervised Classification with Graph Convolutional Networks就是一階鄰居的ChebNet
認真讀到這裏,腦海中應該會浮現出一系列問題: Q1 什麼是Spectral graph theory? Spectral graph theory 請參考維基百科的介紹,簡單的歸納就是藉助於圖的拉普拉斯矩陣的特徵值和特徵向量來研究圖的性質
Q2 GCN爲何要利用Spectral graph theory? 這是論文(Semi-Supervised Classification with Graph Convolutional Networks )中的重點和難點,要理解這個問題須要大量的數學定義及推導
過程: (1)定義graph上的Fourier Transformation傅里葉變換(利用Spectral graph theory,藉助圖的拉普拉斯矩陣的特徵值和特徵向量研究圖的性質) (2)定義graph上的convolution卷積
下面將介紹關於頻譜域的圖卷積網絡的推導相關的內容。
3. 什麼是拉普拉斯矩陣?
拉普拉斯矩陣(Laplacian matrix) 也叫作導納矩陣、基爾霍夫矩陣 或離散拉普拉斯算子 ,主要應用在圖論中,做爲一個圖的矩陣表示。對於圖 G=(V,E),其Laplacian 矩陣的定義爲 L=D-A,其中 L 是Laplacian 矩陣, D=diag(d)是頂點的度矩陣(對角矩陣),d=rowSum(A),對角線上元素依次爲各個頂點的度, A 是圖的鄰接矩陣。
Graph Fourier Transformation及Graph Convolution的定義都用到圖的拉普拉斯矩陣。
頻域卷積的前提條件是圖必須是無向圖 ,只考慮無向圖,那麼L就是對稱矩陣。
3.1 經常使用的幾種拉普拉斯矩陣
普通形式的拉普拉斯矩陣
L
=
D
−
A
L=D-A
L = D − A L中的元素給定爲:
L
i
,
j
=
{
d
i
a
g
(
v
i
)
i
=
j
−
1
i
≠
j
a
n
d
v
i
i
s
a
d
j
a
c
e
n
t
t
o
v
j
0
o
t
h
e
r
w
i
s
e
L_{i,j}=\begin{cases} diag(v_i) & i=j\\ -1 & i \neq j \ and \ v_i \ is\ adjacent \ to \ v_j\\ 0 & otherwise \end{cases}
L i , j = ⎩ ⎪ ⎨ ⎪ ⎧ d i a g ( v i ) − 1 0 i = j i = j a n d v i i s a d j a c e n t t o v j o t h e r w i s e 其中diag(vi) 表示頂點 i 的度。
對稱歸一化的拉普拉斯矩陣(Symmetric normalized Laplacian)
L
s
y
s
=
D
−
1
/
2
L
D
−
1
/
2
=
I
−
D
−
1
/
2
A
D
−
1
/
2
L^{sys}=D^{-1/2}LD^{-1/2}=I-D^{-1/2}AD^{-1/2}
L s y s = D − 1 / 2 L D − 1 / 2 = I − D − 1 / 2 A D − 1 / 2 矩陣元素定義爲:
L
i
,
j
s
y
s
=
{
1
i
=
j
a
n
d
d
i
a
g
(
v
i
)
≠
0
−
1
d
i
a
g
(
v
i
)
d
i
a
g
(
v
j
)
i
≠
j
a
n
d
v
i
i
s
a
d
j
a
c
e
n
t
t
o
v
j
0
o
t
h
e
r
w
i
s
e
L^{sys}_{i,j}=\begin{cases} 1 & i=j \ and \ diag(v_i) \ \neq \ 0\\ -\frac{1}{\sqrt{diag(v_i)diag(v_j)}} & i \neq j \ and \ v_i \ is\ adjacent \ to \ v_j\\ 0 & otherwise \end{cases}
L i , j s y s = ⎩ ⎪ ⎪ ⎨ ⎪ ⎪ ⎧ 1 − d i a g ( v i ) d i a g ( v j )
1 0 i = j a n d d i a g ( v i ) = 0 i = j a n d v i i s a d j a c e n t t o v j o t h e r w i s e
不少GCN的論文中應用的是這種拉普拉斯矩陣
隨機遊走歸一化拉普拉斯矩陣(Random walk normalized Laplacian)
L
r
w
=
D
−
1
L
=
I
−
D
−
1
A
L^{rw}=D^{-1}L=I-D^{-1}A
L r w = D − 1 L = I − D − 1 A 矩陣元素定義爲:
L
i
,
j
r
w
=
{
1
i
=
j
a
n
d
d
i
a
g
(
v
i
)
≠
0
−
1
d
i
a
g
(
v
i
)
i
≠
j
a
n
d
v
i
i
s
a
d
j
a
c
e
n
t
t
o
v
j
0
o
t
h
e
r
w
i
s
e
L^{rw}_{i,j}=\begin{cases} 1 & i=j \ and \ diag(v_i) \ \neq \ 0\\ -\frac{1}{diag(v_i)} & i \neq j \ and \ v_i \ is\ adjacent \ to \ v_j\\ 0 & otherwise \end{cases}
L i , j r w = ⎩ ⎪ ⎨ ⎪ ⎧ 1 − d i a g ( v i ) 1 0 i = j a n d d i a g ( v i ) = 0 i = j a n d v i i s a d j a c e n t t o v j o t h e r w i s e
泛化的拉普拉斯 (Generalized Laplacian)
泛化的拉普拉斯(用得少)定義爲:
{
Q
i
,
j
<
0
i
≠
j
a
n
d
d
i
a
g
(
v
i
)
≠
0
Q
i
,
j
=
0
i
≠
j
a
n
d
v
i
i
s
a
d
j
a
c
e
n
t
t
o
v
j
a
n
y
n
u
m
b
e
r
o
t
h
e
r
w
i
s
e
\begin{cases} Q_{i,j}<0 & i \ \neq \ j \ and \ diag(v_i) \ \neq \ 0\\ Q_{i,j}=0 & i \neq j \ and \ v_i \ is\ adjacent \ to \ v_j\\ any number & otherwise \end{cases}
⎩ ⎪ ⎨ ⎪ ⎧ Q i , j < 0 Q i , j = 0 a n y n u m b e r i = j a n d d i a g ( v i ) = 0 i = j a n d v i i s a d j a c e n t t o v j o t h e r w i s e
一個拉普拉斯矩陣的計算例子(依據於上圖):
A
=
{
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
}
,
D
=
{
2
0
0
0
0
0
0
3
0
0
0
0
0
0
2
0
0
0
0
0
0
3
0
0
0
0
0
0
3
0
0
0
0
0
0
1
}
,
L
=
D
−
A
=
{
2
−
1
0
0
−
1
0
−
1
3
−
1
0
−
1
0
0
−
1
2
−
1
0
0
0
0
−
1
3
−
1
−
1
−
1
−
1
0
−
1
3
0
0
0
0
−
1
0
1
}
A=\left\{ \begin{matrix} 0 & 1 & 0 & 0 & 1 & 0\\ 1 & 0 & 1 & 0 & 1 & 0\\ 0 & 1 & 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0 & 1 & 1\\ 1 & 1 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 \end{matrix} \right\} , D= \left\{ \begin{matrix} 2 & 0 & 0 & 0 & 0 & 0\\ 0 & 3 & 0 & 0 & 0 & 0\\ 0 & 0 & 2 & 0 & 0 & 0\\ 0 & 0 & 0 & 3 & 0 & 0\\ 0 & 0 & 0 & 0 & 3 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} \right\}, L=D-A= \left\{ \begin{matrix} 2 & -1 & 0 & 0 & -1 & 0\\ -1 & 3 & -1 & 0 & -1 & 0\\ 0 & -1 & 2 & -1 & 0 & 0\\ 0 & 0 & -1 & 3 & -1 & -1\\ -1 & -1 & 0 & -1 & 3 & 0\\ 0 & 0 & 0 & -1 & 0 & 1 \end{matrix} \right\}
A = ⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧ 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 ⎭ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎬ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎫ , D = ⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧ 2 0 0 0 0 0 0 3 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 3 0 0 0 0 0 0 1 ⎭ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎬ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎫ , L = D − A = ⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧ 2 − 1 0 0 − 1 0 − 1 3 − 1 0 − 1 0 0 − 1 2 − 1 0 0 0 0 − 1 3 − 1 − 1 − 1 − 1 0 − 1 3 0 0 0 0 − 1 0 1 ⎭ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎬ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎫
D
−
1
/
2
=
{
1
2
0
0
0
0
0
0
1
3
0
0
0
0
0
0
1
2
0
0
0
0
0
0
1
3
0
0
0
0
0
0
1
3
0
0
0
0
0
0
1
}
,
L
s
y
s
=
D
−
1
/
2
L
D
−
1
/
2
=
I
−
D
−
1
/
2
A
D
−
1
/
2
=
{
1
−
1
6
0
−
1
6
0
0
−
1
6
1
−
1
6
0
−
1
9
0
0
−
1
6
1
−
1
6
0
0
−
1
6
0
−
1
6
1
−
1
9
−
1
3
0
−
1
9
0
−
1
9
1
0
0
0
0
−
1
3
0
1
}
D^{-1/2}= \left\{ \begin{matrix} \frac{1}{\sqrt{2}} & 0 & 0 & 0 & 0 & 0\\ 0 & \frac{1}{\sqrt{3}} & 0 & 0 & 0 & 0\\ 0 & 0 & \frac{1}{\sqrt{2}} & 0 & 0 & 0\\ 0 & 0 & 0 & \frac{1}{\sqrt{3}} & 0 & 0\\ 0 & 0 & 0 & 0 & \frac{1}{\sqrt{3}} & 0\\ 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} \right\}, L^{sys}=D^{-1/2}LD^{-1/2}=I-D^{-1/2}AD^{-1/2}= \left\{ \begin{matrix} 1 & -\frac{1}{\sqrt{6}} & 0 & -\frac{1}{\sqrt{6}} & 0 & 0\\ -\frac{1}{\sqrt{6}} & 1 & -\frac{1}{\sqrt{6}} & 0 & -\frac{1}{\sqrt{9}} & 0\\ 0 & -\frac{1}{\sqrt{6}} & 1 & -\frac{1}{\sqrt{6}} & 0 & 0\\ -\frac{1}{\sqrt{6}} & 0 & -\frac{1}{\sqrt{6}} & 1 & -\frac{1}{\sqrt{9}} & -\frac{1}{\sqrt{3}}\\ 0 & -\frac{1}{\sqrt{9}} & 0 & -\frac{1}{\sqrt{9}} & 1 & 0\\ 0 & 0 & 0 & -\frac{1}{\sqrt{3}} & 0 & 1 \end{matrix} \right\}
D − 1 / 2 = ⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧ 2
1 0 0 0 0 0 0 3
1 0 0 0 0 0 0 2
1 0 0 0 0 0 0 3
1 0 0 0 0 0 0 3
1 0 0 0 0 0 0 1 ⎭ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎬ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎫ , L s y s = D − 1 / 2 L D − 1 / 2 = I − D − 1 / 2 A D − 1 / 2 = ⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧ 1 − 6
1 0 − 6
1 0 0 − 6
1 1 − 6
1 0 − 9
1 0 0 − 6
1 1 − 6
1 0 0 − 6
1 0 − 6
1 1 − 9
1 − 3
1 0 − 9
1 0 − 9
1 1 0 0 0 0 − 3
1 0 1 ⎭ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎬ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎫ 能夠看出,標準歸一化的拉普拉斯矩陣仍是對稱的,而且符合前面的公式定義。
Graph Convolution與Diffusion類似之處,固然從Random walk normalized Laplacian就能看出了二者確有類似之處(其實二者只差一個類似矩陣的變換,可參考Diffusion-Convolutional Neural Networks ) 其實維基本科對Laplacian matrix 的定義上寫得很清楚,國內的一些介紹中只有第一種定義。這讓我在最初看文獻的過程當中感到一些的困惑,特地寫下來,幫助你們避免再遇到相似的問題。
3.2 無向圖的拉普拉斯矩陣有什麼性質
(1)拉普拉斯矩陣是半正定矩陣。(最小特徵值大於等於0) (2)特徵值中0出現的次數就是圖連通區域的個數 。 (3)最小特徵值是0,由於拉普拉斯矩陣(普通形式:
L
=
D
−
A
L=D-A
L = D − A )每一行的和均爲0,而且最小特徵值對應的特徵向量是每一個值全爲1的向量 ; (4)最小非零特徵值是圖的代數連通度。
拉普拉斯矩陣的半正定性證實,以下: 要證實拉普拉斯矩陣是半正定的,只須要證實其二次型
f
T
L
f
≥
0
f^TLf \geq0
f T L f ≥ 0 證實:
f
T
L
f
=
f
T
D
f
−
f
T
A
f
=
f
T
∗
d
i
a
g
(
d
)
∗
f
−
f
T
A
f
=
∑
i
=
1
m
d
i
f
i
2
−
∑
j
=
1
m
[
∑
i
=
1
m
f
j
∗
a
i
j
]
f
j
=
∑
i
=
1
m
d
i
f
i
2
−
∑
i
,
j
=
1
m
f
i
∗
f
j
∗
a
i
j
=
1
2
[
∑
i
=
1
m
d
i
f
i
2
−
2
∑
i
,
j
=
1
m
f
i
f
j
a
i
j
+
∑
j
=
1
m
d
j
f
j
2
]
=
1
2
∑
i
,
j
=
1
m
a
i
j
(
f
i
−
f
j
)
2
\begin{aligned} f^TLf & =f^TDf-f^TAf \\ & = f^T*diag(d)*f-f^TAf \\ & =\sum_{i=1}^m d_i f_i^2-\sum_{j=1}^m[\sum_{i=1}^m f_j*a_{ij}]f_j \\ & =\sum_{i=1}^m d_i f_i^2-\sum_{i,j=1}^m f_i*f_j*a_{ij} \\ & =\frac{1}{2} [ \sum_{i=1}^md_if_i^2-2\sum_{i,j=1}^m f_i f_j a_{ij}+\sum_{j=1}^m d_j f_j^2 ] \\ & = \frac{1}{2}\sum_{i,j=1}^m a_{ij}(f_i-f_j)^2 \\ \end{aligned}
f T L f = f T D f − f T A f = f T ∗ d i a g ( d ) ∗ f − f T A f = i = 1 ∑ m d i f i 2 − j = 1 ∑ m [ i = 1 ∑ m f j ∗ a i j ] f j = i = 1 ∑ m d i f i 2 − i , j = 1 ∑ m f i ∗ f j ∗ a i j = 2 1 [ i = 1 ∑ m d i f i 2 − 2 i , j = 1 ∑ m f i f j a i j + j = 1 ∑ m d j f j 2 ] = 2 1 i , j = 1 ∑ m a i j ( f i − f j ) 2
因此,對於任意一個屬於實向量
f
∈
R
m
f \in \mathbb{R}^m
f ∈ R m (f爲m∗1的實數列向量 ),都有此公式成立:
f
T
L
f
=
1
2
∑
i
,
j
=
1
m
a
i
j
(
f
i
−
f
j
)
2
f^TLf = \frac{1}{2}\sum_{i,j=1}^m a_{ij}(f_i-f_j)^2
f T L f = 2 1 i , j = 1 ∑ m a i j ( f i − f j ) 2
3.3 爲何GCN要用拉普拉斯矩陣?
拉普拉斯矩陣是對稱矩陣,能夠進行特徵分解(譜分解)
因爲卷積在傅里葉域的計算相對簡單,爲了在graph上作傅里葉變換,須要找到graph的連續的正交基對應於傅里葉變換的基,所以要使用拉普拉斯矩陣的特徵向量。
3.4. 拉普拉斯矩陣的譜分解(特徵分解)
GCN的核心基於拉普拉斯矩陣的譜分解,文獻中對於這部份內容沒有講解太多,初學者可能會遇到很多誤區,因此先了解一下特徵分解。
特徵分解(Eigendecomposition),又稱譜分解 (Spectral decomposition)是將矩陣分解爲由其特徵值和特徵向量表示的矩陣之積的方法。只有對可對角化矩陣或有n個線性無關的特徵向量的矩陣才能夠施以特徵分解。
不是全部的矩陣均可以特徵分解,其充要條件爲n階方陣存在n個線性無關的特徵向量 。
可是拉普拉斯矩陣是半正定矩陣(半正定矩陣自己就是對稱矩陣),有以下三個性質:
對稱矩陣必定n個線性無關的特徵向量
半正定矩陣的特徵值必定非負
對陣矩陣的不一樣特徵值對應的特徵向量相互正交 ,這些正交的特徵向量構成的矩陣爲正交矩陣。
由上拉普拉斯矩陣對稱知必定能夠譜分解,且分解後有特殊的形式。
對於拉普拉斯矩陣其譜分解爲:
L
=
U
Λ
U
−
1
=
U
[
λ
1
⋱
λ
n
]
U
−
1
L=U \Lambda U^{-1}=U \left[ \begin{matrix} \lambda_1 & & \\ & \ddots & \\ & & \lambda_n \\ \end{matrix} \right] U^{-1}
L = U Λ U − 1 = U ⎣ ⎡ λ 1 ⋱ λ n ⎦ ⎤ U − 1 其中
U
=
(
u
1
⃗
,
u
2
⃗
,
⋯
,
u
n
⃗
)
U=(\vec{u_1},\vec{u_2},\cdots,\vec{u_n})
U = ( u 1
, u 2
, ⋯ , u n
) ,是列向量爲單位特徵向量的矩陣,也就說 $ \vec{u_l} $是列向量,Λ是n個特徵值構成的對角陣。
因爲 U 是正交矩陣,即
U
U
T
=
E
UU^{T}=E
U U T = E ,因此特徵分解又能夠寫成:
L
=
U
Λ
U
−
1
=
U
Λ
U
T
L=U \Lambda U^{-1}=U \Lambda U^{T}
L = U Λ U − 1 = U Λ U T 注意,特徵分解最右邊的是特徵矩陣的逆,只是拉普拉斯矩陣是對稱矩陣才能夠寫成特徵矩陣的轉置。
3.5 拉普拉斯算子
定義:拉普拉斯算子是n維歐幾里德空間中的一個二階微分算子,定義爲梯度(
∇
f
\nabla f
∇ f )的散度(
∇
⋅
f
\nabla \cdot f
∇ ⋅ f ,即
∇
f
⋅
f
\nabla f \cdot f
∇ f ⋅ f )。所以若是f是二階可微的實函數,則f的拉普拉斯算子∆定義爲:
∆
f
=
∇
2
f
=
∇
⋅
∇
f
∆f=\nabla^2 f=\nabla \cdot \nabla f
∆ f = ∇ 2 f = ∇ ⋅ ∇ f f的拉普拉斯算子也是笛卡爾座標系xi中的全部非混合二階偏導數:
∆
f
=
∑
i
=
1
n
∂
2
f
∂
x
i
2
∆f=\sum_{i=1}^n \frac{\partial^2f}{\partial x_i^2}
∆ f = i = 1 ∑ n ∂ x i 2 ∂ 2 f 函數f的拉普拉斯算子也是該函數的海塞矩陣(是一個多元函數的二階偏導數構成的方陣)的跡:
∆
f
=
t
r
(
H
(
f
)
)
∆f=tr(H(f))
∆ f = t r ( H ( f ) )
拉普拉斯算子(Laplacian operator) 的物理意義是空間二階導,準肯定義是:標量梯度場中的散度,通常可用於描述物理量的流入流出。好比說在二維空間中的溫度傳播規律,通常能夠用拉普拉斯算子來描述。
拉普拉斯矩陣也叫作離散的拉普拉斯算子 。
4. 如何通俗易懂地理解卷積?
4.1 連續形式的一維卷積
在泛函分析中,卷積是經過兩個函數f(x)和g(x)生成第三個函數的一種算子,它表明的意義是:兩個函數中的一個(取g(x),能夠任意取)函數,把g(x)通過翻轉平移,而後與f(x)的相乘,獲得的一個新的函數,對這個函數積分,也就是對這個新的函數求它所圍成的曲邊梯形的面積。
設f(t),g(t)是兩個可積函數,f(t)與g(t)的卷積記爲
f
(
t
)
∗
g
(
t
)
f(t)*g(t)
f ( t ) ∗ g ( t ) ,它是其中一個函數翻轉並平移後與另外一個函數乘積的積分,是一個自變量是平移量的函數。也就是:
f
(
t
)
∗
g
(
t
)
=
∫
−
∞
+
∞
f
(
τ
)
g
(
t
−
τ
)
d
τ
=
∫
−
∞
+
∞
f
(
t
−
τ
)
g
(
τ
)
d
τ
f(t)*g(t)= \int_{-\infty}^{+\infty}f(\tau)g(t-\tau)d\tau= \int_{-\infty}^{+\infty}f(t-\tau)g(\tau)d\tau
f ( t ) ∗ g ( t ) = ∫ − ∞ + ∞ f ( τ ) g ( t − τ ) d τ = ∫ − ∞ + ∞ f ( t − τ ) g ( τ ) d τ
4.2 離散形式的一維卷積
對於定義在整數
Z
\mathbb{Z}
Z 上的函數f,g,卷積定義爲
(
f
∗
g
)
(
t
)
=
∑
τ
=
−
∞
∞
f
(
τ
)
g
(
t
−
τ
)
(f*g)(t)={\sum}_{\tau=-\infty}^{\infty}f(\tau)g(t-\tau)
( f ∗ g ) ( t ) = ∑ τ = − ∞ ∞ f ( τ ) g ( t − τ )
4.3 實例:擲骰子問題
光看數學定義可能會以爲很是抽象,下面舉一個擲骰子的問題,該實例參考了知乎問題"如何通俗易懂地解釋卷積"的回答。
想象如今有兩個骰子,兩個骰子分別是f跟g,f(1)表示骰子f向上一面爲數字1的機率。同時拋擲這兩個骰子1次,它們正面朝上數字和爲4的機率是多少呢?相信讀者很快就能想出它包含了三種狀況,分別是:
f向上爲1,g向上爲3;
f向上爲2,g向上爲2;
f向上爲3,g向上爲1;
最後這三種狀況出現的機率和即問題的答案,若是寫成公式,就是
∑
τ
=
1
3
f
(
τ
)
g
(
4
−
τ
)
\sum_{\tau=1}^{3}f(\tau)g(4-\tau)
∑ τ = 1 3 f ( τ ) g ( 4 − τ ) 。能夠形象地繪製成下圖:
若是稍微擴展一點,好比說認爲 f(0) 或者 g(0)等是能夠取到的,只是它們的值爲0而已。那麼該公式能夠寫成
∑
τ
=
−
∞
∞
f
(
τ
)
g
(
4
−
τ
)
\sum_{\tau=-\infty}^{\infty}f(\tau)g(4-\tau)
∑ τ = − ∞ ∞ f ( τ ) g ( 4 − τ ) 。仔細觀察,這其實就是卷積(f∗g)(4)。若是將它寫成內積的形式,卷積其實就是
[
f
(
−
∞
)
,
⋯
,
f
(
1
)
,
⋯
,
f
(
∞
)
]
⋅
[
g
(
∞
)
,
⋯
,
g
(
3
)
,
⋯
,
g
(
−
∞
)
]
[f(-\infty),\cdots,f(1),\cdots,f(\infty)] \cdot [g(\infty),\cdots,g(3),\cdots,g(-\infty)]
[ f ( − ∞ ) , ⋯ , f ( 1 ) , ⋯ , f ( ∞ ) ] ⋅ [ g ( ∞ ) , ⋯ , g ( 3 ) , ⋯ , g ( − ∞ ) ]
這麼一看,是否是就對卷積的名字理解更深入了呢? 所謂卷積,其實就是把一個函數卷(翻)過來,而後與另外一個函數求內積。
對應到不一樣方面,卷積能夠有不一樣的解釋:g 既能夠看做咱們在深度學習裏常說的核(Kernel),也能夠對應到信號處理中的濾波器(Filter)。而 f 能夠是咱們所說的機器學習中的特徵(Feature),也能夠是信號處理中的信號(Signal)。f和g的卷積 (f∗g)就能夠看做是對f的加權求和。下面兩個動圖就分別對應信號處理與深度學習中卷積操做的過程。
5. 傅里葉變換
5.1 連續形式的傅立葉變換
關於傅立葉變換相關的詳細而有趣的內容,能夠看這幾篇文章:
下面是一個大體流程: 任意函數能夠分解爲奇偶函數之和:
f
(
x
)
=
f
(
x
)
+
f
(
−
x
)
2
+
f
(
x
)
−
f
(
−
x
)
2
=
f
e
v
e
n
+
f
o
d
d
f(x)=\frac{f(x)+f(-x)}{2} + \frac{f(x)-f(-x)}{2}=f_{even}+f_{odd}
f ( x ) = 2 f ( x ) + f ( − x ) + 2 f ( x ) − f ( − x ) = f e v e n + f o d d
任意一個周期函數能夠由若干個正交函數(由
s
i
n
,
c
o
s
sin, cos
s i n , c o s 構成)的線性組合構成,寫出傅里葉級數的形式以下:
f
(
x
)
=
a
0
+
∑
n
=
1
∞
(
a
n
c
o
s
(
2
π
n
T
x
)
+
b
n
s
i
n
(
2
π
n
T
x
)
)
,
a
0
∈
R
\displaystyle f(x)=a_0+\sum _{{n=1}}^{\infty}\left(a_{n}cos({\frac{2\pi n}{T}x})+b_{n}sin({\frac{2\pi n}{T}x})\right),a_0\in\mathbb{R}
f ( x ) = a 0 + n = 1 ∑ ∞ ( a n c o s ( T 2 π n x ) + b n s i n ( T 2 π n x ) ) , a 0 ∈ R 利用歐拉公式
e
i
x
=
cos
x
+
i
sin
x
e^{ix}=\cos x+i \sin x
e i x = cos x + i sin x (這裏的指複數中的i),
cos
x
,
sin
x
\cos x, \sin x
cos x , sin x 可表示成
cos
x
=
e
i
x
+
e
−
i
x
2
,
sin
x
=
e
i
x
−
e
−
i
x
2
i
\cos x=\frac{e^{ix} +e^{-ix}}{2} ,\sin x=\frac{e^{ix} -e^{-ix}}{2i}
cos x = 2 e i x + e − i x , sin x = 2 i e i x − e − i x
在時間t軸上,把
e
i
t
e^{it}
e i t 向量的虛部(也就是縱座標)記錄下來,獲得的就是
s
i
n
(
t
)
sin(t)
s i n ( t ) :
在時間t軸上,把
e
i
2
t
e^{i2t}
e i 2 t 向量的虛部記錄下來,獲得的就是
s
i
n
(
2
t
)
sin(2t)
s i n ( 2 t ) :
若是在時間t軸上,把
e
i
t
e^{it}
e i t 的實部(橫座標)記錄下來,獲得的就是
c
o
s
(
t
)
cos(t)
c o s ( t ) 的曲線:
更通常的,具備兩種看待
s
i
n
,
c
o
s
sin, cos
s i n , c o s 的角度:
e
i
ω
t
⟺
{
s
i
n
(
ω
t
)
c
o
s
(
ω
t
)
e^{i\omega t}\iff \begin{cases}sin(\omega t)\\cos(\omega t)\end{cases}
e i ω t ⟺ { s i n ( ω t ) c o s ( ω t )
這兩種角度,一個能夠觀察到旋轉的頻率,因此稱爲頻域;一個能夠看到流逝的時間,因此稱爲時域:
因此,任意周期函數能夠以
e
i
ω
t
e^{i\omega t}
e i ω t 爲基函數用傅里葉級數的指數形式表示。即,對於一個周期函數
f
(
x
)
f(x)
f ( x ) 以傅里葉級數的指數形式表示爲:
f
(
x
)
=
∑
n
=
−
∞
∞
c
n
⏟
基的座標
⋅
e
i
2
π
n
x
T
⏟
正交基
f(x)=\sum ^{\infty }_{n=-\infty }\underbrace{c_{n}}_{\text{基的座標}} \cdot \underbrace{e^{i\tfrac{2\pi nx}{T}}}_{\text{正交基}}
f ( x ) = n = − ∞ ∑ ∞ 基的座標
c n ⋅ 正交基
e i T 2 π n x 可是對於非周期函數,並不能用傅里葉級數的形式表示。可是仍是用某個周期函數
f
T
(
x
)
f_T(x)
f T ( x ) 當
T
→
∞
T \rightarrow \infty
T → ∞ 來逼近,即
lim
T
→
∞
f
T
(
x
)
=
f
(
x
)
\lim_{T \rightarrow \infty} f_T(x)=f(x)
lim T → ∞ f T ( x ) = f ( x ) ,用積分的形式能夠表示爲:
f
(
x
)
=
∫
−
∞
∞
[
∫
−
∞
+
∞
f
(
x
)
e
−
i
ω
x
d
x
]
e
i
ω
x
d
ω
=
∫
−
∞
∞
F
(
ω
)
e
i
ω
x
d
ω
f(x) = \int_{-\infty}^\infty [\int ^{+\infty }_{-\infty } f(x)e^{-i\omega x} dx]\ e^{i\omega x}\,d\omega=\int_{-\infty}^\infty F(\omega)\ e^{i\omega x}\,d\omega
f ( x ) = ∫ − ∞ ∞ [ ∫ − ∞ + ∞ f ( x ) e − i ω x d x ] e i ω x d ω = ∫ − ∞ ∞ F ( ω ) e i ω x d ω 其中,
F
(
ω
)
F( \omega )
F ( ω ) 就是
f
(
x
)
f(x)
f ( x ) 的連續形式的傅里葉變換 :
F
(
ω
)
=
F
[
f
(
x
)
]
=
∫
−
∞
+
∞
f
(
x
)
e
−
i
ω
x
d
x
F( \omega ) =\mathcal{F}[f(x)]=\int ^{+\infty }_{-\infty } f(x)e^{-i\omega x} dx
F ( ω ) = F [ f ( x ) ] = ∫ − ∞ + ∞ f ( x ) e − i ω x d x 能夠看出,
f
(
x
)
f(x)
f ( x ) 和
F
(
ω
)
F(\omega)
F ( ω ) 能夠經過指定的積分運算相互表達。
固然,也能夠利用歐拉公式經過cos和sin函數表示爲
F
(
u
)
F(u)
F ( u ) :
F
(
u
)
=
∫
−
∞
+
∞
f
(
x
)
[
c
o
s
(
2
π
x
u
)
−
i
s
i
n
(
2
π
x
u
)
]
d
x
F(u)=\int_{-\infty}^{+\infty}f(x)\left[cos(2\pi xu)-i sin(2\pi xu)\right]dx
F ( u ) = ∫ − ∞ + ∞ f ( x ) [ c o s ( 2 π x u ) − i s i n ( 2 π x u ) ] d x
因此,對函數
f
(
x
)
f(x)
f ( x ) 的傅里葉變換
F
\mathcal{F}
F 和傅里葉的逆變換
F
−
1
\mathcal{F}^{-1}
F − 1 記做:
F
(
ω
)
=
F
[
f
(
x
)
]
,
f
(
x
)
=
F
−
1
[
F
(
ω
)
]
F( \omega )=\mathcal{F}[f(x)],f(x)=\mathcal{F}^{-1}[F(\omega)] \\
F ( ω ) = F [ f ( x ) ] , f ( x ) = F − 1 [ F ( ω ) ]
F
(
ω
)
F(\omega)
F ( ω ) 叫作
f
(
x
)
f(x)
f ( x ) 的象函數或傅里葉變換 ,即經過傅里葉變換後關於頻率的函數,函數圖像就是頻譜圖,
ω
\omega
ω 就是f對應在頻域中的頻率
f
(
x
)
f(x)
f ( x ) 叫作
F
(
ω
)
F(\omega)
F ( ω ) 的原象函數
其實能夠發現這個對信號
f
(
x
)
f(x)
f ( x ) 的傅立葉變換
F
(
ω
)
F(\omega)
F ( ω ) 形式上是
f
(
x
)
f(x)
f ( x ) 與基函數
e
−
i
ω
x
e^{-i\omega x}
e − i ω x 的積分,本質上將函數
f
(
x
)
f(x)
f ( x ) 映射到了以
e
−
i
ω
x
e^{-i\omega x}
e − i ω x 爲基向量的空間中 。
5.2 頻域(frequency domain)和時域(time domain)的理解
時域:真實量到的信號的時間軸,表明真實世界。
頻域:爲了作信號分析用的一種數學手段。
要理解時域和頻域只須要看下面兩張動圖就能夠了:
上圖來自於維基百科,圖中紅色部分就是原函數f(x)在時域裏面的曲線圖,此函數通過傅里葉變換後能夠分解成不少如右圖中的曲線。在左圖中的的藍色線就是對應的頻域中的頻譜圖。
頻譜圖裏的豎線分別表明了不一樣頻率的正弦波函數,也就是以前的基,而高度則表明在這個頻率上的振幅 ,也就是這個基上的座標份量。
不少在時域看似不可能作到的數學操做,在頻域相反很容易。這就是須要傅里葉變換的地方。尤爲是從某條曲線中去除一些特定的頻率成分,這在工程上稱爲濾波,是信號處理最重要的概念之一,只有在頻域才能輕鬆的作到。
看一個傅里葉變換去噪的例子: 在傅里葉變換前,圖像上有一些規律的條紋,直接在原圖上去掉條紋有點困難,但咱們能夠將圖片經過傅里葉變換變到頻譜圖中,頻譜圖中那些規律的點就是原圖中的背景條紋。
只要在頻譜圖中擦除這些點,就能夠將背景條紋去掉,獲得下圖右側的結果。
5.3 週期性離散傅里葉變換(Discrete Fourier Transform, DFT)
傅里葉變換有連續時間非週期傅里葉變換,連續時間週期性傅里葉變換,離散時間非週期傅里葉變換和離散時間週期性傅里葉變換,鑑於計算機主要處理離散週期性信號,本文主要介紹週期性離散時間傅里葉變換(DFT)。信號
x
n
x_n
x n 的傅里葉變換
X
k
X_k
X k 爲
X
k
=
∑
n
=
0
N
−
1
x
n
e
−
i
2
π
N
k
n
X_k=\sum_{n=0}^{N-1}x_n e^{-i \frac{2\pi}{N}kn}
X k = n = 0 ∑ N − 1 x n e − i N 2 π k n 信號
x
n
x_n
x n 用其傅里葉變換
X
k
X_k
X k 表示爲:
x
n
=
∑
n
=
0
N
−
1
X
k
e
i
2
π
N
k
n
x_n=\sum_{n=0}^{N-1}X_k e^{i \frac{2\pi}{N}kn}
x n = n = 0 ∑ N − 1 X k e i N 2 π k n 其中
N表示傅里葉變換的點數
k表示傅里葉變換的第k個頻譜
6. Graph上的傅里葉變換及卷積
把傳統的傅里葉變換以及卷積遷移到Graph上來,核心工做其實就是把拉普拉斯算子的特徵函數
e
−
i
ω
t
e^{-i\omega t}
e − i ω t 變爲Graph對應的拉普拉斯矩陣的特徵向量。
傅立葉變換與拉普拉斯矩陣的關係:傳統傅立葉變換的基,就是拉普拉斯矩陣的一組特徵向量。
6.1 圖上的傅里葉變換
前面講到能夠用一組正交函數cos和sin(或
e
−
i
ω
t
e^{-i\omega t}
e − i ω t )表示任意函數,且傅里葉變換是連續形式的,在處理Graph時,用到的是傅里葉變換的離散形式。因爲拉普拉斯矩陣進行譜分解之後,能夠獲得n個線性無關的特徵向量,構成空間中的一組正交基,所以歸一化拉普拉斯矩陣算子的特徵向量構成了圖傅里葉變換的基。圖傅里葉變換將輸入圖的信號投影到了正交空間,至關於把圖上定義的任意向量,表示成了拉普拉斯矩陣特徵向量的線性組合。
離散積分就是一種內積形式,由此能夠定義Graph上的傅里葉變換(實數域):
F
(
λ
l
)
=
f
^
(
λ
l
)
=
∑
i
=
1
N
f
(
i
)
u
l
(
i
)
F(\lambda_l)=\hat{f}(\lambda_l)=\sum_{i=1}^{N}{f(i) u_l(i)}
F ( λ l ) = f ^ ( λ l ) = i = 1 ∑ N f ( i ) u l ( i )
f
f
f 是Graph上的N維向量,能夠表示某個點的特徵向量,
f
(
i
)
f(i)
f ( i ) 表示第
i
i
i 個特徵
u
l
(
i
)
u_l(i)
u l ( i ) 表示第
l
l
l 個特徵向量的第
i
i
i 個份量
f
f
f 的Graph 傅里葉變換就是與
λ
l
\lambda_l
λ l 對應的特徵向量
u
l
u_l
u l 進行內積運算
λ
\lambda
λ 就對應於
ω
\omega
ω (具體解釋見第7部分)
f
^
\hat{f}
f ^ 表示
f
f
f 的傅里葉變換
6.2 圖的傅立葉變換——圖的傅立葉變換的矩陣形式
利用矩陣乘法將Graph上的傅里葉變換推廣到矩陣形式:
(
f
^
(
λ
1
)
f
^
(
λ
2
)
⋮
f
^
(
λ
N
)
)
=
(
u
1
(
1
)
u
1
(
2
)
…
u
1
(
N
)
u
2
(
1
)
u
2
(
2
)
…
u
2
(
N
)
⋮
⋮
⋱
⋮
u
N
(
1
)
u
N
(
2
)
…
u
N
(
N
)
)
(
f
(
1
)
f
(
2
)
⋮
f
(
N
)
)
\left(\begin{matrix} \hat{f}(\lambda_1)\\ \hat{f}(\lambda_2) \\ \vdots \\\hat{f}(\lambda_N) \end{matrix}\right)=\left(\begin{matrix}\ u_1(1) &u_1(2)& \dots &u_1(N) \\u_2(1) &u_2(2)& \dots &u_2(N)\\ \vdots &\vdots &\ddots & \vdots\\ u_N(1) &u_N(2)& \dots &u_N(N) \end{matrix}\right)\left(\begin{matrix}f(1)\\ f(2) \\ \vdots \\f(N) \end{matrix}\right)
⎝ ⎜ ⎜ ⎜ ⎛ f ^ ( λ 1 ) f ^ ( λ 2 ) ⋮ f ^ ( λ N ) ⎠ ⎟ ⎟ ⎟ ⎞ = ⎝ ⎜ ⎜ ⎜ ⎛ u 1 ( 1 ) u 2 ( 1 ) ⋮ u N ( 1 ) u 1 ( 2 ) u 2 ( 2 ) ⋮ u N ( 2 ) … … ⋱ … u 1 ( N ) u 2 ( N ) ⋮ u N ( N ) ⎠ ⎟ ⎟ ⎟ ⎞ ⎝ ⎜ ⎜ ⎜ ⎛ f ( 1 ) f ( 2 ) ⋮ f ( N ) ⎠ ⎟ ⎟ ⎟ ⎞ 即
f
f
f 在Graph上傅里葉變換的矩陣形式爲:
f
^
=
U
T
f
(
a
)
\hat{f}=U^Tf \qquad(a)
f ^ = U T f ( a )
6.3 圖的傅立葉逆變換——圖的傅立葉逆變換的矩陣形式
相似地,傳統的傅里葉變換是對頻率
ω
\omega
ω 求積分:
F
−
1
[
F
(
ω
)
]
=
1
2
Π
∫
F
(
ω
)
e
i
ω
t
d
ω
\mathcal{F}^{-1}[F(\omega)]=\frac{1}{2\Pi}\int_{}^{}F(\omega)e^{i\omega t} d\omega
F − 1 [ F ( ω ) ] = 2 Π 1 ∫ F ( ω ) e i ω t d ω
遷移到Graph上變爲對特徵值
λ
l
\lambda_l
λ l 求和:
f
(
i
)
=
∑
l
=
1
N
f
^
(
λ
l
)
u
l
(
i
)
f(i)=\sum_{l=1}^{N}{\hat{f}(\lambda_l) u_l(i)}
f ( i ) = l = 1 ∑ N f ^ ( λ l ) u l ( i )
利用矩陣乘法將Graph上的傅里葉逆變換推廣到矩陣形式:
(
f
(
1
)
f
(
2
)
⋮
f
(
N
)
)
=
(
u
1
(
1
)
u
2
(
1
)
…
u
N
(
1
)
u
1
(
2
)
u
1
(
2
)
…
u
N
(
2
)
⋮
⋮
⋱
⋮
u
1
(
N
)
u
2
(
N
)
…
u
N
(
N
)
)
(
f
^
(
λ
1
)
f
^
(
λ
2
)
⋮
f
^
(
λ
N
)
)
\left(\begin{matrix}f(1)\\ f(2) \\ \vdots \\f(N) \end{matrix}\right)= \left(\begin{matrix}\ u_1(1) &u_2(1)& \dots &u_N(1) \\u_1(2) &u_1(2)& \dots &u_N(2)\\ \vdots &\vdots &\ddots & \vdots\\ u_1(N) &u_2(N)& \dots &u_N(N) \end{matrix}\right) \left(\begin{matrix} \hat{f}(\lambda_1)\\ \hat{f}(\lambda_2) \\ \vdots \\\hat{f}(\lambda_N) \end{matrix}\right)
⎝ ⎜ ⎜ ⎜ ⎛ f ( 1 ) f ( 2 ) ⋮ f ( N ) ⎠ ⎟ ⎟ ⎟ ⎞ = ⎝ ⎜ ⎜ ⎜ ⎛ u 1 ( 1 ) u 1 ( 2 ) ⋮ u 1 ( N ) u 2 ( 1 ) u 1 ( 2 ) ⋮ u 2 ( N ) … … ⋱ … u N ( 1 ) u N ( 2 ) ⋮ u N ( N ) ⎠ ⎟ ⎟ ⎟ ⎞ ⎝ ⎜ ⎜ ⎜ ⎛ f ^ ( λ 1 ) f ^ ( λ 2 ) ⋮ f ^ ( λ N ) ⎠ ⎟ ⎟ ⎟ ⎞
即 f 在Graph上傅里葉逆變換的矩陣形式爲:
f
=
U
f
^
(
b
)
f=U\hat{f} \qquad(b)
f = U f ^ ( b )
6.4 圖上的傅里葉變換推廣到圖卷積
在上面的基礎上,利用卷積定理類比來將卷積運算,推廣到Graph上。
卷積定理:函數卷積的傅里葉變換是函數傅立葉變換的乘積 ,即對於函數f與g二者的卷積是其函數傅立葉變換乘積的逆變換(中間的橋樑就是傅立葉變換與反傅立葉變換,證實見:https://zhuanlan.zhihu.com/p/54505069):
f
∗
g
=
F
−
1
{
F
(
f
)
⋅
F
(
g
)
}
=
F
−
1
{
f
^
⋅
g
^
}
f * g=\mathcal{F}^{-1}{\{\mathcal{F}(f) \cdot \mathcal{F}(g) \}}=\mathcal{F}^{-1}\{ \hat{f} \cdot \hat{g}\}
f ∗ g = F − 1 { F ( f ) ⋅ F ( g ) } = F − 1 { f ^ ⋅ g ^ } 因此,對圖上f和卷積核g的卷積能夠表示爲:
(
f
∗
g
)
G
=
U
(
(
U
T
g
)
⋅
(
U
T
f
)
)
(f*g)_G=U((U^T g)\cdot(U^Tf))
( f ∗ g ) G = U ( ( U T g ) ⋅ ( U T f ) ) 從上面能夠看出,對卷積核
g
g
g 和
f
f
f 進行傅里葉變換的結果
U
T
g
,
U
T
f
U^T g,U^T f
U T g , U T f 都是一個列向量:
(
f
^
(
λ
1
)
f
^
(
λ
2
)
⋮
f
^
(
λ
N
)
)
,
(
f
(
1
)
f
(
2
)
⋮
f
(
N
)
)
\left(\begin{matrix} \hat{f}(\lambda_1)\\ \hat{f}(\lambda_2) \\ \vdots \\\hat{f}(\lambda_N) \end{matrix}\right),\left(\begin{matrix}f(1)\\ f(2) \\ \vdots \\f(N) \end{matrix}\right)
⎝ ⎜ ⎜ ⎜ ⎛ f ^ ( λ 1 ) f ^ ( λ 2 ) ⋮ f ^ ( λ N ) ⎠ ⎟ ⎟ ⎟ ⎞ , ⎝ ⎜ ⎜ ⎜ ⎛ f ( 1 ) f ( 2 ) ⋮ f ( N ) ⎠ ⎟ ⎟ ⎟ ⎞
因此,不少論文中的Graph卷積公式也寫做:
(
f
∗
g
)
G
=
U
(
(
U
T
g
)
⊙
(
U
T
f
)
)
(f*g)_G=U((U^Tg)\odot(U^Tf))
( f ∗ g ) G = U ( ( U T g ) ⊙ ( U T f ) )
⊙
\odot
⊙ 表示hadamard product(哈達馬積),對於兩個向量,就是進行內積運算;對於維度相同的兩個矩陣,就是對應元素的乘積運算。
若是把
U
T
g
U^Tg
U T g 總體看做可學習的卷積核,這裏咱們把它寫做
g
θ
g_\theta
g θ 。最終圖上的卷積公式便是:
(
f
∗
g
)
G
=
U
g
θ
U
T
f
(f*g)_G = Ug_{\theta}U^Tf
( f ∗ g ) G = U g θ U T f 有的地方,還把
g
θ
=
U
T
g
g_\theta=U^Tg
g θ = U T g 也成對角矩陣的形式,即定義一個濾波
g
θ
=
d
i
a
g
(
U
T
g
)
g_\theta=diag(U^T g)
g θ = d i a g ( U T g ) ,則:
f
∗
g
θ
=
U
g
θ
U
T
f
=
U
(
g
^
(
λ
1
)
⋱
g
^
(
λ
n
)
)
U
T
f
f*g_\theta=Ug_{\theta}U^Tf= U\left(\begin{matrix}\hat g(\lambda_1) & \\&\ddots \\ &&\hat g(\lambda_n) \end{matrix}\right) U^Tf
f ∗ g θ = U g θ U T f = U ⎝ ⎛ g ^ ( λ 1 ) ⋱ g ^ ( λ n ) ⎠ ⎞ U T f
接下來第8節要介紹的圖上頻域卷積的工做,都是在
g
θ
g_\theta
g θ 的基礎上作文章。
7. 爲何拉普拉斯矩陣的特徵向量能夠做爲傅里葉變換的基?特徵值表示頻率?
在Chebyshev論文(M. Defferrard, X. Bresson, and P. Vandergheynst, 「Convolutional neural networks on graphs with fast localized spectral filtering,」in Advances in Neural Information Processing Systems, 2016 )中就有說明,圖上進行傅里葉變換時,拉普拉斯矩陣是對稱矩陣,全部有n個線性無關的特徵向量,所以能夠構成傅里葉變換的一組基,而其對應的特徵值就是傅里葉變換的頻率。
7.1 爲何拉普拉斯矩陣的特徵向量能夠做爲傅里葉變換的基?
傅里葉變換一個本質理解就是:把任意一個函數表示成了若干個正交函數(由sin,cos 構成)的線性組合。
經過即 f 在Graph上傅里葉逆變換的矩陣形式:
f
=
U
f
^
(
b
)
f=U\hat{f} \qquad(b)
f = U f ^ ( b ) 也能看出,graph傅里葉變換把graph上定義的任意向量f,表示成了拉普拉斯矩陣特徵向量的線性組合,即:
f
=
f
^
(
1
)
u
1
+
f
^
(
2
)
u
2
+
⋯
+
f
^
(
n
)
u
n
f=\hat{f}(1)u_1+\hat{f}(2)u_2+\cdots +\hat{f}(n)u_n
f = f ^ ( 1 ) u 1 + f ^ ( 2 ) u 2 + ⋯ + f ^ ( n ) u n
那麼:爲何graph上任意的向量f均可以表示成這樣的線性組合?
緣由在於
(
u
1
⃗
,
u
2
⃗
,
⋯
,
u
n
⃗
)
(\vec{u_1},\vec{u_2},\cdots,\vec{u_n})
( u 1
, u 2
, ⋯ , u n
) 是graph上 n維空間中的 n 個線性無關的正交向量(拉普拉斯矩陣是對稱矩陣,一定能夠進行特徵分解,有n個線性無關的特徵向量 ),由線性代數的知識能夠知道:n 維空間中n 個線性無關的向量能夠構成空間的一組基,並且拉普拉斯矩陣的特徵向量仍是一組正交基。
7.2 怎麼理解拉普拉斯矩陣的特徵值表示頻率?
在graph空間上沒法可視化展現「頻率」這個概念,那麼從特徵方程上來抽象理解。
將拉普拉斯矩陣 L 的 n 個非負實特徵值,從小到大排列爲
λ
1
≤
λ
2
≤
⋯
≤
λ
n
\lambda_1 \le \lambda_2 \le \cdots \le \lambda_n
λ 1 ≤ λ 2 ≤ ⋯ ≤ λ n ,並且最小的特徵值
λ
1
=
0
\lambda_1=0
λ 1 = 0 ,由於 n 維的全1向量對應的特徵值爲0(由 L 的定義就能夠得出):
L
(
1
1
⋮
1
)
=
0
L \left(\begin{matrix}1\\ 1 \\ \vdots \\1 \end{matrix}\right)=0
L ⎝ ⎜ ⎜ ⎜ ⎛ 1 1 ⋮ 1 ⎠ ⎟ ⎟ ⎟ ⎞ = 0
從特徵方程的數學理解來看:
L
u
=
λ
u
Lu=\lambda u
L u = λ u
在由Graph肯定的 n 維空間中,越小的特徵值
λ
l
\lambda_l
λ l 代表:拉普拉斯矩陣 L 其所對應的基
u
l
u_l
u l 上的份量、「信息」越少,那麼固然就是能夠忽略的低頻部分了。
其實圖像壓縮就是這個原理,把像素矩陣特徵分解後,把小的特徵值(低頻部分)所有變成0,PCA降維也是一樣的,把協方差矩陣特徵分解後,按從大到小取出前K個特徵值對應的特徵向量做爲新的「座標軸」。
Graph Convolution的理論告一段落了,下面開始Graph Convolution Network
8. 深度學習中GCN的演變
Deep learning 中的Graph Convolution直接看上去會和第6節推導出的圖卷積公式有很大的不一樣,可是萬變不離其宗,都是根據下式來推導的:
g
θ
∗
x
=
U
g
θ
U
T
x
=
U
(
g
^
(
λ
1
)
⋱
g
^
(
λ
n
)
)
U
T
x
g_\theta * x = Ug_\theta U^Tx =U\left(\begin{matrix}\hat g(\lambda_1) & \\&\ddots \\ &&\hat g(\lambda_n) \end{matrix}\right) U^T x
g θ ∗ x = U g θ U T x = U ⎝ ⎛ g ^ ( λ 1 ) ⋱ g ^ ( λ n ) ⎠ ⎞ U T x
Deep learning 中的Convolution就是要設計含有trainable共享參數的kernel 。
上式計算量很大 ,由於特徵向量矩陣U 的複雜度 是
O
(
N
2
)
O(N^2)
O ( N 2 ) 。此外,對於大型圖來講,L特徵值分解的計算量也很大 。
基於上面最原始的卷積公式,深度學習中的GCN主要是從下面幾篇文章演變而來的(引用次數都很高),後面一一進行簡單介紹:
【1】Bruna, Joan, et al. 「Spectral networks and locally connected networks on graphs .」 源於ICLR 2014(被引740次)
【2】Defferrard, Michaël, Xavier Bresson, and Pierre Vandergheynst. 「Convolutional neural networks on graphs with fast localized spectral filtering .」 源於NIPS 2016(被引997次)
【3】Hammond, David K., Pierre Vandergheynst, and Rémi Gribonval. 「Wavelets on graphs via spectral graph theory .」 Applied and Computational Harmonic Analysis 30.2 (2011 )(被引874次)
【4】Kipf, Thomas N., and Max Welling. 「Semi-supervised classification with graph convolutional networks .」 源於ICML 2017 (被引1537次)
8.1 Spectral CNN
譜CNN源於論文(J. Bruna, W. Zaremba, A. Szlam, and Y. LeCun, 「Spectral networks and locally connected networks on graphs,」 in Proceedings of International Conference on Learning Representations, 2014 ),Bruna等人,第一次提出譜卷積神經網絡。他們簡單地把
g
θ
g_\theta
g θ 看做是一個可學習參數的集合:
g
θ
=
Θ
i
,
j
k
g_\theta=\Theta_{i,j}^k
g θ = Θ i , j k 。而且假設圖信號是多維的,圖卷積層頂定義爲:
X
:
,
j
k
+
1
=
σ
(
∑
i
=
1
f
k
−
1
U
Θ
i
,
j
k
U
T
X
:
,
i
k
)
(
j
=
1
,
2
,
⋯
,
f
k
)
X_{:,j}^{k+1} = \sigma(\sum_{i=1}^{f_{k-1}}U\Theta_{i,j}^kU^TX_{:,i}^{k})\quad \quad \quad (j=1,2,\cdots,f_k)
X : , j k + 1 = σ ( i = 1 ∑ f k − 1 U Θ i , j k U T X : , i k ) ( j = 1 , 2 , ⋯ , f k )
X
k
∈
R
N
×
f
k
−
1
X^k\in \mathbb{R}^{N\times f_{k-1}}
X k ∈ R N × f k − 1 是輸入圖信號,對應圖上就是點的輸入特徵
N
N
N 是節點數量
f
k
−
1
f_{k-1}
f k − 1 是輸入通道的數量
f
k
f_{k}
f k 是輸出通道的數量
Θ
i
,
j
k
\Theta_{i,j}^k
Θ i , j k 是一個可學習參數的對角矩陣,就跟三層神經網絡中的weight同樣是任意的參數,經過初始化賦值而後利用偏差反向傳播進行調整
σ
(
⋅
)
\sigma(\cdot)
σ ( ⋅ ) 是激活函數
第一代的參數方法存在着一些弊端,主要在於: (1)計算複雜 :若是一個樣本一個圖,那麼每一個樣本都須要進行圖的拉普拉斯矩陣的特徵分解求U矩陣計算複雜;每一次前向傳播,都要計算
U
,
d
i
a
g
(
θ
l
)
U,diag(\theta_l )
U , d i a g ( θ l ) 及
U
T
U^T
U T 三者的乘積,特別是對於大規模的graph,計算的代價較高,須要
O
(
n
2
)
\mathcal{O}(n^2)
O ( n 2 ) 的計算複雜度 (2)是非局部性鏈接的 (3)卷積核須要N個參數,當圖中的節點N很大時是不可取的
因爲以上的缺點第二代的卷積核設計應運而生。
8.2 Chebyshev譜CNN(ChebNet)
Chebyshev譜CNN源於論文(M. Defferrard, X. Bresson, and P. Vandergheynst, 「Convolutional neural networks on graphs with fast localized spectral filtering,」in Advances in Neural Information Processing Systems, 2016 )。Defferrard等人提出ChebNet,定義特徵向量對角矩陣的切比雪夫多項式爲濾波器,也就是
g
θ
=
g
θ
(
Λ
)
≈
∑
i
=
0
K
−
1
θ
i
T
k
(
Λ
~
)
g_θ=g_θ(Λ) \approx \sum^{K-1}_{i=0} \theta_i T_k(\tilde Λ)
g θ = g θ ( Λ ) ≈ i = 0 ∑ K − 1 θ i T k ( Λ ~ ) 其實,就是利用Chebyshev多項式擬合卷積核的方法,來下降計算複雜度。
推導過程以下: 考慮信號
x
∈
R
N
x∈\mathbb{R}^N
x ∈ R N (x就是graph上對應於每一個頂點的feathure vector,即由數據集提取特徵構成的向量,而不是和線性代數中常說的特徵向量,注意區別)與以參數爲
θ
∈
R
N
θ \in \mathbb{R}^N
θ ∈ R N 的濾波器
g
θ
=
d
i
a
g
(
θ
)
g_θ=diag(θ)
g θ = d i a g ( θ ) 在傅里葉域的譜卷積。
g
θ
∗
x
=
U
g
θ
U
T
x
(
3
)
g_\theta * x = Ug_\theta U^Tx \qquad (3)
g θ ∗ x = U g θ U T x ( 3 ) 其中
U 是對稱歸一化的拉普拉斯(normalized graph Laplacian)算子
L
=
I
N
−
D
−
1
/
2
A
D
−
1
/
2
=
U
Λ
U
T
L=I_N−D^{−1/2}AD^{−1/2}=UΛU^T
L = I N − D − 1 / 2 A D − 1 / 2 = U Λ U T 的特徵向量矩陣,Λ是由L的特徵值構成的對角矩陣。
L
=
D
−
1
2
(
D
−
A
)
D
−
1
2
=
D
−
1
2
D
D
−
1
2
−
D
−
1
2
A
D
−
1
2
=
I
N
−
D
−
1
2
A
D
−
1
2
\begin{aligned} L &= D^{-\frac{1}{2}}(D - A)D^{-\frac{1}{2}} \\ &= D^{-\frac{1}{2}} D D^{-\frac{1}{2}} - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \\ &= I_N - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \end{aligned}
L = D − 2 1 ( D − A ) D − 2 1 = D − 2 1 D D − 2 1 − D − 2 1 A D − 2 1 = I N − D − 2 1 A D − 2 1 因爲normalized graph Laplacian矩陣L是實對稱矩陣, 所以其特徵向量矩陣U是正交矩陣,即
U
U
T
=
I
N
UU^T=I_N
U U T = I N
U
T
x
U^Tx
U T x 是x的傅里葉變換。
g
θ
g_θ
g θ 是由參數θ構成的對角矩陣diag(θ)。因爲參數θ的肯定與L的特徵值有關,做者認爲
g
θ
g_θ
g θ 是特徵值 Λ的一個函數,即令
g
θ
=
g
θ
(
Λ
)
g_θ=g_θ(Λ)
g θ = g θ ( Λ )
式3的計算量很大 ,由於特徵向量矩陣U 的複雜度 是
O
(
N
2
)
O(N^2)
O ( N 2 ) 。此外,對於大型圖來講,L特徵值分解的計算量也很大 。 爲了解決這個問題,Hammond et al.(2011) :Wavelets on graphs via spectral graph theory 指出
g
θ
(
Λ
)
g_θ(Λ)
g θ ( Λ ) 能夠很好的經過Chebyshev多項式
T
k
(
x
)
T_k(x)
T k ( x ) 的Kth-階截斷展開來擬合,並對Λ進行scale使其元素位於[−1,1] :
g
θ
(
Λ
)
≈
∑
k
=
0
K
θ
k
T
K
(
Λ
~
)
(
4
)
g_{\theta}(Λ) \approx \sum^{K}_{k=0} \theta_kT_K(\tilde Λ) \qquad (4)
g θ ( Λ ) ≈ k = 0 ∑ K θ k T K ( Λ ~ ) ( 4 ) 其中
Λ
~
=
2
Λ
/
λ
m
a
x
−
I
N
\tilde Λ = 2Λ / λ_{max}− I_N
Λ ~ = 2 Λ / λ m a x − I N (爲縮放後的特徵向量矩陣,縮放後範圍是[−1,1],單位矩陣的特徵值是n重1),縮放的目的是爲了知足Chebyshev多項式
T
k
(
x
)
T_k(x)
T k ( x ) 的
K
t
h
K^{th}
K t h 階截斷展開的條件:自變量範圍須要在[−1,1]之間
λ
m
a
x
λ_{max}
λ m a x 是L 的最大特徵值,也叫譜半徑 。
θ
∈
R
K
θ∈\mathbb{R}^K
θ ∈ R K 是切比雪夫係數的向量
Chebyshev多項式遞歸定義爲
T
k
(
x
)
=
2
x
T
k
−
1
(
x
)
−
T
k
−
2
(
x
)
T_k(x) = 2xT_{k−1}(x) − T_{k−2}(x)
T k ( x ) = 2 x T k − 1 ( x ) − T k − 2 ( x ) , 其中
T
0
(
x
)
=
1
,
T
1
(
x
)
=
x
T_0(x)=1, T_1(x)=x
T 0 ( x ) = 1 , T 1 ( x ) = x 。
回到對信號x與濾波器
g
θ
g_{θ}
g θ 的卷積的定義,如今有:
g
θ
∗
x
=
∑
k
=
0
K
θ
k
T
K
(
L
~
)
x
(
5
)
g_{\theta} * x = \sum^{K}_{k=0} \theta_kT_K(\tilde L)x \qquad (5)
g θ ∗ x = k = 0 ∑ K θ k T K ( L ~ ) x ( 5 ) 其中
L
~
=
2
L
/
λ
m
a
x
−
I
N
=
U
Λ
~
U
T
\tilde L= 2L / λ_{max}− I_N=U \tilde \Lambda U^T
L ~ = 2 L / λ m a x − I N = U Λ ~ U T
易證
(
U
Λ
U
T
)
k
=
U
Λ
k
U
T
(UΛU^T)^k=UΛ^kU^T
( U Λ U T ) k = U Λ k U T
如今,相比於第一種Spectral CNN:
此表達式如今是K-localized,具備局部鏈接性,由於它是拉普拉斯算子中的Kth-階多項式,即它僅取決於離中央節點(Kth階鄰域)最大K步的節點
T
K
(
L
~
)
x
T_K(\tilde L)x
T K ( L ~ ) x 的複雜度是O(|E|) ,即與邊數E呈線性關係,整個運算的複雜度是
O
(
K
∣
E
∣
)
O(K|E|)
O ( K ∣ E ∣ ) 。當graph是稀疏圖的時候,計算加速尤其明顯,這個時候複雜度遠低於
O
(
n
2
)
O(n^2)
O ( n 2 )
公式4到公式5的補充證實以下: (1)先用數學概括法證實
U
T
k
(
Λ
~
)
U
T
=
T
k
(
U
Λ
~
U
T
)
U T_k (\tilde{\Lambda}) U^T = T_k (U \tilde{\Lambda} U^T)
U T k ( Λ ~ ) U T = T k ( U Λ ~ U T ) 數學概括法思路:當n=1時顯然成立,假設n=k時成立,只需證n=k+1時成立
證實: 根據切比雪夫多項式的定義, 已知
U
T
0
(
Λ
~
)
U
T
=
U
U
T
=
1
=
T
0
(
U
Λ
~
U
T
)
U
T
1
(
Λ
~
)
U
T
=
U
Λ
~
U
T
=
T
1
(
U
Λ
~
U
T
)
\begin{aligned} &U T_0(\tilde{\Lambda}) U^T = UU^T =1 = T_0(U \tilde{\Lambda} U^T) \\ &U T_1(\tilde{\Lambda}) U^T = U\tilde{\Lambda}U^T = T_1(U \tilde{\Lambda} U^T) \end{aligned}
U T 0 ( Λ ~ ) U T = U U T = 1 = T 0 ( U Λ ~ U T ) U T 1 ( Λ ~ ) U T = U Λ ~ U T = T 1 ( U Λ ~ U T ) 假設對於任意k>1, 知足
U
T
k
−
2
(
Λ
~
)
U
T
=
T
k
−
2
(
U
Λ
~
U
T
)
U T_{k-2} (\tilde{\Lambda}) U^T= T_{k-2} (U \tilde{\Lambda} U^T)
U T k − 2 ( Λ ~ ) U T = T k − 2 ( U Λ ~ U T ) 與
U
T
k
−
1
(
Λ
~
)
U
T
=
T
k
−
1
(
U
Λ
~
U
T
)
U T_{k-1} (\tilde{\Lambda}) U^T= T_{k-1} (U \tilde{\Lambda} U^T)
U T k − 1 ( Λ ~ ) U T = T k − 1 ( U Λ ~ U T ) 則
U
T
k
(
Λ
~
)
U
T
=
2
U
Λ
~
T
k
−
1
(
Λ
~
)
U
T
−
U
T
k
−
2
(
Λ
~
)
U
T
=
2
(
U
Λ
~
U
T
)
[
U
T
k
−
1
(
Λ
~
)
U
T
]
−
U
T
k
−
2
(
Λ
~
)
U
T
=
2
(
U
Λ
~
U
T
)
T
k
−
1
(
U
Λ
~
U
T
)
−
T
k
−
2
(
U
Λ
~
U
T
)
=
T
k
(
U
Λ
~
U
T
)
\begin{aligned} U T_k (\tilde{\Lambda}) U^T &= 2U \tilde{\Lambda} T_{k-1}(\tilde{\Lambda})U^T - U T_{k-2}(\tilde{\Lambda}) U^T \\ &= 2 (U \tilde{\Lambda} U^T) \left[U T_{k-1}(\tilde{\Lambda})U^T \right] - U T_{k-2}(\tilde{\Lambda}) U^T \\ &= 2 (U \tilde{\Lambda} U^T) T_{k-1} (U \tilde{\Lambda} U^T) - T_{k-2} (U \tilde{\Lambda} U^T) \\ &= T_k (U \tilde{\Lambda} U^T) \end{aligned}
U T k ( Λ ~ ) U T = 2 U Λ ~ T k − 1 ( Λ ~ ) U T − U T k − 2 ( Λ ~ ) U T = 2 ( U Λ ~ U T ) [ U T k − 1 ( Λ ~ ) U T ] − U T k − 2 ( Λ ~ ) U T = 2 ( U Λ ~ U T ) T k − 1 ( U Λ ~ U T ) − T k − 2 ( U Λ ~ U T ) = T k ( U Λ ~ U T ) 所以,根據數學概括法, 證畢。
(2)已知
L
~
=
U
Λ
~
U
T
\tilde L= U \tilde{\Lambda} U^T
L ~ = U Λ ~ U T
(3)將(1)、(2)兩式帶入卷積公式:
g
θ
∗
x
=
U
g
θ
U
T
x
=
U
g
θ
(
Λ
)
U
T
x
=
U
(
∑
k
=
0
K
θ
k
T
K
(
Λ
~
)
)
U
T
x
=
(
∑
k
=
0
K
θ
k
T
K
(
U
Λ
~
U
T
)
)
x
=
∑
k
=
0
K
θ
k
T
K
(
L
~
)
x
(
5
)
\begin{aligned} g_\theta * x & = Ug_\theta U^Tx \\ & = U g_{\theta}(Λ) U^Tx \\ & =U (\sum^{K}_{k=0} \theta_kT_K(\tilde Λ)) U^Tx \\ & = (\sum^{K}_{k=0} \theta_kT_K(U\tilde Λ U^T)) x \\ & = \sum^{K}_{k=0} \theta_k T_K(\tilde L) x \qquad (5) \end{aligned}
g θ ∗ x = U g θ U T x = U g θ ( Λ ) U T x = U ( k = 0 ∑ K θ k T K ( Λ ~ ) ) U T x = ( k = 0 ∑ K θ k T K ( U Λ ~ U T ) ) x = k = 0 ∑ K θ k T K ( L ~ ) x ( 5 )
8.3 CayleyNet
CayleyNet進一步應用了參數有理複合函數的Cayley多項式來捕獲窄的頻帶。CayleyNet的譜圖卷積定義爲
x
∗
g
θ
=
c
0
x
+
2
Re
{
∑
j
=
1
r
c
j
(
h
L
−
i
I
)
j
(
h
L
+
i
I
)
−
j
x
}
\mathbf{x} *g_\theta=c_{0} \mathbf{x}+2 \operatorname{Re}\left\{\sum_{j=1}^{r} c_{j}(h \mathbf{L}-i \mathbf{I})^{j}(h \mathbf{L}+i \mathbf{I})^{-j} \mathbf{x}\right\}
x ∗ g θ = c 0 x + 2 R e { j = 1 ∑ r c j ( h L − i I ) j ( h L + i I ) − j x } 其中
R
e
(
⋅
)
Re(\cdot)
R e ( ⋅ ) 爲複數的實部
c
0
c_0
c 0 爲實數
c
j
c_j
c j 爲複數
i
i
i 爲虛數
$h4`爲控制Cayley濾波器頻譜的參數
CayleyNet在保留空間局部性的同時,說明ChebNet能夠看做是CayleyNet的一個特例。
8.4 一階ChebNet(1stChebNet)-GCN
一階ChebNet源於論文(T. N. Kipf and M.Welling, 「Semi-supervised classification with graph convolutional networks,」 in Proceedings of the International Conference on Learning Representations, 2017 )。這篇論文基於前面的工做,正式成爲GCN的開山之做 ,後面不少變種都是基於這篇文章的。
該篇論文貢獻有兩點:
做者對於直接操做於圖結構數據的網絡模型根據頻譜圖卷積(Hammond等人於2011年提出的Wavelets on graphs via spectral graph theory)使用一階近似簡化計算的方法,提出了一種簡單有效的層式傳播方法。
做者驗證了圖結構神經網絡模型可用於快速可擴展式的處理圖數據中節點半監督分類問題,做者經過在一些公有數據集上驗證了本身的方法的效率和準確率可以媲美現有的頂級半監督方法。
下面介紹ChebNet的一階近似方法: Kipf等人引入了一種一階近似ChebNet。假設
K
=
1
,
λ
m
a
x
=
2
K=1,\lambda_{max}=2
K = 1 , λ m a x = 2 ,則ChebNet卷積公式簡化近似爲:
x
∗
g
θ
=
θ
0
x
−
θ
1
D
−
1
/
2
A
D
−
1
/
2
x
x*g_\theta = \theta_0x - \theta_1 D^{− 1 /2} AD^{− 1 /2}x
x ∗ g θ = θ 0 x − θ 1 D − 1 / 2 A D − 1 / 2 x 爲了抑制參數數量防止過擬合,1stChebNet假設
θ
=
θ
0
=
−
θ
1
\theta=\theta_0=-\theta_1
θ = θ 0 = − θ 1 ,圖卷積的定義就近似爲(這是簡單的一階模型):
g
θ
∗
x
=
θ
(
I
N
+
D
−
1
/
2
A
D
−
1
/
2
)
x
g_θ * x = θ (I_N + D^{− 1 /2} AD^{− 1 /2} ) x
g θ ∗ x = θ ( I N + D − 1 / 2 A D − 1 / 2 ) x 其中
而
I
N
+
D
−
1
/
2
A
D
−
1
/
2
I_N+D^{−1/2}AD^{−1/2}
I N + D − 1 / 2 A D − 1 / 2 是有範圍[0,2]的特徵值。所以,若是在深度神經網絡模型中使用該算子,則反覆應用該算子會致使數值不穩定(發散)和梯度爆炸/消失 。
爲了解決該問題, 引入了一個renormalization trick:
I
N
+
D
−
1
/
2
A
D
−
1
/
2
⟶
A
~
=
A
+
I
N
D
~
−
1
/
2
A
~
D
~
−
1
/
2
I_N+D^{−1/2}AD^{−1/2} \stackrel{\tilde A=A+I_N}{\longrightarrow} \tilde D^{−1/2} \tilde A \tilde D^{−1/2}
I N + D − 1 / 2 A D − 1 / 2 ⟶ A ~ = A + I N D ~ − 1 / 2 A ~ D ~ − 1 / 2 其中
A
~
=
A
+
I
N
,
D
~
i
i
=
∑
j
A
~
i
j
\tilde A=A+I_N,\tilde D_{ii}=∑_j \tilde A_{ij}
A ~ = A + I N , D ~ i i = ∑ j A ~ i j ,即圖中加上自環
再加上一個激活函數,最後就能夠獲得了論文中的快速卷積公式:
H
(
l
+
1
)
=
f
(
H
l
,
A
)
=
σ
(
D
~
−
1
/
2
A
~
D
~
−
1
/
2
H
(
l
)
W
(
l
)
)
H ^{(l+1)} =f(H^l,A)=\sigma (\tilde D^{-1/2} \tilde A \tilde D^{ − 1/2} H^{(l)}W^{(l)} )
H ( l + 1 ) = f ( H l , A ) = σ ( D ~ − 1 / 2 A ~ D ~ − 1 / 2 H ( l ) W ( l ) )
推廣:特徵映射公式 能夠將這個定義推廣到具備C個輸入通道(即每一個節點的C維特徵向量)的信號
X
∈
R
N
×
C
X∈\mathbb{R}^{N×C}
X ∈ R N × C 和 F 個濾波器或特徵映射以下:
Z
=
D
~
−
1
/
2
A
~
D
~
−
1
/
2
X
Θ
Z = \tilde D^{− 1 /2} \tilde A \tilde D^{− 1/ 2} XΘ
Z = D ~ − 1 / 2 A ~ D ~ − 1 / 2 X Θ 其中
Θ
∈
R
C
×
F
Θ∈\mathbb{R}^{C×F}
Θ ∈ R C × F 是一個濾波器參數矩陣,其實就是參數矩陣W
Z
∈
R
N
×
F
Z∈\mathbb{R}^{N×F}
Z