1.《Spectral Networks and Deep Locally Connected Networks on Graphs》論文理解

1.引言

在歐式空間中使用的CNN卷積具有平移不變性,權值共享,局部連接,分層次表達的特點;但是圖網絡是一種非歐式結構的數據,網絡是不規整的關係型數據,所以其不存在平移不變形(每個節點的周圍鄰居數不固定),導致圖網絡無法使用傳統的CNN。不使用卷積核卷積的話,只能按照全連接網絡的方式進行線性映射,這樣又將失去權值共享,局部連接,分層次表達這些優勢,需要大量的參數。在《Spectral Networks and Deep Locally Connected Networks on Graphs》 中,作者想辦法把傳統歐式空間的卷積遷移到圖網絡中去,作者提出了兩個結構,把歐式空間的卷積遷移到了圖網絡的空間域和頻域。

2.空間結構

無向圖:G=(Ω,W)G=(\Omega,W),其中Ω\Omega表示圖中所有節點的集合,size = m;WW表示圖的鄰接矩陣,shape = (m,m),由於是無向圖,WW是一個對稱矩陣。WW中的值Wi,jW_{i,j}表示節點i,j之間的邊的權重,爲非負值,當這兩個節點之間沒有邊的時候,認爲權重值爲0。

2.1 節點的鄰域

在傳統的歐式空間中(以圖像爲例),在卷積時需要設置一定大小的卷積核,如 kernel = (3,3),就是相當於中心像素點的鄰域爲周圍的8個像素點。
在圖中,利用WW來確定每個節點的鄰域。論文中給出公式:
Nδ(j)={iΩ:Wi,j>δ}(1)N_\delta(j)=\{i\in\Omega:W_{i,j}>\delta\}\tag{1}

Nδ(j)N_\delta(j)表示jj的鄰域,是一個集合;以δ\delta爲閾值劃分節點jj的鄰域,權值大於δ\delta才屬於jj的鄰域。

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)兩個公式:
Nk={Nk,i;i=1...dk1}(2)N_{k}=\{N_{k,i};i=1...d_{k-1}\}\tag{2}

在公式(2)中,k表示第k個尺度,類比傳統卷積,意思就是第k層卷積層,Ωk\Omega_{k}表示第k層輸入的節點數目,dk1d_{k-1}第k-1層中聚類的類數,即Ωk=dk1\Omega_{k} = d_{k-1}Ωk+1=dk\Omega_{k+1}=d_{k}表示輸出的節點數目,Nk,iN_{k,i}表示第i個節點的類,在這個公式中,作者是以每個輸入節點爲類中心,以節點鄰域爲類元素,得到了Ωk=dk1\Omega_{k} = d_{k-1}個類。在這裏插入圖片描述
具體如何得到NkN_{k}如上圖所示:(這些公式就沒怎麼看懂了)

xk+1,j=Lkh(i=1fk1Fk,i,jxk,j)j=1...fk(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}

在公式(3)中,fk1f_{k-1}表示k-1層的濾波器個數,也是k層中每個節點的特徵維數。xk=(xk,i;i=1...fk1)x_{k}=(x_{k,i};i=1...f_{k-1}),xkx_{k}.shape = (dk1,fk1d_{k-1},f_{k-1}),表示輸入數據;xk,ix_{k,i}.shape = (dk1d_{k-1},1),表示dk1d_{k-1}個節點的第i個特徵拼接形成的向量。Fk,i,jF_{k,i,j}.shape = (dk1,dk1d_{k-1},d_{k-1}),表示第k層第j個濾波器的i個值,Fk,i,jF_{k,i,j}的值與NkN_{k}有關,表示第k層第j個濾波器的i個特徵的映射關係,x節點和y節點不是鄰域關係則對應的Fk,i,j(x,y)F_{k,i,j}(x,y)的值將爲0,和WW類似。
i=1fk1Fk,i,jxk,j\sum_{i=1}^{f_{k-1}}{F_{k,i,j}x_{k,j}}部分完成了卷積的工作(類比傳統的卷積的話,可以認爲卷積的模式選擇了same,stride = 1),卷積後輸出和輸入節點數一樣,輸出(dk1,1)(d_{k-1},1)的向量,h()h(*)爲非線性激勵函數,Lk()L_{k}(*)爲池化操作,將(dk1,1)(d_{k-1},1)的向量池化爲(dk,1)(d_{k},1)的向量,即xk+1,j.shape=(dk,1)x_{k+1,j}.shape = (d_{k},1),然後,如果第k層有fkf_{k}個濾波器的話,那麼第k層的輸出爲xk+1=(xk+1,i;i=1...fk)x_{k+1}=(x_{k+1,i};i=1...f_{k})

