图卷积网络学习笔记——基本概念
本文是基于个人理解对图卷积网络的学习笔记整理,每天进行更新,有问题请大家指出,谢谢。
有作者已经给出较为详细的整理:Ma Sizhou
一、图卷积的由来
- 近年来,卷积神经网络快速发展,并借由强大的建模能力引起广泛关注。但是,传统的卷积神经网络只能处理欧式空间数据(如图像、文本和语音),这些领域的数据具有平移不变性。但是对于非欧式空间数据:图数据,如交通网络、万维网和社交网络等,不同于图像和文本数据,图数据中的每个节点的局部结构各异,这使得平移不变性不再满足。因此,研究人员开始关注如何在图上构造深度学习模型,借助卷积神经网络对局部结构的建模能力以及图上普遍存在的节点依赖关系。
- 非欧几里得空间图结构数据:具有序列无序性(每个节点所相邻的节点的顺序具有不确定性)和维数可变性(每个节点相邻的节点的数量具有差异)。
二、图卷积的分类
- 谱域图卷积:基于图谱理论和卷积定理,将数据由空域转换到谱域做处理,处理完再转换到空域。如SCNN、GCN、AGCN等。
- 空域图卷积:直接在空间上定义卷积操作。如GCNN、DCNN、ACNN等。
三、谱域图卷积的基础知识
1.谱域图卷积实现思路
根据卷积定理,两个信号在空域(或时域)的卷积的傅里叶变换等于这两个信号在频域中的傅里叶变换的乘积,即:
F [ f 1 ( t ) ∗ f 2 ( t ) ] = F 1 ( w ) ⋅ F 2 ( w ) \mathcal{F}[f_1(t)*f_2(t)] = F_1(w) \cdot F_2(w) F[f1(t)∗f2(t)]=F1(w)⋅F2(w)
也可以表示为:
f 1 ( t ) ∗ f 2 ( t ) = F − 1 [ F 1 ( w ) ⋅ F 2 ( w ) ] f_1(t)*f_2(t) = \mathcal{F}^{-1}[F_1(w) \cdot F_2(w)] f1(t)∗f2(t)=F−1[F1(w)⋅F2(w)]
则将 f 1 ( t ) f_1(t) f1(t)看做空域输入信号, f 2 ( t ) f_2(t) f2(t)看做空域卷积核输入, F − 1 \mathcal{F}^{-1} F−1为傅里叶反变换, F 1 ( w ) F_1(w) F1(w)为频域输入信号, F 2 ( w ) F_2(w) F2(w)为频域卷积核。
即:
- 将空域信号转换为频域信号,然后相乘;
- 利用傅里叶反变换将相乘的结果转换至空域。
对于图数据,经典的卷积核并不适用,如3×3的卷积核,其形状是固定的,它的感受野周围必须有8个邻域才能使用卷积核。但是对于图数据,其节点的相邻节点的个数并不确定,且其相邻节点是无序的。然而,在频域处理数据时,只需要将每个频域分量放大或缩小即可,并不需要考虑其在空域上存在的问题。
2.拉普拉斯矩阵
- 相关符号表示:
无向图: G = ( v , ε , A ) \mathcal{G}=(v, \varepsilon, A) G=(v,ε,A),