《第5章-图信号处理与图卷积神经网络》学习笔记

第5章-图信号处理与图卷积神经网络

参考书目:《深入浅出图神经网络:GNN原理解析》。

图信号处理(GSP)是离信号处理(DSP)理论在图信号领域的应用,其通过傅里叶变换、滤波等信号处理基本概念的迁移,来研究对图信号的压缩、变换、重构等信号处理的基础任务。

基于空域的图卷积神经网络(Spatial-based ConvGNN)就是从图信号处理的理论中不断改进衍生出来的,正所谓“基础不牢,地动山摇”,了解和掌握GSP的相关知识就是基本功中的基本功。


5.1 矩阵乘法的三种视角

1、内积视角(正常)
C i j = A i , : B : , j C_{ij}=A_{i,:}B_{:,j} Cij=Ai,:B:,j
2、行向量视角(对于理解空域图卷积有很大意义)
B B B看作是行向量矩阵, A A A看作是系数矩阵
C i , : = ∑ m M A i m B m , : C_{i,:}=\sum_m^M A_{im}B_{m,:} Ci,:=mMAimBm,:
3、列向量视角
C : , j = ∑ m M B m j A : , m C_{:,j}=\sum_m^M B_{mj}A_{:,m} C:,j=mMBmjA:,m

5.2 图信号与拉普拉斯矩阵

