卷积是分析数学中一种重要的运算,设 f ( x ) f(x) f(x) 和 g ( x ) g(x) g(x) 是 R \mathbb{R} R 上的可积函数,连续形式的卷积定义如下:
∫ − ∞ ∞ f ( τ ) g ( x − τ ) d τ (1) \int_{-\infin} ^{\infin} f(\tau) g(x - \tau) d\tau {\tag{1}} ∫−∞∞f(τ)g(x−τ)dτ(1)
不同的函数和不同的卷积核可以的到不同的卷积结果。
y n = x ∗ w = ∑ k = 1 k w k x n − k (2) y_n = x * w = \sum_{k=1}^k w_k x_{n-k} \tag{2} yn=x∗w=k=1∑kwkxn−k(2)
经典卷积网络无法处理图结构数据。目前图卷积实现思路:
两个信号在空域的卷积的傅里叶变换等于两个信号在频域中的傅里叶变换的点乘,点乘(element-wise multiplication)是指对两个矩阵、向量或序列中的相应元素进行相乘运算。即:
F [ f 1 ( t ) ⋆ f 2 ( t ) ] = F 1 ( w ) . F 2 ( w ) (3) \mathcal{F} [f_1(t)\star f_2(t)] = F_1(w) . F_2(w) \tag{3} F[f1(t)⋆f2(t)]=F1(w).F2(w)(3)
也可以写成:
f 1 ( t ) ⋆ f 2 ( t ) = F − 1 [ F 1 ( w ) . F 2 ( w ) ] (4) f_1(t)\star f_2(t) = \mathcal{F}^{-1} [F_1(w) . F_2(w)] \tag{4} f1(t)⋆f2(t)=F−1[F1(w).F2(w)](4)
基于图谱理论,图上的傅里叶变换使用图傅里叶变换(Graph Fourier Transform,GFT)来定义。GFT 的定义如下:
F G ( x ) = U T x (5) \mathcal{F}_G(x) = U^T x \tag{5} FG(x)=UTx(5)
写成分量求和的形式为:
x ( i ) = ∑ k = 1 N u l ( i ) x ^ ( λ l ) (6) x(i) = \sum_{k=1}^N u_l(i)\hat{x}(\lambda_l) \tag{6} x(i)=k=1∑Nul(i)x^(λl)(6)
拉普拉斯矩阵是图信号处理中的一个重要概念,它是图信号的频域表示。拉普拉斯矩阵的定义如下:
L = D − A (7) L = D - A \tag{7} L=D−A(7)
拉普拉斯矩阵是半正定矩阵,即 x T L x ≥ 0 x^T L x \geq 0 xTLx≥0,其中 x x x 是任意向量。证明过程:
x T L x = x T D x − x T A x = ∑ i = 1 N d i x i 2 − ∑ i , j = 1 N a i j x i x j = 1 2 ∑ i , j = 1 N a i j ( x i − x j ) 2 ≥ 0 (8) x^T L x = x^T D x - x^T A x = \sum_{i=1}^N d_i x_i^2 - \sum_{i,j=1}^N a_{ij} x_i x_j = \frac{1}{2} \sum_{i,j=1}^N a_{ij} (x_i - x_j)^2 \geq 0 \tag{8} xTLx=xTDx−xTAx=i=1∑Ndixi2−i,j=1∑Naijxixj=21i,j=1∑Naij(xi−xj)2≥0(8)
特征分解(Eigen decomposition),又称为谱分解(Spectral decomposition),是线性代数中的一个分解,将一个矩阵分解为特征向量和特征值的形式。拉普拉斯矩阵的谱分解如下:
L = U Λ U T (9) L = U \Lambda U^T \tag{9} L=UΛUT(9)
对拉普拉斯谱分解后,n阶对称矩阵一定有n个线性无关的特征向量相互正交,这些正交的特征向量构成的矩阵为正交矩阵。因此,拉普拉斯矩阵的特征向量矩阵 U U U 是正交矩阵,即 U T U = I U^T U = I UTU=I,其中 I I I 是单位矩阵。
拉普拉斯矩阵与拉普拉斯算子是两个不同的概念,但是它们之间有一定的联系。拉普拉斯算子的定义如下:
Δ f = ∇ ⋅ ∇ f = ∑ i = 1 n ∂ 2 f ∂ x i 2 (10) \Delta f = \nabla \cdot \nabla f = \sum_{i=1}^n \frac{\partial^2 f}{\partial x_i^2} \tag{10} Δf=∇⋅∇f=i=1∑n∂xi2∂2f(10)
图信号的拉普拉斯算子的定义如下:
Δ G f = U Δ f = U ∇ ⋅ ∇ f = U ∑ i = 1 n ∂ 2 f ∂ x i 2 (11) \Delta_G f = U \Delta f = U \nabla \cdot \nabla f = U \sum_{i=1}^n \frac{\partial^2 f}{\partial x_i^2} \tag{11} ΔGf=UΔf=U∇⋅∇f=Ui=1∑n∂xi2∂2f(11)
对以上的公式如何得到呢?对于二维图像的拉普拉斯算子,我们可以将其写成如下的形式:
Δ f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 (12) \Delta f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} \tag{12} Δf=∂x2∂2f+∂y2∂2f(12)
离散形式的拉普拉斯算子可以写成如下的形式:
Δ f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 = f ( x + 1 , y ) + f ( x − 1 , y ) − 2 f ( x , y ) h 2 + f ( x , y + 1 ) + f ( x , y − 1 ) − 2 f ( x , y ) h 2 (13) \Delta f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} = \frac{f(x+1,y) + f(x-1,y) - 2f(x,y)}{h^2} + \frac{f(x,y+1) + f(x,y-1) - 2f(x,y)}{h^2} \tag{13} Δf=∂x2∂2f+∂y2∂2f=h2f(x+1,y)+f(x−1,y)−2f(x,y)+h2f(x,y+1)+f(x,y−1)−2f(x,y)(13)
其中 h h h 是步长。将上式写成矩阵形式:
Δ f = 1 h 2 [ 0 1 0 1 − 4 1 0 1 0 ] [ f ( x − 1 , y ) f ( x , y ) f ( x + 1 , y ) ] + 1 h 2 [ 0 1 0 1 − 4 1 0 1 0 ] [ f ( x , y − 1 ) f ( x , y ) f ( x , y + 1 ) ] (14) \Delta f = \frac{1}{h^2} \begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} f(x-1,y) \\ f(x,y) \\ f(x+1,y) \end{bmatrix} + \frac{1}{h^2} \begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} f(x,y-1) \\ f(x,y) \\ f(x,y+1) \end{bmatrix} \tag{14} Δf=h21 0101−41010 f(x−1,y)f(x,y)f(x+1,y) +h21 0101−41010 f(x,y−1)f(x,y)f(x,y+1) (14)
我们这里令 h = 1,将上式写成矩阵卷积形式:
Δ f ( x ) = [ 0 1 0 1 − 4 1 0 1 0 ] ⋆ f ( x ) (16) \Delta f(x) = \begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{bmatrix} \star f(x) \tag{16} Δf(x)= 0101−41010 ⋆f(x)(16)
可以看出,二维图像的拉普拉斯算子,等于周围节点和自身节点的差值的和。对于图信号的拉普拉斯算子,节点的拉普拉斯算子,可以定义为与其相连节点与自身节点的差值的和,我们可以将其写成如下的形式:
Δ G f = ∑ j = 1 N A i j ( f i − f j ) = ∑ j = 1 N A i j f i − ∑ j = 1 N A i j f j = ∑ j = 1 N A i j f i − ∑ j = 1 N A j i f j (17) \Delta_G f = \sum_{j=1}^N A_{ij} (f_i - f_j) = \sum_{j=1}^N A_{ij} f_i - \sum_{j=1}^N A_{ij} f_j = \sum_{j=1}^N A_{ij} f_i - \sum_{j=1}^N A_{ji} f_j \tag{17} ΔGf=j=1∑NAij(fi−fj)=j=1∑NAijfi−j=1∑NAijfj=j=1∑NAijfi−j=1∑NAjifj(17)
写成矩阵形式有:
Δ G f = [ Δ f 1 Δ f 2 ⋮ Δ f N ] = [ A 11 f 1 − ∑ j = 1 N A 1 i f j ⋮ A n n f n − ∑ j = 1 N A N i f j ] = D f − A f = L f (18) \begin{aligned} \Delta_G f =& \begin{bmatrix} \Delta f_1 \\ \Delta f_2 \\ \vdots \\ \Delta f_N \end{bmatrix} = & \begin{bmatrix} A_{11}f_1 - \sum_{j=1}^N A_{1i} f_j \\ \vdots \\ A_{nn}f_n - \sum_{j=1}^N A_{Ni} f_j \\ \end{bmatrix} = & Df - Af =Lf\tag{18} \end{aligned} ΔGf= Δf1Δf2⋮ΔfN = A11f1−∑j=1NA1ifj⋮Annfn−∑j=1NANifj =Df−Af=Lf(18)
图上的信号一般表达为一个向量。假设有n个节点。图上的信号记为:
x = [ x 1 x 2 ⋮ x n ] (19) x = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} \tag{19} x= x1x2⋮xn (19)
经典傅里叶变换的定义如下:
傅里叶变换公式如下:
X ( ω ) = ∫ − ∞ ∞ x ( t ) e − j ω t d t (20) X(\omega) = \int_{-\infin}^{\infin} x(t) e^{-j \omega t} dt \tag{20} X(ω)=∫−∞∞x(t)e−jωtdt(20)
离散傅里叶变换公式如下:
X ( ω ) = ∑ n = 0 N − 1 x ( n ) e − j ω n (21) X(\omega) = \sum_{n=0}^{N-1} x(n) e^{-j \omega n} \tag{21} X(ω)=n=0∑N−1x(n)e−jωn(21)
经典傅里叶变换,是将一个函数表示成了一个若干个正交基函数的线性组合。对于图上的信号,如果要进行一个傅里叶变换,很自然的我们想到,我们也要找到一组正交基,通过这组正交基的线性组合来表达 图上的信号。
矩阵形式为:
x = U x ^ (23) x = U \hat{x} \tag{23} x=Ux^(23)
如何求 x ^ \hat{x} x^ 呢?我们可以将上式两边同时左乘 U T U^T UT,得到:
U T x = U T U x ^ = I x ^ = x ^ (24) U^T x = U^T U \hat{x} = I \hat{x} = \hat{x} \tag{24} UTx=UTUx^=Ix^=x^(24)
因此,我们可以得到:
x ^ = U T x (25) \hat{x} = U^T x \tag{25} x^=UTx(25)
如何理解这两个结论呢?
我们使用图拉普拉斯的二次型(graph Laplacian quadratic form) 来定义信号的平滑程度。其表示有边相连的两个节点信号的平方差乘以权重的求和,其值越小,代表 越平滑
x ⊤ L x = 1 2 ∑ i , j = 1 N A i j ( x i − x j ) 2 (28) x^{\top} L x = \frac{1}{2}\sum_{i,j=1}^N A_{ij} (x_i - x_j)^2 \tag{28} x⊤Lx=21i,j=1∑NAij(xi−xj)2(28)
又因为
x ⊤ L x = x ⊤ U Λ U ⊤ x = x ^ ⊤ Λ x ^ = ∑ k = 1 N λ k x ^ 2 ( λ k ) (29) x^{\top} L x = x^{\top} U \Lambda U^{\top} x = \hat{x}^{\top} \Lambda \hat{x} = \sum_{k=1}^N \lambda_k \hat{x}^2(\lambda_k) \tag{29} x⊤Lx=x⊤UΛU⊤x=x^⊤Λx^=k=1∑Nλkx^2(λk)(29)
所以对应特征值越小,对应的特征向量越平滑。
利用图傅里叶变换,可以将定义在图节点上的信号 x ∈ R n x\in\mathbb{R}^n x∈Rn 从空间域转换到谱域。
卷积定理
x ⋆ g = F − 1 ⊙ [ X ( ω ) H ( ω ) ] = U ( U ⊤ x ⊙ U ⊤ g ) (30) x \star g = \mathcal{F}^{-1} \odot [X(\omega) H(\omega)] = U(U^{\top}x \odot U^{\top}g) \tag{30} x⋆g=F−1⊙[X(ω)H(ω)]=U(U⊤x⊙U⊤g)(30)
如果以矩阵乘法的形式表达这个公式,去掉 harmand 乘积。同时,通常我们并不关心空间域上的滤波器信号g是什么样子,只关心其在频率域的情况。
令
g θ = ( U ⊤ g ) = diag ( λ g ) = diag ( ( ^ λ ) ) g_{\theta} = (U^{\top}g) = \text{diag} (\lambda g) =\text{diag} (\hat(\lambda)) gθ=(U⊤g)=diag(λg)=diag((^λ))
则公式等价转换成下式:
x ⋆ g = U diag ( g ^ ) U ⊤ x (31) x \star g =U \text{diag}(\hat{g}) U^{\top} x \tag{31} x⋆g=Udiag(g^)U⊤x(31)
核心思想:
Chebyshev多项式
Chebyshev多项式是一类具有重要应用的正交多项式,其定义如下:
T 0 ( x ) = 1 , T 1 ( x ) = x , T n + 1 ( x ) = 2 x T n ( x ) − T n − 1 ( x ) (32) T_0(x) = 1, T_1(x) = x, T_{n+1}(x) = 2xT_n(x) - T_{n-1}(x) \tag{32} T0(x)=1,T1(x)=x,Tn+1(x)=2xTn(x)−Tn−1(x)(32)
矩阵形式为:
T 0 ( L ) = I , T 1 ( L ) = L , T n + 1 ( L ) = 2 L T n ( L ) − T n − 1 ( L ) (32) T_0(L) = I, T_1(L) = L, T_{n+1}(L) = 2LT_n(L) - T_{n-1}(L) \tag{32} T0(L)=I,T1(L)=L,Tn+1(L)=2LTn(L)−Tn−1(L)(32)
多项式插值:
f ( x ) = ∑ k = 0 K − 1 α k x k − 1 (33) f(x) = \sum_{k=0}^{K-1} \alpha_k x^{k-1} \tag{33} f(x)=k=0∑K−1αkxk−1(33)
切比雪夫插值将幂函数换成了切比雪夫多项式的项:
f ( x ) = ∑ k = 0 K − 1 α k T k ( x ) (34) f(x) = \sum_{k=0}^{K-1} \alpha_k T_k(x) \tag{34} f(x)=k=0∑K−1αkTk(x)(34)
ChebNet的核心思想:
x ⋆ g θ = U g θ U ⊤ x = U ∑ k = 0 K β k T k ( Λ ) U ⊤ x = ∑ k = 0 K β k T k ( L ) ( U Λ U ⊤ ) x = ∑ k = 0 K β k T k ( L ) x (35) \begin{aligned} x \star g_{\theta} =& Ug_{\theta}U^{\top}x \\ =& U \sum_{k=0}^{K}\beta_k T_k(\Lambda) U^{\top} x \\ =& \sum_{k=0}^{K}\beta_k T_k(L)(U \Lambda U^{\top}) x \\ =& \sum_{k=0}^{K}\beta_k T_k(L) x \\ \end{aligned} \tag{35} x⋆gθ====UgθU⊤xUk=0∑KβkTk(Λ)U⊤xk=0∑KβkTk(L)(UΛU⊤)xk=0∑KβkTk(L)x(35)
GCN的核心思想:
x ⋆ g θ = U g θ U ⊤ x = ∑ k = 0 k β k T k ( L ^ ) x = ∑ k = 0 1 β k T k ( L ^ ) x = β 0 T 0 ( L ^ ) x + β 1 T 1 ( L ^ ) x = ( β 0 + β 1 L ^ ) x = ( β 0 + β 1 ( L − I n ) ) x = ( β 0 − β 1 ( D − 1 / 2 W D − 1 / 2 ) ) x = ( θ ( D − 1 / 2 W D − 1 / 2 + I n ) ) x (36) \begin{aligned} x \star g_{\theta} =& Ug_{\theta}U^{\top}x \\ =& \sum_{k=0}^{k}\beta_k T_k(\hat{L})x \\ =& \sum_{k=0}^1 \beta_k T_k(\hat{L})x \\ =& \beta_0 T_0(\hat{L})x + \beta_1 T_1(\hat{L})x \\ =& (\beta_0 + \beta_1 \hat{L})x =& (\beta_0 + \beta_1(L - I_n))x \\ =& (\beta_0 - \beta_1(D^{-1/2WD^{-1/2}}))x \\ =& (\theta(D^{-1/2WD^{-1/2}} + I_n))x \\ \end{aligned} \tag{36} x⋆gθ=======UgθU⊤xk=0∑kβkTk(L^)xk=0∑1βkTk(L^)xβ0T0(L^)x+β1T1(L^)x(β0+β1L^)x=(β0−β1(D−1/2WD−1/2))x(θ(D−1/2WD−1/2+In))x(β0+β1(L−In))x(36)