圖上的空間域卷積如下圖所示:
在這裏插入圖片描述
k =1時:
num(Ω0)=12,x1.shape=(12,f0),f1=4,F1,i,j.shape=(12,12),1if0,1jf1,d1=6num(\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
k =2時:
num(Ω1)=d1=6,x2.shape=(6,f1),f2=6,F2,i,j.shape=(6,6),1if1=4,1jf2,d2=3num(\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
網絡輸出:
x3.shape=(d2,f2)=(3,6)x_{3}.shape=(d_{2},f_{2})=(3,6)

3.頻域結構

離散域的卷積公式:(fg)=τ=f(τ)g(nτ)(f*g)=\sum_{\tau=-\infty}^{\infty}{f(\tau)g(n-\tau)}
離散傅里葉變換公式(DFT):X(k)=F(x(n))=n=0N1x(n)ejk2πNnX(k)=F(x(n))=\sum_{n=0}^{N-1}{x(n)e^{-jk\frac{2\pi}{N}n}} , k[0,N1]k\in[0,N-1],表示的是x(n)x(n){ejk2πNn}\{e^{-jk\frac{2\pi}{N}n}\}的內積,也可以認爲是將x(n)x(n)映射爲{ejk2πNn}\{e^{-jk\frac{2\pi}{N}n}\}基向量空間的X(k)X(k)
離散傅里葉逆變換公式(IDFT):x(n)=F1(X(k))=1Nk=0N1X(k)ejk2πNnx(n) = F^{-1}(X(k))=\frac{1}{N}\sum_{k=0}^{N-1}{X( k)e^{jk\frac{2\pi}{N}n}} , n[0,N1]n\in[0,N-1]
由於時域卷積等於頻域相乘,所以卷積公式的頻域表達:
(fg)=F1[F[f]F[g]](4)(f*g)=F^{-1}[F[f]\bigodot F[g]]\tag{4}

\bigodot表示哈達瑪乘積,指的是兩個矩陣(或向量)的逐點乘積。
在圖網絡中,定義了度矩陣DDDD爲對角矩陣,對角線上的值爲各個節點連接的邊的數目,WW爲圖的鄰接矩陣,圖中的拉普拉斯矩陣定義爲L=DWL=D-W,對LL進行矩陣的特徵分解,得到:L=VΛVTL=V\Lambda V^{T},V=(v1,...,vi,...vn),viV=(v_{1},...,v_{i},...v_{n}),v_{i}LL的特徵向量,Λ=diag(λ1...λi...λn)\Lambda=diag(\lambda_{1}...\lambda_{i}...\lambda_{n}),λi\lambda_{i}LL的特徵值。所以:
Lvi=λivi(5)Lv_{i}=\lambda_{i}v_{i}\tag{5}

而所有的基向量{ejk2πNn}\{e^{-jk\frac{2\pi}{N}n}\}都滿足亥姆霍茲方程(Helmholtz Equation):
2f=2ejk2πNnn2=(k2πN)2ejk2πNn=w2f(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\nabla^{2}是拉普拉斯算子,ejk2πNne^{-jk\frac{2\pi}{N}n}是拉普拉斯算子2\nabla^{2}的特徵函數,w2-w^{2}是特徵函數的特徵值。
將式(5)和式(6)對比,可知:ejk2πNne^{-jk\frac{2\pi}{N}n}~viv_{i},w2-w^{2} ~ λi\lambda_{i}
ff表示時域信號,f^\hat{f}表示相應的頻域信號,將這兩個類比帶入離散傅里葉變換的公式,得到:
f^(k)=n=0N1f(n)ejk2πNn=n=0N1f(n)vk(n)=vkTf(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}

由式(7)可知:
f^=VTf(8)\hat{f}=V^{T}f\tag{8}

將式(8)帶入卷積公式得:
(gf)=V[VTgVTf](9)(g*f)=V[V^{T}g\bigodot V^{T}f ]\tag{9}

由於VTg=(v1Tg,...,vnTg)TV^{T}g=(v_{1}^{T}g,...,v_{n}^{T}g)^{T},所以VTgVTf=diag(v1Tg,...,vnTg)VTfV^{T}g\bigodot V^{T}f=diag(v_{1}^{T}g,...,v_{n}^{T}g)V^{T}f,令gθ=diag(v1Tg,...,vnTg)g_{\theta}=diag(v_{1}^{T}g,...,v_{n}^{T}g),所以(gf)(n)=VgθVTf(10)(g*f)(n)=Vg_{\theta}V^{T}f\tag{10}

論文中所給的頻域公式爲:
xk+1,j=h(Vi=1fk1Fk,i,jVTxk,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}

在式(11)中Fk,i,jF_{k,i,j}就是gθg_{\theta}xk,ifx_{k,i}就是fff相當於輸入信號xx的一個通道的信號。所以在每個通道求完卷積後,將結果累加,得到輸出結果的一個通道的值。xk,ix_{k,i}表示第k層所有節點的第i個特徵拼接形成的向量。Fk,i,jF_{k,i,j}表示第k層第j個濾波器的i個值的頻域表示(類比於傳統卷積的第jj個卷積核的第ii個通道),h()h(*)依然是非線性激活函數。

論文其他內容:
(1)經常情況下,V只有前d個特徵向量起作用,因此取前d個特徵向量,以減少參數。
(2)通過樣條差值的方法,近似的求出這個操作的解,而使權值參數減少到O(1)。
(3)實驗部分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章