参考链接:
知乎文章:一文带你理解图卷积网络本质和发展脉络
知乎文章:谱域GCN小结
b站视频:图卷积神经网络(GCN)的数学原理详解,谱图理论和傅立叶变换初探
图卷积网络 GCN

预备知识:
实对称矩阵可以正交相似对角化。即:若A=AT,则A=PΛP−1,PT=P−1
定义:
定义图G=(V,E,A)图中有n个节点
邻接矩阵A∈Rn×n, 如果节点vi与vj之间存在边, 则Aij=1, 否则Aij=0
度矩阵D∈Rn×n, 它是一个对角矩阵, Dii=ΣjAij
拉普拉斯矩阵 L=D−A。
在一种简单的情况下谈论, 假设图中每个节点有一个标量信息, 所有节点的信息表示为x∈Rn×1.
1. Lx做了什么事情?
令:Gij=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣⋱1⋯−1⋱−1⋯1⋱⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦, 则Gijx=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣⋮xi−xj⋮xj−xi⋮⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦, Gijx将vi,vj两个节点间的信息做了一个交互.
而拉普拉斯矩阵L=∑i,j∈EGij,
所以Lx=∑{i,j}∈EGijx=⎡⎢
⎢
⎢
⎢
⎢
⎢⎣∑{1,j}∈E(x1−xj)∑{2,j}∈E(x2−xj)⋮∑{n,j}∈E(xn−xj)⎤⎥
⎥
⎥
⎥
⎥
⎥⎦, 含义就是对所有的节点做了一阶邻居信息的聚合.
L2x则是对所有节点做了二阶邻居信息的聚合; Lkx是对k阶邻居信息的聚合.
2. 从谱域进行卷积操作
类比时序信号,要对时序的频域进行一些操作, 需要将信号转换到频域进行操作,之后再转换回时序(例如去除声音中频率高的女声).
图信号也有类似的傅里叶变换. 由于L为实对称矩阵,L=PΛPT. 其中P为正交矩阵. 则Lx=PΛPTx 分解为以下三个步骤:
傅里叶变换:PTx卷积操作:Λ(PTx)傅里叶逆变换:P(ΛPTx)
在谱域的卷积中,关键的操作是Λ, 在第一代谱域图网络Spectral CNN (SCNN)中, 将特征值处理后的结果g(Λ)=⎧⎪
⎪⎨⎪
⎪⎩Θ1⋱Θn⎫⎪
⎪⎬⎪
⎪⎭视为可学习的卷积. 这里的卷积是x,=Pg(Λ)PTx. 由于没有限定g(Λ)为多项式,所以特征分解操作不可避免(时间复杂度为O(n3)),而且它是全局的,并不是局部的,所以并没有利用上数据中经常存在的局部不变性的特点。
注意这里学习的参数的数量是节点的数量n
3. 通过限定卷积操作为多项式,降低运算量
k阶信息聚合操作: Lkx=PΛkPTx
为了增加学习能力, 参数化卷积核, 定义一个卷积操作gθ∗x=Pgθ(Λ)PTx
由于要聚合k阶信息, gθ(Λ)是一个k阶多项式(特征分解的时间复杂度为O(n3),限制为多项式可以避免特征分解). 即gθ(Λ)=θ0+θ1Λ1+θ2Λ2+⋯+θkΛk=∑ki=0θiΛi
gθ∗x=Pgθ(Λ)PTx=P∑ki=0θiΛiPTx=∑ki=0θi(PΛPT)ix=∑ki=0θiLix
使用k阶多项式的好处是:
-
学习的参数数量是阶数k, k<<n
-
k代表着k阶邻居. 这样的卷积操作具有局部性,而不是全局性.(类似CNN中的局部不变性)
4. 使用切比雪夫多项式替代原始的多项式(ChebNet)
使用切比雪夫多项式(迭代式的计算)替代原始的多项式, 降低计算的复杂度.
切比雪夫多项式的定义:
⎧⎪⎨⎪⎩T0(x)=1T1(x)=xTn+1(x)=2xTn(x)−Tn−1(x)
要求x∈[−1,1]. 其实是余弦二倍角公式.
使用切比雪夫多项式的图卷积操作:
⎧⎨⎩y=σ(∑Kk=0θkTk(^L)x))^L=2λmaxL−IN
这里注意为了获得特征值在[−1,1]之间的拉普拉斯矩阵,有两种方法:
方法1.^L=2λmaxL−IN
方法2.^L=Lsym−IN=−D−12AD−12,
5. 从ChebNet继续化简到GCN
令ChebNet中的k=1,
σ(θ0x+θ1(L−IN)x=σ(θ0x+θ1(D−1/2(D−A)D−1/2−IN)x)=σ(θ0x+θ1(IN−D1/2AD−1/2−IN)x)=σ(θ0x+θ1(−D1/2AD−1/2)x)
进一步简化, 令θ0=−θ1(Lsym的计算方法见本文末尾)
σ(θ0x+θ1(−D1/2AD−1/2)x)=σ(θ(IN+D−1/2AD−1/2)x)
renormorlize, 将I 加到A里
σ(θ(IN+D−1/2AD−1/2)x)=σ(θD−1/2^AD−1/2x)
去掉θ, x右乘一个线性映射, 得到GCN的公式
H(l+1)=^D−1/2^A^D−1/2xlWl
由公式可知,每层GCN只能聚合一阶邻居的信息.
附注一些公式:
其中^A=A+I
L=D−A
对称归一化的拉普拉斯矩阵
Lsym=D−12LD−12=D−12(D−A)D−12=I−D−12AD−12
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律