前言
最近看了图上的空域卷积和频域卷积,写下自己的心得,后续的知识再补充
1. 为什么要使用图卷积神经网络
原因: 现实生活中存在着大量拓扑结构的数据,比如图等非欧式数据,这些数据不满足平移不变性,传统的卷积操作只适用于欧式空间的数据(图像等),因此需要适用于图上的卷积操作。
2. 怎么使用图卷积
类比CNN中的卷积,传统卷积是对中心点周围的点进行加权后相加得到中心点的表示,推广到图中就是将用周围节点来表示当前节点。
卷积的定义式:
傅里叶变换:
傅里叶变换(Fourier Transform, FT)会将一个在空域(或时域)上定义的函数分解成频域上的若干频率成分。换句话说,傅里叶变换可以将一个函数从空域变到频域
这里的F−1指的是傅里叶逆变换,⊙是哈达玛乘积,指的是两个矩阵(或向量)的逐点乘积(Element-wise Multiplication)。仔细观察上面这个公式,它的直观含义可以用一句话来概括:空(时)域卷积等于频域乘积。简单来说就是,如果要算 f 与 g 的卷积,可以先将它们通过傅里叶变换变换到频域中,将两个函数在频域中相乘,然后再通过傅里叶逆变换转换出来,就可以得到 f 与 g 的卷积结果。下面的动图形象地展示了傅里叶变换的过程,这里我们把函数 f 傅里叶变换后的结果写作 f^.
下面是傅里叶变换的公式
傅里叶变换的本质是将f(t)映射到了以
为基向量的函数
因此在推广到图上的卷积时,就需要找到这样的基向量和拉普拉斯算子
图卷积神经网络
度矩阵 D
邻接矩阵 A
拉普拉斯矩阵 L = D-A
L是半正定矩阵,有如下的性质,U是特征向量
图上的卷积操作如下,我们找到了 基向量就是拉普拉斯矩阵的特征向量 ,算子就是拉普拉斯矩阵。
对于整张图上所有的节点进行操作
第一代卷积核,将
缺点:需要n个参数,参数多,运算复杂度较高
第二代卷积核
计算特征向量的复杂度也较高,因此使用了切比雪夫的近似公式
可以提前算出来,记为A~
实质上W就是变换的基,A~是卷积核
原始的GCN只保留了切比雪夫的前两项,也就是只考虑自身和一阶邻居节点,得到下面的图卷积表示。
空域卷积
空域卷积实质上是找到节点的邻居节点,也就是关系密切的节点
如下图所示,这种聚合的方法是针对整张图的,通过选择节点的邻居节点获取当前节点的表示,
空域卷积和谱域卷积的联系
二者之间的联系
核函数是用于描述节点之间距离或者相似度之间的度量
卷积核是核函数的权重
谱域卷积的本质是将图上的信号先变换到谱域,在谱域上找到对应的卷积核,再转回到空域,因此需要找到相应的基来进行变换。
而空域卷积不在意图上的信号需要变换到哪个域,只需要找到定义节点之间距离或相似度的核函数。
这样也就得出了谱域卷积是空域卷积的特殊情况的结论。