1.引言
在歐式空間中使用的CNN卷積具有平移不變性,權值共享,局部連接,分層次表達的特點;但是圖網絡是一種非歐式結構的數據,網絡是不規整的關係型數據,所以其不存在平移不變形(每個節點的周圍鄰居數不固定),導致圖網絡無法使用傳統的CNN。不使用卷積核卷積的話,只能按照全連接網絡的方式進行線性映射,這樣又將失去權值共享,局部連接,分層次表達這些優勢,需要大量的參數。在《Spectral Networks and Deep Locally Connected Networks on Graphs》 中,作者想辦法把傳統歐式空間的卷積遷移到圖網絡中去,作者提出了兩個結構,把歐式空間的卷積遷移到了圖網絡的空間域和頻域。
2.空間結構
無向圖:G = ( Ω , W ) G=(\Omega,W) G = ( Ω , W ) ,其中Ω \Omega Ω 表示圖中所有節點的集合,size = m;W W W 表示圖的鄰接矩陣,shape = (m,m),由於是無向圖,W W W 是一個對稱矩陣。W W W 中的值W i , j W_{i,j} W i , j 表示節點i,j之間的邊的權重,爲非負值,當這兩個節點之間沒有邊的時候,認爲權重值爲0。
2.1 節點的鄰域
在傳統的歐式空間中(以圖像爲例),在卷積時需要設置一定大小的卷積核,如 kernel = (3,3),就是相當於中心像素點的鄰域爲周圍的8個像素點。
在圖中,利用W W W 來確定每個節點的鄰域。論文中給出公式:
N δ ( j ) = { i ∈ Ω : W i , j > δ } (1) N_\delta(j)=\{i\in\Omega:W_{i,j}>\delta\}\tag{1} N δ ( j ) = { i ∈ Ω : W i , j > δ } ( 1 )
N δ ( j ) N_\delta(j) N δ ( j ) 表示j j j 的鄰域,是一個集合;以δ \delta δ 爲閾值劃分節點j j j 的鄰域,權值大於δ \delta δ 才屬於j j j 的鄰域。
2.3 深度局部連接網絡
2.2節中作者在介紹一個傳統卷積的分層次表達的特點,這裏就不再解釋,直接進入2.3節。
在傳統的歐式空間中(以圖像爲例),在卷積時需要設置一定大小的步長,如stride = (3,3),假設input_image.shape = (18,18),kernel = (3,3),out_image.shape = (6,6),這個操作相當於在18×18個像素點中找到了6×6個聚類中心,將其進行聚類操作,每個類中的元素爲中心點的鄰域元素。將每個類與卷積覈對應項相乘求和,得到輸出的一個像素點。
在圖中,作者給出了以下(2)(3)兩個公式:
N k = { N k , i ; i = 1... d k − 1 } (2) N_{k}=\{N_{k,i};i=1...d_{k-1}\}\tag{2} N k = { N k , i ; i = 1 . . . d k − 1 } ( 2 )
在公式(2)中 ,k表示第k個尺度,類比傳統卷積,意思就是第k層卷積層,Ω k \Omega_{k} Ω k 表示第k層輸入的節點數目,d k − 1 d_{k-1} d k − 1 第k-1層中聚類的類數,即Ω k = d k − 1 \Omega_{k} = d_{k-1} Ω k = d k − 1 ,Ω k + 1 = d k \Omega_{k+1}=d_{k} Ω k + 1 = d k 表示輸出的節點數目,N k , i N_{k,i} N k , i 表示第i個節點的類,在這個公式中,作者是以每個輸入節點爲類中心,以節點鄰域爲類元素,得到了Ω k = d k − 1 \Omega_{k} = d_{k-1} Ω k = d k − 1 個類。
具體如何得到N k N_{k} N k 如上圖所示:(這些公式就沒怎麼看懂了)
x k + 1 , j = L k h ( ∑ i = 1 f k − 1 F k , i , j x k , j ) ( j = 1... f k ) (3) x_{k+1,j}=L_{k}h(\sum_{i=1}^{f_{k-1}}{F_{k,i,j}x_{k,j}})(j=1...f_{k})\tag{3} x k + 1 , j = L k h ( i = 1 ∑ f k − 1 F k , i , j x k , j ) ( j = 1 . . . f k ) ( 3 )
在公式(3)中, f k − 1 f_{k-1} f k − 1 表示k-1層的濾波器個數,也是k層中每個節點的特徵維數。x k = ( x k , i ; i = 1... f k − 1 ) x_{k}=(x_{k,i};i=1...f_{k-1}) x k = ( x k , i ; i = 1 . . . f k − 1 ) ,x k x_{k} x k .shape = (d k − 1 , f k − 1 d_{k-1},f_{k-1} d k − 1 , f k − 1 ),表示輸入數據;x k , i x_{k,i} x k , i .shape = (d k − 1 d_{k-1} d k − 1 ,1),表示d k − 1 d_{k-1} d k − 1 個節點的第i個特徵拼接形成的向量。F k , i , j F_{k,i,j} F k , i , j .shape = (d k − 1 , d k − 1 d_{k-1},d_{k-1} d k − 1 , d k − 1 ),表示第k層第j個濾波器的i個值,F k , i , j F_{k,i,j} F k , i , j 的值與N k N_{k} N k 有關,表示第k層第j個濾波器的i個特徵的映射關係,x節點和y節點不是鄰域關係則對應的F k , i , j ( x , y ) F_{k,i,j}(x,y) F k , i , j ( x , y ) 的值將爲0,和W W W 類似。
∑ i = 1 f k − 1 F k , i , j x k , j \sum_{i=1}^{f_{k-1}}{F_{k,i,j}x_{k,j}} ∑ i = 1 f k − 1 F k , i , j x k , j 部分完成了卷積的工作(類比傳統的卷積的話,可以認爲卷積的模式選擇了same,stride = 1),卷積後輸出和輸入節點數一樣,輸出( d k − 1 , 1 ) (d_{k-1},1) ( d k − 1 , 1 ) 的向量,h ( ∗ ) h(*) h ( ∗ ) 爲非線性激勵函數,L k ( ∗ ) L_{k}(*) L k ( ∗ ) 爲池化操作,將( d k − 1 , 1 ) (d_{k-1},1) ( d k − 1 , 1 ) 的向量池化爲( d k , 1 ) (d_{k},1) ( d k , 1 ) 的向量,即x k + 1 , j . s h a p e = ( d k , 1 ) x_{k+1,j}.shape = (d_{k},1) x k + 1 , j . s h a p e = ( d k , 1 ) ,然後,如果第k層有f k f_{k} f k 個濾波器的話,那麼第k層的輸出爲x k + 1 = ( x k + 1 , i ; i = 1... f k ) x_{k+1}=(x_{k+1,i};i=1...f_{k}) x k + 1 = ( x k + 1 , i ; i = 1 . . . f k ) 。
圖上的空間域卷積如下圖所示:
k =1時:
n u m ( Ω 0 ) = 12 , x 1 . s h a p e = ( 12 , f 0 ) , f 1 = 4 , F 1 , i , j . s h a p e = ( 12 , 12 ) , 1 ≤ i ≤ f 0 , 1 ≤ j ≤ f 1 , d 1 = 6 num(\Omega_{0})=12,x_{1}.shape=(12,f_{0}),f_{1}=4,F_{1,i,j}.shape=(12,12),1 \leq i \leq f_{0},1 \leq j \leq f_{1},d_{1}=6 n u m ( Ω 0 ) = 1 2 , x 1 . s h a p e = ( 1 2 , f 0 ) , f 1 = 4 , F 1 , i , j . s h a p e = ( 1 2 , 1 2 ) , 1 ≤ i ≤ f 0 , 1 ≤ j ≤ f 1 , d 1 = 6
k =2時:
n u m ( Ω 1 ) = d 1 = 6 , x 2 . s h a p e = ( 6 , f 1 ) , f 2 = 6 , F 2 , i , j . s h a p e = ( 6 , 6 ) , 1 ≤ i ≤ f 1 = 4 , 1 ≤ j ≤ f 2 , d 2 = 3 num(\Omega_{1})=d_{1}=6,x_{2}.shape=(6,f_{1}),f_{2}=6,F_{2,i,j}.shape=(6,6),1 \leq i \leq f_{1}=4,1 \leq j \leq f_{2},d_{2}=3 n u m ( Ω 1 ) = d 1 = 6 , x 2 . s h a p e = ( 6 , f 1 ) , f 2 = 6 , F 2 , i , j . s h a p e = ( 6 , 6 ) , 1 ≤ i ≤ f 1 = 4 , 1 ≤ j ≤ f 2 , d 2 = 3
網絡輸出:
x 3 . s h a p e = ( d 2 , f 2 ) = ( 3 , 6 ) x_{3}.shape=(d_{2},f_{2})=(3,6) x 3 . s h a p e = ( d 2 , f 2 ) = ( 3 , 6 )
3.頻域結構
離散域的卷積公式:( f ∗ g ) = ∑ τ = − ∞ ∞ f ( τ ) g ( n − τ ) (f*g)=\sum_{\tau=-\infty}^{\infty}{f(\tau)g(n-\tau)} ( f ∗ g ) = ∑ τ = − ∞ ∞ f ( τ ) g ( n − τ )
離散傅里葉變換公式(DFT):X ( k ) = F ( x ( n ) ) = ∑ n = 0 N − 1 x ( n ) e − j k 2 π N n X(k)=F(x(n))=\sum_{n=0}^{N-1}{x(n)e^{-jk\frac{2\pi}{N}n}} X ( k ) = F ( x ( n ) ) = ∑ n = 0 N − 1 x ( n ) e − j k N 2 π n , k ∈ [ 0 , N − 1 ] k\in[0,N-1] k ∈ [ 0 , N − 1 ] ,表示的是x ( n ) x(n) x ( n ) 與{ e − j k 2 π N n } \{e^{-jk\frac{2\pi}{N}n}\} { e − j k N 2 π n } 的內積,也可以認爲是將x ( n ) x(n) x ( n ) 映射爲{ e − j k 2 π N n } \{e^{-jk\frac{2\pi}{N}n}\} { e − j k N 2 π n } 基向量空間的X ( k ) X(k) X ( k ) 。
離散傅里葉逆變換公式(IDFT):x ( n ) = F − 1 ( X ( k ) ) = 1 N ∑ k = 0 N − 1 X ( k ) e j k 2 π N n x(n) = F^{-1}(X(k))=\frac{1}{N}\sum_{k=0}^{N-1}{X(
k)e^{jk\frac{2\pi}{N}n}} x ( n ) = F − 1 ( X ( k ) ) = N 1 ∑ k = 0 N − 1 X ( k ) e j k N 2 π n , n ∈ [ 0 , N − 1 ] n\in[0,N-1] n ∈ [ 0 , N − 1 ] 。
由於時域卷積等於頻域相乘,所以卷積公式的頻域表達:
( f ∗ g ) = F − 1 [ F [ f ] ⨀ F [ g ] ] (4) (f*g)=F^{-1}[F[f]\bigodot F[g]]\tag{4} ( f ∗ g ) = F − 1 [ F [ f ] ⨀ F [ g ] ] ( 4 )
⨀ \bigodot ⨀ 表示哈達瑪乘積,指的是兩個矩陣(或向量)的逐點乘積。
在圖網絡中,定義了度矩陣D D D ,D D D 爲對角矩陣,對角線上的值爲各個節點連接的邊的數目,W W W 爲圖的鄰接矩陣,圖中的拉普拉斯矩陣定義爲L = D − W L=D-W L = D − W ,對L L L 進行矩陣的特徵分解,得到:L = V Λ V T L=V\Lambda V^{T} L = V Λ V T ,V = ( v 1 , . . . , v i , . . . v n ) , v i V=(v_{1},...,v_{i},...v_{n}),v_{i} V = ( v 1 , . . . , v i , . . . v n ) , v i 是L L L 的特徵向量,Λ = d i a g ( λ 1 . . . λ i . . . λ n ) \Lambda=diag(\lambda_{1}...\lambda_{i}...\lambda_{n}) Λ = d i a g ( λ 1 . . . λ i . . . λ n ) ,λ i \lambda_{i} λ i 是L L L 的特徵值。所以:
L v i = λ i v i (5) Lv_{i}=\lambda_{i}v_{i}\tag{5} L v i = λ i v i ( 5 )
而所有的基向量{ e − j k 2 π N n } \{e^{-jk\frac{2\pi}{N}n}\} { e − j k N 2 π n } 都滿足亥姆霍茲方程(Helmholtz Equation):
∇ 2 f = ∂ 2 e − j k 2 π N n ∂ n 2 = − ( k 2 π N ) 2 e − j k 2 π N n = − w 2 f (6) \nabla^{2}f=\frac{\partial^{2} e^{-jk\frac{2\pi}{N}n}}{\partial n^{2}}=-(k\frac{2\pi}{N})^{2}e^{-jk\frac{2\pi}{N}n}=-w^{2}f\tag{6} ∇ 2 f = ∂ n 2 ∂ 2 e − j k N 2 π n = − ( k N 2 π ) 2 e − j k N 2 π n = − w 2 f ( 6 )
∇ 2 \nabla^{2} ∇ 2 是拉普拉斯算子,e − j k 2 π N n e^{-jk\frac{2\pi}{N}n} e − j k N 2 π n 是拉普拉斯算子∇ 2 \nabla^{2} ∇ 2 的特徵函數,− w 2 -w^{2} − w 2 是特徵函數的特徵值。
將式(5)和式(6)對比,可知:e − j k 2 π N n e^{-jk\frac{2\pi}{N}n} e − j k N 2 π n ~v i v_{i} v i ,− w 2 -w^{2} − w 2 ~ λ i \lambda_{i} λ i 。
用f f f 表示時域信號,f ^ \hat{f} f ^ 表示相應的頻域信號,將這兩個類比帶入離散傅里葉變換的公式,得到:
f ^ ( k ) = ∑ n = 0 N − 1 f ( n ) e − j k 2 π N n = ∑ n = 0 N − 1 f ( n ) v k ( n ) = v k T f (7) \hat{f}(k) =\sum_{n=0}^{N-1}{f(n)e^{-jk\frac{2\pi}{N}n}}=\sum_{n=0}^{N-1}{f(n)v_{k}(n)}= v_{k}^{T}f\tag{7} f ^ ( k ) = n = 0 ∑ N − 1 f ( n ) e − j k N 2 π n = n = 0 ∑ N − 1 f ( n ) v k ( n ) = v k T f ( 7 )
由式(7)可知:
f ^ = V T f (8) \hat{f}=V^{T}f\tag{8} f ^ = V T f ( 8 )
將式(8)帶入卷積公式得:
( g ∗ f ) = V [ V T g ⨀ V T f ] (9) (g*f)=V[V^{T}g\bigodot V^{T}f ]\tag{9} ( g ∗ f ) = V [ V T g ⨀ V T f ] ( 9 )
由於V T g = ( v 1 T g , . . . , v n T g ) T V^{T}g=(v_{1}^{T}g,...,v_{n}^{T}g)^{T} V T g = ( v 1 T g , . . . , v n T g ) T ,所以V T g ⨀ V T f = d i a g ( v 1 T g , . . . , v n T g ) V T f V^{T}g\bigodot V^{T}f=diag(v_{1}^{T}g,...,v_{n}^{T}g)V^{T}f V T g ⨀ V T f = d i a g ( v 1 T g , . . . , v n T g ) V T f ,令g θ = d i a g ( v 1 T g , . . . , v n T g ) g_{\theta}=diag(v_{1}^{T}g,...,v_{n}^{T}g) g θ = d i a g ( v 1 T g , . . . , v n T g ) ,所以( g ∗ f ) ( n ) = V g θ V T f (10) (g*f)(n)=Vg_{\theta}V^{T}f\tag{10} ( g ∗ f ) ( n ) = V g θ V T f ( 1 0 )
論文中所給的頻域公式爲:
x k + 1 , j = h ( V ∑ i = 1 f k − 1 F k , i , j V T x k , i ) (11) x_{k+1,j}=h(V\sum_{i=1}^{f_{k-1}}{F_{k,i,j}V^{T}x_{k,i}})\tag{11} x k + 1 , j = h ( V i = 1 ∑ f k − 1 F k , i , j V T x k , i ) ( 1 1 )
在式(11)中F k , i , j F_{k,i,j} F k , i , j 就是g θ g_{\theta} g θ ,x k , i 就 是 f x_{k,i}就是f x k , i 就 是 f ,f f f 相當於輸入信號x x x 的一個通道的信號。所以在每個通道求完卷積後,將結果累加,得到輸出結果的一個通道的值。x k , i x_{k,i} x k , i 表示第k層所有節點的第i個特徵拼接形成的向量。F k , i , j F_{k,i,j} F k , i , j 表示第k層第j個濾波器的i個值的頻域表示(類比於傳統卷積的第j j j 個卷積核的第i i i 個通道),h ( ∗ ) h(*) h ( ∗ ) 依然是非線性激活函數。
論文其他內容:
(1)經常情況下,V只有前d個特徵向量起作用,因此取前d個特徵向量,以減少參數。
(2)通過樣條差值的方法,近似的求出這個操作的解,而使權值參數減少到O(1)。
(3)實驗部分。