图信号可以表示成向量或矩阵的形式:
x = [ x 1 , x 2 , . . . , x N ] T \Bbb x=[x_1,x_2,...,x_N]^T x=[x1,x2,...,xN]T
x i x_i xi表示节点 v i v_i vi上信号的强度。
拉普拉斯矩阵(Laplacian Matrix)是研究图的结构性质的核心对象,定义为:
L = D − A L=D-A L=DA
D D D是一个对角阵,是节点的度矩阵, A A A是邻接矩阵,
D i i = ∑ j A i j D_{ii}=\sum_{j}A_{ij} Dii=jAij
因此,拉普拉斯矩阵的元素值为,
L i j = { d e g ( v i ) , i = j − 1 , e i j ∈ E 0 , o t h e r w i s e L_{ij} = \begin{cases} deg(v_i), & i = j \\[2ex] -1, & e_{ij}\in E \\[2ex] 0, & otherwise \end{cases} Lij=deg(vi),1,0,i=jeijEotherwise
拉普拉斯矩阵的正则化形式,
L s y m [ i , j ] = { 1 , i = j − 1 d e g ( v i ) d e g ( v j ) , e i j ∈ E 0 , o t h e r w i s e L_{sym}[i,j]= \begin{cases} 1, & i=j \\[2ex] \frac{-1}{\sqrt{deg(v_i)deg(v_j)}}, & e_{ij}\in E \\[2ex] 0, & otherwise \end{cases} Lsym[i,j]=1,deg(vi)deg(vj) 1,0,i=jeijEotherwise
拉普拉斯矩阵源于拉普拉斯算子 Δ \Delta Δ,反应图信号的局部平滑度。
图信号的总变差 T V ( x ) TV(x) TV(x)是一个标量,用于衡量图信号的整体平滑度,
T V ( x ) = x T L x = ∑ e i j ∈ E ( x i − x j ) 2 TV(x)=x^TLx=\sum_{e_{ij}\in E}(x_i-x_j)^2 TV(x)=xTLx=eijE(xixj)2
是一个半正定矩阵。

5.3 图傅里叶变换

傅里叶变换将信号从空域(spatial)转化到频域(spetral),给信号处理带来了极大的便利。
由于拉普拉斯矩阵是一个实对称矩阵,因此可以被对角化,
L = V Λ V T = [ ⋮ ⋮ ⋮ v 1 ⋯ v N ⋮ ⋮ ⋮ ] [ λ 1 ⋱ λ N ] [ ⋯ v 1 ⋯ ⋯ ⋮ ⋯ ⋯ v N ⋯ ] L=V\Lambda V^T=\\[2ex] \begin{bmatrix} \vdots & \vdots & \vdots \\ v_1 & \cdots & v_N \\ \vdots & \vdots & \vdots \\ \end{bmatrix} \begin{bmatrix} \lambda_1 & & \\ & \ddots & \\ & & \lambda_N \\ \end{bmatrix} \begin{bmatrix} \cdots & v_1 & \cdots \\ \cdots & \vdots & \cdots \\ \cdots & v_N & \cdots \\ \end{bmatrix} L=VΛVT=v1vNλ1λNv1vN
其中 L ∈ R N × N L\in R^{N\times N} LRN×N V ∈ R N × N V\in R^{N\times N} VRN×N V V T = I VV^T=I VVT=I V V V的每一列表示节点的特征向量, λ k \lambda_k λk表示第k和特征值。
因此,图傅里叶变换(GFT)为:
x ~ k = ⟨ v k , x ⟩ x ~ = V T x \tilde x_k=\langle v_k,x \rangle \\[2ex] \tilde x=V^Tx x~k=vk,xx~=VTx
其中 x ~ k \tilde x_k x~k为傅里叶系数,所有的傅里叶系数合在一起 x ~ \tilde x x~称为频谱(spectrum)。
逆图傅里叶变换(IGFT)则定义为:
x = V x ~ = ∑ k = 1 N x ~ k v k x=V\tilde x=\sum_{k=1}^N\tilde x_kv_k x=Vx~=k=1Nx~kvk
因此,对总变差进行重新改写:
T V ( x ) = ∑ k N λ k x ~ k 2 TV(x)=\sum_k^N\lambda_k\tilde x_k^2 TV(x)=kNλkx~k2
特征值可以等价为频率,特征值越低,频率越低,节点信号越趋于一致;而傅里叶系数可以等价成对应频率分量上的幅值。频域视角是一个全局视角,反映了图信号大小和拓扑结构,相当于图的一种身份ID。

5.4 图滤波器

使用图滤波器(filter)可以对各频率的强度进行操作。
我们可以定义滤波操作为:
y = H x = ( V Λ h V T ) x = V [ h ( λ 1 ) ⋱ h ( λ N ) ] V T x y=Hx=(V\Lambda_hV^T)x \\[2ex] =V \begin{bmatrix} h(\lambda_1)& & \\ &\ddots & \\ & &h(\lambda_N) \end{bmatrix} V^Tx y=Hx=(VΛhVT)x=Vh(λ1)h(λN)VTx
其中 H ∈ R N × N H\in R^{N\times N} HRN×N为滤波器, y y y为输出的信号,通过控制 h ( λ k ) h(\lambda_k) h(λk)来控制信号的增强或减弱的。
但是,上述计算过于复杂了,我们可以使用泰勒展开进行逼近。因此滤波器又可以定义为:
H = ∑ k = 0 K h k S k H=\sum_{k=0}^Kh_kS^k H=k=0KhkSk
其中, K K K为滤波器的阶数,可以自定义, S S S为图位移算子,一般可以直接使用 L L L A A A,因此滤波器一般被定义为:
H = ∑ k = 0 K h k L k H=\sum_{k=0}^Kh_kL^k H=k=0KhkLk

空域角度

下面主要从空域的角度来理解和分析一下滤波器。
我们令,
x ( k ) = L x ( k − 1 ) x^{(k)}=Lx^{(k-1)} x(k)=Lx(k1)
则,
y = ∑ k = 0 K h k x ( k ) y=\sum_{k=0}^Kh_kx^{(k)} y=k=0Khkx(k)
x ( k − 1 ) x^{(k-1)} x(k1) x ( k ) x^{(k)} x(k)只需要借助拉普拉斯矩阵,利用所有节点的一阶邻居进行计算。
因此具有以下2点重要性质:
(1)局部性,k阶子图。
(2)可通过矩阵向量乘法的迭代操作实现滤波操作。

5.5 图卷积神经网络

图信号的卷积运算定义为,
x 1 ∗ x 2 = I G F T ( G F T ( x 1 ) ⨀ G F T ( x 2 ) ) x_1*x_2=IGFT(GFT(x_1)\bigodot GFT(x_2)) x1x2=IGFT(GFT(x1)GFT(x2))
其中 ⨀ \bigodot 表示哈达玛积,就是频域中的矩阵点乘运算。
从频域角度来看,图卷积等价于图滤波,将图卷积推广到图数据的学习当中就成为了一种自然而然的想法。

1、对特征值对角矩阵进行参数化

特征值矩阵又称为频率响应矩阵,参照图滤波器,进行参数化,可得到网络,
X ′ = σ ( V [ θ 1 ⋱ θ N ] V T X ) = σ ( V d i a g ( θ ) V T X ) X'=\sigma(V \begin{bmatrix} \theta_1& & \\ & \ddots& \\ & & \theta_N \end{bmatrix} V^TX) =\sigma(Vdiag(\theta)V^TX) X=σ(Vθ1θNVTX)=σ(Vdiag(θ)VTX)
其中 θ = [ θ 1 , . . . , θ N ] \theta=[\theta_1,...,\theta_N] θ=[θ1,...,θN]是需要学习的参数,因此存在一个较大的问题:引入的参数过多!!!需要学习的参数数量和节点数量一致,根本就无法应用于大型图数据上。
并且,数据的有效信息往往都是在低频段中,没有必要对每个频段都进行学习。

2、对多项式系数进行参数化

很自然地想到了使用多项式进行逼近,前面也有提到过,
X ′ = σ ( V [ ∑ k = 0 K θ k λ 1 k ⋱ ∑ k = 0 K θ k λ N k ] V T X ) = σ ( V ( ∑ k = 0 K θ k Λ k ) V T X ) X'=\sigma(V \begin{bmatrix} \sum_{k=0}^K\theta_k\lambda_1^k& & \\ & \ddots& \\ & & \sum_{k=0}^K\theta_k\lambda_N^k \end{bmatrix} V^TX) =\sigma(V(\sum_{k=0}^K\theta_k\Lambda^k)V^TX) X=σ(Vk=0Kθkλ1kk=0KθkλNkVTX)=σ(V(k=0KθkΛk)VTX)
其中 θ = [ θ 1 , . . . , θ K ] \theta=[\theta_1,...,\theta_K] θ=[θ1,...,θK]是需要学习的参数,由于 K K K可以自由的定义且 K ≪ N K\ll N KN,大大降低了参数的数量。

3、设定固定的滤波器

前面的方法都对特征矩阵分解比较依赖,因此有很高的计算复杂度。
经过复杂的推理,…省略一万字…,我们可以这么做。先定义重归一化形式的拉普拉斯矩阵,
L ~ s y m = D ~ − 1 2 A ~ D ~ − 1 2 \tilde L_{sym}=\tilde D^{-\frac{1}{2}}\tilde A\tilde D^{-\frac{1}{2}} L~sym=D~21A~D~21
其中 A ~ = A + I \tilde A=A+I A~=A+I D ~ i i = ∑ j A ~ i j \tilde D_{ii}=\sum_j\tilde A_{ij} D~ii=jA~ij L ~ s y m ∈ ( − 1 , 1 ] \tilde L_{sym}\in(-1,1] L~sym(1,1]。可以看出已经不再需要进行矩阵分解操作了(真的是,大道至简)。
为了增加网络的拟合能力,增加了一个参数化的权重矩阵,得到
X ′ = σ ( L ~ s y m X W ) X'=\sigma(\tilde L_{sym}XW) X=σ(L~symXW)
这就是很多论文里面提到的图卷积层(GCN layer),使用这个层进行堆叠的模型成为图卷积网络(GCN)。
图卷积层是对函数拟合上的极大简化,相较于频域(spectral)图卷积中的矩阵分解 O ( N 3 ) O(N^3) O(N3)的时间复杂度,空域(spatial)图卷积的时间复杂度可以降至 O ( ∣ E ∣ d ) O(|E|d) O(Ed),这也为是什么沿着GCN这一条分支发展的如此迅猛的原因了。


总结

还是先把基础打牢,虽然学习的时候会比较痛苦。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值