本文主要参考了:
- 从CNN到GCN的联系与区别——GCN从入门到精(fang)通(qi)
- Chebyshev多项式作为GCN卷积核
- 拉普拉斯矩阵与拉普拉斯算子的关系
其他见参考文献部分。
给定一个具有 n n n个顶点的简单无向图 G ( V , E ) G(V,E) G(V,E),
L L L中的元素定义为
L i , j = { d e g ( v i ) if i = j − 1 if i ≠ j and is v i adjacent to v j 0 otherwise L_{i,j} = \begin{cases} deg(v_i) & \text{if } i = j \\ -1 & \text{if } i \neq j \text{and is } v_i \text{ adjacent to } v_j\\ 0 & \text{otherwise} \end{cases} Li,j=⎩⎪⎨⎪⎧deg(vi)−10if i=jif i=jand is vi adjacent to vjotherwise
其中 d e g ( v i ) deg(v_i) deg(vi)是顶点 v i v_i vi的度。
可以验证,对于任意的图 G = ( V , E ) G=(V,E) G=(V,E)的顶点 V V V上的函数 f ∈ R n f \in \mathbb{R}^n f∈Rn都有[14]:
( L f ) ( v i ) = ∑ v i ∼ v j a i , j ( f ( v i ) − f ( v j ) ) . \left( \mathcal{L} f \right)(v_i) = \sum_{v_i \sim v_j} a_{i,j} \left( f(v_i) - f(v_j) \right). (Lf)(vi)=vi∼vj∑ai,j(f(vi)−f(vj)).
其中 v i ∼ v j v_i \sim v_j vi∼vj表示所有与顶点 v i v_i vi相连接的顶点集合, a i , j a_{i,j} ai,j是两顶点 v i , v j v_i,v_j vi,vj之间的连接权重。
对称归一化拉普拉斯矩阵定义为:
L s y s = D − 1 2 L D − 1 2 = I N − D − 1 2 A D − 1 2 L^{sys} = D^{-\frac{1}{2}} L D^{-\frac{1}{2}} = I_{N} - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} Lsys=D−21LD−21=IN−D−21AD−21
L s y s L^{sys} Lsys中的元素定义为
L i , j s y s = { 1 if i = j and d e g ( v i ) ≠ 0 − 1 d e g ( v i ) d e g ( v j ) if i ≠ j nd is v i adjacent to v j 0 otherwise L_{i,j}^{sys} = \begin{cases} 1 & \text{if } i = j \text{ and } deg(v_i) \neq 0\\ -\frac{1}{\sqrt{deg(v_i) deg(v_j)}}& \text{if } i \neq j \text{ nd is } v_i \text{ adjacent to } v_j\\ 0 & \text{otherwise} \end{cases} Li,jsys=⎩⎪⎪⎨⎪⎪⎧1−deg(vi)deg(vj)10if i=j and deg(vi)=0if i=j nd is vi adjacent to vjotherwise
随机游走归一化拉普拉斯矩阵定义为:
L r w = D − 1 L = I N − D − 1 A L^{rw} = D^{-1} L = I_{N} - D^{-1} A Lrw=D−1L=IN−D−1A
L r w L^{rw} Lrw中的元素定义为
L i , j r w = { 1 if i = j and d e g ( v i ) ≠ 0 − 1 d e g ( v i ) if i ≠ j nd is v i adjacent to v j 0 otherwise L_{i,j}^{rw} = \begin{cases} 1 & \text{if } i = j \text{ and } deg(v_i) \neq 0\\ -\frac{1}{deg(v_i)}& \text{if } i \neq j \text{ nd is } v_i \text{ adjacent to } v_j\\ 0 & \text{otherwise} \end{cases} Li,jrw=⎩⎪⎨⎪⎧1−deg(vi)10if i=j and deg(vi)=0if i=j nd is vi adjacent to vjotherwise
对于(无向)图 G ( V , E ) G(V,E) G(V,E)及其具有特征值的拉普拉斯矩阵 L L L,将其特征值排列为 λ 0 , λ 1 , ⋯ , λ n − 1 \lambda_0, \lambda_1, \cdots, \lambda_{n-1} λ0,λ1,⋯,λn−1:
L矩阵的定义[8]:若 A A A一个 n × n n\times n n×n的方阵,若 a i i > 0 a_{ii}>0 aii>0, 而 a i j ≤ 0 ( i ≠ j ) a_{ij} \leq 0 (i \neq j) aij≤0(i=j),则称 A A A为L矩阵。
M矩阵的定义[8]:若 A A A为L矩阵,其为M矩阵的条件为下列之一:
- A A A的所有特征值的实部皆为正。
- A A A的所有主子式皆为正。
- A A A的所有顺序主子式皆为正。
- A A A的逆存在且为非负矩阵。
- 有正向量 x ⃗ \vec{x} x,使 A x ⃗ A\vec{x} Ax为正向量。
- 有对角线主元素全为正的对角形矩阵(叫做正对角形矩阵) D D D,使 A D e ⃗ AD\vec{e} ADe为正向量,其中 e ⃗ = ( 1 , ⋯ , 1 ) T \vec{e}=(1,\cdots,1)^T e=(1,⋯,1)T。
- 对实向量 x ⃗ \vec{x} x,若 A x ⃗ A\vec{x} Ax非负,则 x ⃗ \vec{x} x非负。
- 若 D = d i a g ( A ) , C = D − A , B = D − 1 ∗ C D=diag(A), C=D-A,B=D^{-1}*C D=diag(A),C=D−A,B=D−1∗C,则 ρ ( B ) < 1 ρ(B)<1 ρ(B)<1,其中 ρ ( B ) ρ(B) ρ(B)为 B B B的特征值的模的最大值。
- B = λ I − A B=\lambda I-A B=λI−A为非负矩阵,其中 I I I为单位矩阵, λ > ρ ( B ) \lambda>ρ(B) λ>ρ(B)。
- 若 B B B为 L L L矩阵,且 b i j ≥ a i j , i , j = 1 , 2 , ⋯ , n b_{ij} \geq a_{ij}, i,j=1,2,\cdots,n bij≥aij,i,j=1,2,⋯,n,则 B B B的逆存在。
- 存在下三角矩阵 T T T和上三角矩阵 U U U,其中 T T T和 U U U均为L矩阵,使 A = T U A=TU A=TU.
对 L L L特征值分解为
L = U ( λ 0 ⋱ λ n − 1 ) U − 1 = U Λ U − 1 . L = U \begin{pmatrix} \lambda_0 & & \\ & \ddots & \\ & & \lambda_{n-1} \\ \end{pmatrix} U^{-1} = U \Lambda U^{-1}. L=U⎝⎛λ0⋱λn−1⎠⎞U−1=UΛU−1.
其中 U = ( u ⃗ 0 , u ⃗ 1 , ⋯ , u ⃗ n − 1 ) U = (\vec{u}_0,\vec{u}_1,\cdots, \vec{u}_{n-1}) U=(u0,u1,⋯,un−1)是由 L L L的特征向量(列向量)组成的矩阵,相应列的特征向量与特征值矩阵 Λ \Lambda Λ相应列的特征值相互对应。
由于 U U U是正交矩阵,即 U U T = I n U U^T = I_n UUT=In,即上面的式子又可以写成:
L = U Λ U T . L = U \Lambda U^T. L=UΛUT.
梯度 : 设 f : R 3 → R f:\mathbb{R}^3 \rightarrow \mathbb{R} f:R3→R在空间区域 G G G上具有一阶连续偏导数,点 P ( x 1 , x 2 , x 3 ) ∈ G P(x_1, x_2, x_3) \in G P(x1,x2,x3)∈G,称向量
( ∂ f ∂ x 1 , ∂ f ∂ x 2 , ∂ f ∂ x 3 ) = ∂ f ∂ x 1 i 1 ⃗ + ∂ f ∂ x 2 i 2 ⃗ + ∂ f ∂ x 3 i 3 ⃗ \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \frac{\partial f}{\partial x_3} \right) = \frac{\partial f}{\partial x_1} \vec{i_1} + \frac{\partial f}{\partial x_2} \vec{i_2} + \frac{\partial f}{\partial x_3} \vec{i_3} (∂x1∂f,∂x2∂f,∂x3∂f)=∂x1∂fi1+∂x2∂fi2+∂x3∂fi3
为函数 f f f在点 P P P处的梯度,记作 ∇ f ( x 1 , x 2 , x 3 ) \nabla f (x_1, x_2, x_3) ∇f(x1,x2,x3)或 g r a d ( f ) grad(f) grad(f)。
其中
∇ = ∂ ∂ x 1 i 1 ⃗ + ∂ ∂ x 2 i 2 ⃗ + ∂ ∂ x 3 i 3 ⃗ \nabla = \frac{\partial}{\partial x_1} \vec{i_1} + \frac{\partial}{\partial x_2} \vec{i_2} + \frac{\partial}{\partial x_3} \vec{i_3} ∇=∂x1∂i1+∂x2∂i2+∂x3∂i3
称作(三维)向量的微分算子。多维的则为 ∇ = ∑ j = 1 n ∂ ∂ x j i j ⃗ \nabla = \sum_{j=1}^{n} \frac{\partial}{\partial x_j} \vec{i_j} ∇=∑j=1n∂xj∂ij。
散度 散度 " ∇ . \nabla . ∇. " (divergence)可用于表针空间中各点矢量场发散的强弱程度,物理上,散度的意义是场的有源性。当 d i v ( F ) > 0 div(F) > 0 div(F)>0,表示该点有散发通量的正源(发散源);当 d i v ( F ) < 0 div(F) < 0 div(F)<0 表示该点有吸收能量的负源(洞或汇);当 d i v ( F ) = 0 div(F) = 0 div(F)=0,表示该点无源。
拉普拉斯算子: 拉普拉斯算子(Laplace Operator)是 n n n维欧几里得空间中的一个二阶微分算子,定义为梯度( ∇ f \nabla f ∇f )的散度( ∇ . \nabla . ∇. )。 Δ f = ∇ 2 f = ∇ . ∇ f = d i v ( g r a d ( f ) ) \Delta f = \nabla^2 f = \nabla . \nabla f = div(grad(f)) Δf=∇2f=∇.∇f=div(grad(f))。
笛卡尔坐标系下的表示法:
Δ f = ∂ 2 f ∂ x 1 2 + ∂ 2 f ∂ x 2 2 + ∂ 2 f ∂ x 3 2 \Delta f = \frac{\partial^2 f}{\partial x_1^2} + \frac{\partial^2 f}{\partial x_2^2} + \frac{\partial^2 f}{\partial x_3^2} Δf=∂x12∂2f+∂x22∂2f+∂x32∂2f
n n n维时为 Δ = ∑ i ∂ 2 f ∂ x i 2 \Delta = \sum_{i} \frac{\partial^2 f}{\partial x_i^2} Δ=∑i∂xi2∂2f。
在离散的情况下, ∂ f ∂ x = f ′ ( x ) = f ( x + 1 ) − f ( x ) \frac{\partial f}{ \partial x} = f^{'}(x) = f(x+1) - f(x) ∂x∂f=f′(x)=f(x+1)−f(x),
则
∂ 2 f ∂ x 2 = f ′ ′ ( x ) ≈ f ′ ( x ) − f ′ ( x − 1 ) = f ( x + 1 ) + f ( x − 1 ) − 2 f ( x ) . \begin{aligned} \frac{\partial^2 f}{\partial x^2} &= f^{''}(x) \approx f^{'}(x) - f^{'}(x-1) \\ &= f(x+1) + f(x-1) - 2f(x). \end{aligned} ∂x2∂2f=f′′(x)≈f′(x)−f′(x−1)=f(x+1)+f(x−1)−2f(x).
以二维情况为例子,见下图:
Δ f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 = ( f ( x + 1 , y ) + f ( x − 1 , y ) − 2 f ( x , y ) ) + ( f ( x , y + 1 ) + f ( x , y − 1 ) − 2 f ( x , y ) ) = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) \begin{aligned} \Delta f &= \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} \\ &= \left( f(x+1, y) + f(x-1, y) - 2f(x, y) \right) + \left( f(x, y+1) + f(x, y-1) - 2f(x, y) \right) \\ &= f(x+1, y) + f(x-1, y) + f(x, y+1) + f(x, y-1) - 4f(x, y) \end{aligned} Δf=∂x2∂2f+∂y2∂2f=(f(x+1,y)+f(x−1,y)−2f(x,y))+(f(x,y+1)+f(x,y−1)−2f(x,y))=f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1)−4f(x,y)
现在用散度的概念解读一下:
另一个角度,拉普拉斯算子计算了周围点与中心点的梯度差。当 f ( x , y ) f(x,y) f(x,y)受到扰动之后,其可能变为相邻的 f ( x + 1 , y ) , f ( x − 1 , y ) , f ( x , y + 1 ) , f ( x , y − 1 ) f(x+1,y),f(x-1,y),f(x,y+1),f(x,y-1) f(x+1,y),f(x−1,y),f(x,y+1),f(x,y−1)之一,拉普拉斯算子得到的是对该点进行微小扰动后可能获得的总增益 (或者说是总变化)。
现在将这个结论推广到图: 假设具有 N N N个节点的图 G G G,此时以上定义的函数 f f f不再是二维,而是 N N N维向量: f = ( f 1 , f 2 , ⋯ , f N ) f=(f_1,f_2,\cdots,f_N) f=(f1,f2,⋯,fN) ,其中 f i f_i fi为函数 f f f在图中节点 v i v_i vi处的函数值。类比于 f ( x , y ) f(x,y) f(x,y)在节点 ( x , y ) (x,y) (x,y)处的值。对 v i v_i vi节点进行扰动,它可能变为任意一个与它相邻的节点 v j ∈ N i v_j \in N_i vj∈Ni, N i N_i Ni表示节点 v i v_i vi的一阶邻域节点。
如下图:
上面已经知道拉普拉斯算子可以计算一个点到它所有自由度上微小扰动的增益,则通过图来表示就是任意一个节点 v j v_j vj变化到节点 v i v_i vi所带来的增益,考虑图中边的权值相等(简单说就是1)则有:
Δ f i = ∑ v j ∈ N i ( f i − f j ) . \Delta f_i = \sum_{v_j \in N_i} (f_i - f_j). Δfi=vj∈Ni∑(fi−fj).
而如果 e i , j e_{i,j} ei,j具有权重 a i j a_{ij} aij时,则为:
Δ f i = ∑ v j ∈ N i a i j ( f i − f j ) . \Delta f_i = \sum_{v_j \in N_i} a_{ij}(f_i - f_j). Δfi=vj∈Ni∑aij(fi−fj).
上式即为 ( L f ) ( v i ) = ∑ v i ∼ v j a i , j ( f ( v i ) − f ( v j ) ) \left( \mathcal{L} f \right)(v_i) = \sum_{v_i \sim v_j} a_{i,j} \left( f(v_i) - f(v_j) \right) (Lf)(vi)=∑vi∼vjai,j(f(vi)−f(vj))。
可以看到上面的式子仅限于 v j ∈ N i v_j \in N_i vj∈Ni(或 v i ∼ v j v_i \sim v_j vi∼vj),如果令 a i j = 0 a_{ij}=0 aij=0表示节点 v i , v j v_i,v_j vi,vj不相连。则可以拓展:
Δ f i = ∑ v j ∈ V a i j ( f i − f j ) = ∑ v j ∈ V a i j f i − ∑ v j ∈ V a i j f j = ( ∑ v j ∈ V a i j ) f i − a i ⃗ f ⃗ . \begin{aligned} \Delta f_i &= \sum_{v_j \in V} a_{ij}(f_i - f_j) \\ &= \sum_{v_j \in V} a_{ij} f_i - \sum_{v_j \in V} a_{ij} f_j \\ &= \left( \sum_{v_j \in V} a_{ij} \right) f_i - \vec{a_i} \vec{f}. \end{aligned} Δfi=vj∈V∑aij(fi−fj)=vj∈V∑aijfi−vj∈V∑aijfj=⎝⎛vj∈V∑aij⎠⎞fi−aif.
记 d i = ∑ v j ∈ V a i j d_i = \sum_{v_j \in V} a_{ij} di=∑vj∈Vaij是顶点 v i v_i vi的度。
对所有的 N N N个节点有:
Δ f = ( Δ f 1 ⋮ Δ f N ) = ( d 1 f 1 − a 1 ⃗ f ⃗ ⋮ d N f N − a N ⃗ f ⃗ ) = ( d 1 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ d N ) f − ( a 1 ⃗ ⋮ a N ⃗ ) f = d i a g ( d i ) f − A f = ( D − A ) f = L f \begin{aligned} \Delta f &= \begin{pmatrix} \Delta f_1 \\ \vdots \\ \Delta f_N \end{pmatrix} =\begin{pmatrix} d_1 f_1 - \vec{a_1} \vec{f} \\ \vdots \\ d_N f_N - \vec{a_N} \vec{f} \end{pmatrix} \\ & = \begin{pmatrix} d_1 & \cdots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \cdots & d_N \end{pmatrix} f - \begin{pmatrix} \vec{a_1}\\ \vdots \\ \vec{a_N} \end{pmatrix} f \\ &= diag(d_i) f - Af \\ &= (D - A)f \\ &= Lf \end{aligned} Δf=⎝⎜⎛Δf1⋮ΔfN⎠⎟⎞=⎝⎜⎛d1f1−a1f⋮dNfN−aNf⎠⎟⎞=⎝⎜⎛d1⋮0⋯⋱⋯0⋮dN⎠⎟⎞f−⎝⎜⎛a1⋮aN⎠⎟⎞f=diag(di)f−Af=(D−A)f=Lf
再次考虑二维情况,离散化的拉普拉斯算子得到的
Δ f = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) \Delta f = f(x+1, y) + f(x-1, y) + f(x, y+1) + f(x, y-1) - 4f(x, y) Δf=f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1)−4f(x,y)
与图上拉普拉斯矩阵得到的[14]
( L f ) ( x , y ) = 4 f ( x , y ) − ( f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) ) \left( \mathcal{L} f \right)(x,y) = 4f(x, y) - \left( f(x+1, y) + f(x-1, y) + f(x, y+1) + f(x, y-1) \right) (Lf)(x,y)=4f(x,y)−(f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1))
两者只相差一个符号。
用 e j π x L i e^{\frac{j \pi x}{L}i} eLjπxi作基, c j c_j cj作因子,表示函数 f ( x ) f(x) f(x):
f ( x ) = ∑ j = − ∞ ∞ c j e j π x L i . f(x) = \sum_{j=-\infty}^{\infty} c_j e^{\frac{j \pi x}{L}i}. f(x)=j=−∞∑∞cjeLjπxi.
其中的因子 c j c_j cj为:
c j = 1 2 L ∫ − L L f ( t ) e − j π t L i d t , − ∞ < j < ∞ . c_j = \frac{1}{2L} \int_{-L}^{L} f(t) e^{-\frac{j \pi t}{L}i} dt, \qquad -\infty < j <\infty. cj=2L1∫−LLf(t)e−Ljπtidt,−∞<j<∞.
将因子代入有:
f ( x ) = ∑ j = − ∞ ∞ [ 1 2 L ∫ − L L f ( t ) e − j π t L i d t ] e j π x L i . f(x) = \sum_{j=-\infty}^{\infty} \left[ \frac{1}{2L} \int_{-L}^{L} f(t) e^{-\frac{j \pi t}{L}i} dt \right] e^{\frac{j \pi x}{L}i}. f(x)=j=−∞∑∞[2L1∫−LLf(t)e−Ljπtidt]eLjπxi.
令 ξ j = π j L , Δ ξ = π L \xi_j = \frac{\pi j}{L}, \Delta \xi = \frac{\pi}{L} ξj=Lπj,Δξ=Lπ,上面二式改写成:
F L ( ξ ) = 1 2 π ∫ − L L f ( t ) e − i ξ t d t f ( x ) = ∑ j = − ∞ ∞ F L ( ξ j ) e i ξ t Δ ξ . \begin{aligned} F_{L}(\xi) &= \frac{1}{2\pi} \int_{-L}^{L} f(t) e^{-i \xi t} dt \\ f(x) &= \sum_{j=-\infty}^{\infty} F_{L}(\xi_j) e^{i \xi t} \Delta \xi. \end{aligned} FL(ξ)f(x)=2π1∫−LLf(t)e−iξtdt=j=−∞∑∞FL(ξj)eiξtΔξ.
令 L → ∞ L \rightarrow \infty L→∞,将黎曼和转为积分则:
f ( x ) = ∫ j = − ∞ ∞ [ 1 2 π ∫ − ∞ ∞ f ( t ) e − i ξ t d t ] e i ξ t d ξ . = 1 2 π ∫ j = − ∞ ∞ [ 1 2 π ∫ − ∞ ∞ f ( t ) e − i ξ t d t ] e i ξ t d ξ . \begin{aligned} f(x) &= \int_{j=-\infty}^{\infty} \left[ \frac{1}{2\pi} \int_{-\infty}^{\infty} f(t) e^{-i \xi t} dt \right] e^{i \xi t} d \xi. \\ &= \frac{1}{\sqrt{2 \pi}} \int_{j=-\infty}^{\infty} \left[ \frac{1}{\sqrt{2 \pi}} \int_{-\infty}^{\infty} f(t) e^{-i \xi t} dt \right] e^{i \xi t} d \xi. \end{aligned} f(x)=∫j=−∞∞[2π1∫−∞∞f(t)e−iξtdt]eiξtdξ.=2π1∫j=−∞∞[2π1∫−∞∞f(t)e−iξtdt]eiξtdξ.
得到傅里叶变换及其逆变换:
f ^ ( ξ ) = 1 2 π ∫ − ∞ ∞ f ( t ) e − i ξ t d t f ( x ) = 1 2 π ∫ j = − ∞ ∞ f ^ ( ξ ) e i ξ t d ξ . \begin{aligned} \hat{f}(\xi) &= \frac{1}{\sqrt{2 \pi}} \int_{-\infty}^{\infty} f(t) e^{-i \xi t} dt\\ f(x) &= \frac{1}{\sqrt{2 \pi}} \int_{j=-\infty}^{\infty} \hat{f}(\xi) e^{i \xi t} d \xi. \end{aligned} f^(ξ)f(x)=2π1∫−∞∞f(t)e−iξtdt=2π1∫j=−∞∞f^(ξ)eiξtdξ.
在连续的情况中,因子 c j c_j cj为:
c j = 1 2 π ∫ 0 2 π f ( t ) e − i j x d t , − ∞ < j < ∞ . c_j = \frac{1}{2 \pi} \int_{0}^{2 \pi} f(t) e^{-ijx} dt, \qquad -\infty < j <\infty. cj=2π1∫02πf(t)e−ijxdt,−∞<j<∞.
将其离散化:
c j ≈ 1 n ∑ k = 0 n − 1 f ( x k ) e i j x k . c_j \approx \frac{1}{n} \sum_{k=0}^{n-1} f(x_k) e^{ijx_k}. cj≈n1k=0∑n−1f(xk)eijxk.
类比,得到离散的傅里叶变换:
y ^ k = ∑ j = 0 n − 1 w n − k j y j , 0 ≤ k ≤ n − 1 , \hat{y}_k = \sum_{j=0}^{n-1} w_{n}^{-kj} y_j,\qquad 0 \leq k \leq n-1, y^k=j=0∑n−1wn−kjyj,0≤k≤n−1,
其中 w n = e 2 π i n w_n = e^{\frac{2 \pi i}{n}} wn=en2πi。
将其写成矩阵形式:
( y ^ 0 y ^ 1 y ^ 2 ⋮ y ^ n − 1 ) = ( 1 1 1 ⋯ 1 1 w n − 1 w n − 2 ⋯ w n − ( n − 1 ) 1 w n − 2 w n − 4 ⋯ w n − 2 ( n − 1 ) ⋮ ⋮ ⋮ ⋱ ⋮ 1 w n − ( n − 1 ) ) w n − ( n − 1 ) ⋯ w n − ( n − 1 ) 2 ) ( y 0 y 1 y 2 ⋮ y n − 1 ) . \begin{pmatrix} \hat{y}_0 \\ \hat{y}_1 \\ \hat{y}_2 \\ \vdots \\ \hat{y}_{n-1} \\ \end{pmatrix} =\begin{pmatrix} 1 & 1 & 1 & \cdots & 1 \\ 1 & w_{n}^{-1} & w_{n}^{-2} & \cdots & w_{n}^{-(n-1)} \\ 1 & w_{n}^{-2} & w_{n}^{-4} & \cdots & w_{n}^{-2(n-1)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & w_{n}^{-(n-1))} & w_{n}^{-(n-1)} & \cdots & w_{n}^{-(n-1)^2} \\ \end{pmatrix} \begin{pmatrix} y_0 \\ y_1 \\ y_2 \\ \vdots \\ y_{n-1} \\ \end{pmatrix}. ⎝⎜⎜⎜⎜⎜⎛y^0y^1y^2⋮y^n−1⎠⎟⎟⎟⎟⎟⎞=⎝⎜⎜⎜⎜⎜⎜⎛111⋮11wn−1wn−2⋮wn−(n−1))1wn−2wn−4⋮wn−(n−1)⋯⋯⋯⋱⋯1wn−(n−1)wn−2(n−1)⋮wn−(n−1)2⎠⎟⎟⎟⎟⎟⎟⎞⎝⎜⎜⎜⎜⎜⎛y0y1y2⋮yn−1⎠⎟⎟⎟⎟⎟⎞.
记
F n = ( 1 1 1 ⋯ 1 1 w n 1 w n 2 ⋯ w n ( n − 1 ) 1 w n 2 w n 4 ⋯ w n 2 ( n − 1 ) ⋮ ⋮ ⋮ ⋱ ⋮ 1 w n ( n − 1 ) ) w n ( n − 1 ) ⋯ w n ( n − 1 ) 2 ) . F_n = \begin{pmatrix} 1 & 1 & 1 & \cdots & 1 \\ 1 & w_{n}^{1} & w_{n}^{2} & \cdots & w_{n}^{(n-1)} \\ 1 & w_{n}^{2} & w_{n}^{4} & \cdots & w_{n}^{2(n-1)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & w_{n}^{(n-1))} & w_{n}^{(n-1)} & \cdots & w_{n}^{(n-1)^2} \\ \end{pmatrix}. Fn=⎝⎜⎜⎜⎜⎜⎜⎛111⋮11wn1wn2⋮wn(n−1))1wn2wn4⋮wn(n−1)⋯⋯⋯⋱⋯1wn(n−1)wn2(n−1)⋮wn(n−1)2⎠⎟⎟⎟⎟⎟⎟⎞.
即离散傅里叶变换为:
y ^ ⃗ = F n ˉ y ⃗ . \vec{\hat{y}} = \bar{F_n} \vec{y}. y^=Fnˉy.
根据
( F n ˉ ) − 1 = 1 n F n , (\bar{F_n})^{-1} = \frac{1}{n} F_n, (Fnˉ)−1=n1Fn,
得到逆离散傅里叶变换为:
y ⃗ = 1 n F n y ^ ⃗ . \vec{y} = \frac{1}{n} F_n \vec{\hat{y}}. y=n1Fny^.
在傅里叶变换中,使用的基函数 e − i w t e^{-iwt} e−iwt是因为它是拉普拉斯算子的特征函数(满足特征方程), w w w就和特征值有关。
广义的特征方程定义为:
A V = λ V AV = \lambda V AV=λV
其中 A A A是一种变换, V V V是特征向量或者特征函数(无穷维的向量), λ \lambda λ是特征值。
e − i w t e^{-iwt} e−iwt满足:
Δ e − i w t = ∂ 2 ∂ 2 t e − i w t = − w 2 e − i w t . \Delta e^{-iwt} = \frac{\partial^2}{\partial^2 t} e^{-iwt} = -w^2 e^{-iwt}. Δe−iwt=∂2t∂2e−iwt=−w2e−iwt.
当然 e − i w t e^{-iwt} e−iwt就是变换 Δ \Delta Δ的特征函数, w w w和特征值密切相关。
L L L是拉普拉斯矩阵, V V V是其特征向量,自然满足下式:
L V = λ V . LV = \lambda V. LV=λV.
由此得到图上的傅里叶变换:
F [ f ( λ l ) ] = f ^ ( λ l ) = < f , u ⃗ l > = ∑ v i ∈ V f ( v i ) u l ∗ ( v i ) \mathcal{F}[f(\lambda_l)] = \hat{f}(\lambda_l) = \left< f, \vec{u}_l \right>= \sum_{v_i \in V} f(v_i) u_l^{*}(v_i) F[f(λl)]=f^(λl)=⟨f,ul⟩=vi∈V∑f(vi)ul∗(vi)
矩阵形式为:
图上傅里叶变换: f ^ = U T f 图上逆傅里叶变换: f = U f ^ \begin{aligned} &\text{图上傅里叶变换: } &\hat{f} = U^T f \\ &\text{图上逆傅里叶变换: } &f = U \hat{f} \end{aligned} 图上傅里叶变换: 图上逆傅里叶变换: f^=UTff=Uf^
傅里叶变换一个本质理解就是:把任意一个函数表示成了若干个正交函数(由sin,cos 构成)的线性组合。
图上傅里叶变换也把图上定义的任意向量 f ⃗ \vec{f} f,表示成了拉普拉斯矩阵特征向量的线性组合,即:
f ⃗ = ∑ i = 0 n − 1 f ^ ( λ 0 ) u ⃗ 0 . \vec{f} = \sum_{i=0}^{n-1}\hat{f}(\lambda_0) \vec{u}_0. f=i=0∑n−1f^(λ0)u0.
为什么graph上任意的向量 f ⃗ \vec{f} f都可以表示成这样的线性组合?
原因是, u ⃗ 0 , u ⃗ 1 , ⋯ , u ⃗ n − 1 \vec{u}_0,\vec{u}_1,\cdots, \vec{u}_{n-1} u0,u1,⋯,un−1是图上 n n n维空间中的 n n n个线性无关的正交向量。
在图空间上无法可视化展示“频率”这个概念,那么从特征方程上来抽象理解。
因为 L 1 n × 1 = 0 ⃗ n × 1 L \mathbb{1}_{n \times 1} = \vec{0}_{n \times 1} L1n×1=0n×1可知 L L L的最小特征值 λ 0 = 0 \lambda_0 = 0 λ0=0。
从特征方程的数学理解来看:
L u ⃗ = λ u ⃗ . L \vec{u} = \lambda \vec{u}. Lu=λu.
在由图确定的 n n n维空间中,越小的特征值 λ l \lambda_l λl表明:拉普拉斯矩阵 L L L其所对应的基 u ⃗ l \vec{u}_l ul上的分量、“信息”越少,那么当然就是可以忽略的低频部分了。
其实图像压缩就是这个原理,把像素矩阵特征分解后,把小的特征值(低频部分)全部变成0,PCA降维也是同样的,把协方差矩阵特征分解后,按从大到小取出前K个特征值对应的特征向量作为新的“坐标轴”。
卷积定理[7] :
F [ f 1 ( t ) ⋆ f 2 ( t ) ] = F [ f 1 ( t ) ] ⊙ F [ f 2 ( t ) ] \mathcal{F} \left[ f_1(t) \star f_2(t) \right] = \mathcal{F} \left[ f_1(t)\right] \odot \mathcal{F} \left[ f_2(t)\right] F[f1(t)⋆f2(t)]=F[f1(t)]⊙F[f2(t)]
其中 ⋆ \star ⋆为卷积运算符, ⊙ \odot ⊙表示Hadamard product(哈达马积),对于两个维度相同的向量、矩阵、张量进行对应位置的逐元素乘积运算。
卷积定理将卷积与傅里叶变换联系起来。由此我们得到了图上的卷积:
( f ⋆ h ) G = U [ ( U T h ) ⊙ ( U T f ) ] . \left( f \star h\right)_G = U \left[ \left(U^T h\right) \odot \left(U^T f\right) \right]. (f⋆h)G=U[(UTh)⊙(UTf)].
这里为了后续说明问题的方便,不再使用 ⊙ \odot ⊙。两向量 U T h , U T f U^T h, U^T f UTh,UTf做逐点乘积,等价于把其中一个向量对角化做矩阵乘积:
( U T h ) ⊙ ( U T f ) = ( h ^ ( λ 0 ) h ^ ( λ 1 ) ⋮ h ^ ( λ n − 1 ) ) ⊙ ( f ^ ( λ 0 ) f ^ ( λ 1 ) ⋮ f ^ ( λ n − 1 ) ) = ( h ^ ( λ 0 ) h ^ ( λ 1 ) ⋱ h ^ ( λ n − 1 ) ) ( f ^ ( λ 0 ) f ^ ( λ 1 ) ⋮ f ^ ( λ n − 1 ) ) = d i a g ( h ^ ( λ l ) ) U T f . \begin{aligned} \left(U^T h\right) \odot \left(U^T f\right) &= \begin{pmatrix} \hat{h}(\lambda_0) \\ \hat{h}(\lambda_1) \\ \vdots \\ \hat{h}(\lambda_{n-1}) \end{pmatrix} \odot \begin{pmatrix} \hat{f}(\lambda_0) \\ \hat{f}(\lambda_1) \\ \vdots \\ \hat{f}(\lambda_{n-1}) \end{pmatrix} \\ &= \begin{pmatrix} \hat{h}(\lambda_0) \\ & \hat{h}(\lambda_1) & & \\ & & \ddots & \\ & & & \hat{h}(\lambda_{n-1}) \end{pmatrix} \begin{pmatrix} \hat{f}(\lambda_0) \\ \hat{f}(\lambda_1) \\ \vdots \\ \hat{f}(\lambda_{n-1}) \end{pmatrix}\\ &= diag(\hat{h}(\lambda_l) ) U^T f. \end{aligned} (UTh)⊙(UTf)=⎝⎜⎜⎜⎛h^(λ0)h^(λ1)⋮h^(λn−1)⎠⎟⎟⎟⎞⊙⎝⎜⎜⎜⎛f^(λ0)f^(λ1)⋮f^(λn−1)⎠⎟⎟⎟⎞=⎝⎜⎜⎛h^(λ0)h^(λ1)⋱h^(λn−1)⎠⎟⎟⎞⎝⎜⎜⎜⎛f^(λ0)f^(λ1)⋮f^(λn−1)⎠⎟⎟⎟⎞=diag(h^(λl))UTf.
因此用矩阵形式:
( f ⋆ h ) G = U ( h ^ ( λ 0 ) h ^ ( λ 1 ) ⋱ h ^ ( λ n − 1 ) ) U T f = U d i a g ( h ^ ( λ l ) ) U T f . \left( f \star h\right)_G = U \begin{pmatrix} \hat{h}(\lambda_0) \\ & \hat{h}(\lambda_1) & & \\ & & \ddots & \\ & & & \hat{h}(\lambda_{n-1}) \\ \end{pmatrix} U^T f = U diag(\hat{h}(\lambda_l)) U^T f. (f⋆h)G=U⎝⎜⎜⎛h^(λ0)h^(λ1)⋱h^(λn−1)⎠⎟⎟⎞UTf=Udiag(h^(λl))UTf.
Spectral Networks and Locally Connected Networks on Graphs中简单粗暴地把 d i a g ( h ^ ( λ l ) ) diag(\hat{h}(\lambda_l)) diag(h^(λl))变成卷积核 d i a g ( θ l ) diag(\theta_l) diag(θl),即:
y o u t = σ ( U g θ ( Λ ) U T x i n ) . y_{out} = \sigma \left( U g_{\theta}(\Lambda) U^T x_{in}\right). yout=σ(Ugθ(Λ)UTxin).
其中 σ ( . ) \sigma(.) σ(.)是激活函数,卷积核 g θ ( Λ ) g_{\theta}(\Lambda) gθ(Λ)为
g θ ( Λ ) = ( θ 0 ⋱ θ n − 1 ) . g_{\theta}(\Lambda) = \begin{pmatrix} \theta_0 \\ & \ddots \\ & & \theta_{n-1} \end{pmatrix}. gθ(Λ)=⎝⎛θ0⋱θn−1⎠⎞.
第一代的参数方法存在着一些弊端:主要在于:
Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering把 h ^ ( λ l ) \hat{h}(\lambda_l) h^(λl)巧妙地设计成了 ∑ j = 0 K α j λ l j \sum_{j=0}^{K} \alpha_j \lambda_{l}^{j} ∑j=0Kαjλlj,即:
g θ ( Λ ) = ( ∑ j = 0 K α j λ 0 j ⋱ ∑ j = 0 K α j λ n − l j ) = ∑ j = 0 K [ α j ( λ 0 j ⋱ λ n − l j ) ] = ∑ j = 0 K α j Λ j . \begin{aligned} g_{\theta}(\Lambda) &= \begin{pmatrix} \sum_{j=0}^{K} \alpha_j \lambda_{0}^{j} \\ & \ddots \\ & & \sum_{j=0}^{K} \alpha_j \lambda_{n-l}^{j} \end{pmatrix} \\ &= \sum_{j=0}^{K} \left[ \alpha_j \begin{pmatrix} \lambda_{0}^{j} \\ & \ddots \\ & & \lambda_{n-l}^{j} \end{pmatrix} \right] \\ &= \sum_{j=0}^{K} \alpha_j \Lambda^{j}. \end{aligned} gθ(Λ)=⎝⎜⎛∑j=0Kαjλ0j⋱∑j=0Kαjλn−lj⎠⎟⎞=j=0∑K⎣⎡αj⎝⎛λ0j⋱λn−lj⎠⎞⎦⎤=j=0∑KαjΛj.
利用拉普拉斯矩阵特征值分解的性质 L 2 = U Λ U T U Λ U T = U Λ 2 U T L^2 = U \Lambda U^T U \Lambda U^T = U \Lambda^2 U^T L2=UΛUTUΛUT=UΛ2UT,进而有:
U g θ ( Λ ) U T = U ( ∑ j = 0 K α j Λ j ) U T = ∑ j = 0 K ( α j U Λ j U T ) = ∑ j = 0 K α j L j . \begin{aligned} U g_{\theta}(\Lambda) U^T &= U \left( \sum_{j=0}^{K} \alpha_j \Lambda^{j} \right) U^T \\ & = \sum_{j=0}^{K} \left( \alpha_j U \Lambda^{j} U^T \right)\\ & = \sum_{j=0}^{K} \alpha_j L^{j}. \end{aligned} Ugθ(Λ)UT=U(j=0∑KαjΛj)UT=j=0∑K(αjUΛjUT)=j=0∑KαjLj.
卷积层为:
y o u t = σ ( U g θ ( Λ ) U T x i n ) = σ ( ∑ j = 0 K α j L j x i n ) . y_{out} = \sigma \left( U g_{\theta}(\Lambda) U^T x_{in}\right) = \sigma \left( \sum_{j=0}^{K} \alpha_j L^{j} x_{in}\right). yout=σ(Ugθ(Λ)UTxin)=σ(j=0∑KαjLjxin).
第二代卷积核其优点在于在于:
Every h ∈ L 2 ( [ − 1 , 1 ] , d y 1 − y 2 ) h \in L^2([-1,1],\frac{dy}{\sqrt{1-y^2}}) h∈L2([−1,1],1−y2dy) has a convergent (in L 2 L^2 L2 norm) Chebyshev series
h ( y ) = 1 2 c 0 + ∑ k = 1 ∞ c k T k ( y ) h(y) = \frac{1}{2} c_0 + \sum_{k=1}^{\infty} c_k T_k (y) h(y)=21c0+k=1∑∞ckTk(y)
with Chebyshev coefficients
c k = 2 π ∫ − 1 1 T l ( y ) T m ( y ) 1 − y 2 d y = 2 π ∫ 0 π cos ( k θ ) h ( cos ( θ ) ) d θ . c_k = \frac{2}{\pi} \int_{-1}^{1} \frac{T_l(y) T_m(y)}{\sqrt{1-y^2}} dy = \frac{2}{\pi} \int_{0}^{\pi} \cos(k\theta)h(\cos(\theta)) d \theta. ck=π2∫−111−y2Tl(y)Tm(y)dy=π2∫0πcos(kθ)h(cos(θ))dθ.
将 g θ ( Λ ) g_{\theta}(\Lambda) gθ(Λ)用Chebyshev多项式 T k ( x ) T_{k}(x) Tk(x)逼近:
g θ ′ ( Λ ) ≈ ∑ k = 0 K θ k ′ T k ( Λ ~ ) , Λ ~ = 2 λ m a x ( Λ ) Λ − I n g_{\theta^{'}}(\Lambda) \approx \sum_{k=0}^{K} \theta_{k}^{'} T_{k}( \tilde{\Lambda} ), \qquad \tilde{\Lambda} = \frac{2}{\lambda_{max}(\Lambda)} \Lambda - I_n gθ′(Λ)≈k=0∑Kθk′Tk(Λ~),Λ~=λmax(Λ)2Λ−In
由 T k ( y ) = cos ( k arccos ( y ) ) T_k(y) = \cos \left( k \arccos (y) \right) Tk(y)=cos(karccos(y))可以知道Chebyshev多项式的输入必须是在 [ − 1 , 1 ] [-1,1] [−1,1]之间,所以需要将 Λ \Lambda Λ做变换为 Λ ~ \tilde{\Lambda} Λ~。
因此得到Chebyshev多项式逼近图上谱卷积为:
g θ ′ ⋆ x ≈ U ( ∑ k = 0 K θ k ′ T k ( Λ ~ ) ) U T x = ∑ k = 0 K ( U θ k ′ T k ( Λ ~ ) U T ) x = ∑ k = 0 K θ k ′ T k ( U Λ ~ U T ) ) x = ∑ k = 0 K θ k ′ T k ( L ~ ) x \begin{aligned} g_{\theta^{'}} \star x & \approx U \left( \sum_{k=0}^{K} \theta_{k}^{'} T_{k}( \tilde{\Lambda} ) \right) U^T x \\ & = \sum_{k=0}^{K} \left( U \theta_{k}^{'} T_{k}( \tilde{\Lambda} ) U^T \right) x \\ & = \sum_{k=0}^{K} \theta_{k}^{'} T_{k}\left( U \tilde{\Lambda} U^T \right) ) x \\ & = \sum_{k=0}^{K} \theta_{k}^{'} T_{k}(\tilde{L}) x \end{aligned} gθ′⋆x≈U(k=0∑Kθk′Tk(Λ~))UTx=k=0∑K(Uθk′Tk(Λ~)UT)x=k=0∑Kθk′Tk(UΛ~UT))x=k=0∑Kθk′Tk(L~)x
其中 L ~ = 2 λ m a x ( L ) L − I N \tilde{L} = \frac{2}{\lambda_{max}(L)} L - I_N L~=λmax(L)2L−IN。
如果取 λ m a x ≈ 2 \lambda_{max} \approx 2 λmax≈2则有 L ~ = L − I N \tilde{L} = L - I_N L~=L−IN。Chebyshev多项式只取前两项,即 K = 1 K = 1 K=1 有
g θ ′ ⋆ x ≈ ( θ 0 ′ + θ 1 ′ ( L − I N ) ) x = ( θ 0 ′ − θ 1 ′ D − 1 2 A D − 1 2 ) x . \begin{aligned} g_{\theta^{'}} \star x & \approx \left( \theta_{0}^{'} + \theta_{1}^{'} (L - I_N) \right) x \\ & = \left( \theta_{0}^{'} - \theta_{1}^{'} D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \right) x \end{aligned}. gθ′⋆x≈(θ0′+θ1′(L−IN))x=(θ0′−θ1′D−21AD−21)x.
令参数 θ 0 ′ = − θ 1 ′ = θ \theta_{0}^{'} = - \theta_{1}^{'} = \theta θ0′=−θ1′=θ,图上谱卷积又可以简化为
g θ ′ ⋆ x ≈ θ ( I N + D − 1 2 A D − 1 2 ) x g_{\theta^{'}} \star x \approx \theta \left( I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \right) x gθ′⋆x≈θ(IN+D−21AD−21)x
注意 I N + D − 1 2 A D − 1 2 I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} IN+D−21AD−21拥有范围为 [ 0 , 2 ] [0,2] [0,2]的特征值,这将会导致数值不稳定性和梯度爆炸/消失。因此我们介绍下面的归一化技巧(renormalization trick):
I N + D − 1 2 A D − 1 2 → D ~ − 1 2 A ~ D ~ − 1 2 . I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \rightarrow \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}. IN+D−21AD−21→D~−21A~D~−21.
其中 A ~ = A + I N , D ~ i , i = ∑ j A ~ i , j = ∑ j ( A i , j + ( I N ) i , j ) = D i , i + 1 \tilde{A}=A+I_N,\tilde{D}_{i,i} = \sum_{j}\tilde{A}_{i,j} = \sum_{j} \left( A_{i,j} + (I_N)_{i,j}\right) = D_{i,i} + 1 A~=A+IN,D~i,i=∑jA~i,j=∑j(Ai,j+(IN)i,j)=Di,i+1。上式展开为
I N + D − 1 2 A D − 1 2 → D ~ − 1 2 A ~ D ~ − 1 2 = ( D + I N ) − 1 2 ( A + I N ) ( D + I N ) − 1 2 = ( D + I N ) − 1 2 A ( D + I N ) − 1 2 + ( D + I N ) − 1 . \begin{aligned} I_N + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} & \rightarrow \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} \\ & = (D + I_N)^{-\frac{1}{2}} (A+I_N) (D + I_N)^{-\frac{1}{2}} \\ & = (D + I_N)^{-\frac{1}{2}} A (D + I_N)^{-\frac{1}{2}} + (D + I_N)^{-1} \end{aligned}. IN+D−21AD−21→D~−21A~D~−21=(D+IN)−21(A+IN)(D+IN)−21=(D+IN)−21A(D+IN)−21+(D+IN)−1.
输入 X ∈ R N × C X \in \mathbb{R}^{N \times C} X∈RN×C, C C C为输入的通道数,经过滤波 Θ ∈ R C × F \Theta \in \mathbb{R}^{C \times F} Θ∈RC×F得到含有 F F F个通道的卷积后结果 Z ∈ R N × F Z \in \mathbb{R}^{N \times F} Z∈RN×F:
Z = D ~ − 1 2 A ~ D ~ − 1 2 X Θ Z = \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} X \Theta Z=D~−21A~D~−21XΘ