拉普拉斯算子属于卷积方法吗_图卷积神经网络:Graph Convolutional Networks

cafdf8679aa24bdd42f970007d49b25a.png

这篇文章主要介绍图卷积神经网络,主要参考[1],中间还包含了很多个人的理解。论文中还有很多点,我理解得还不是很通透,如果错误,欢迎指出。请多多指教。

Spectral Networks and Locally Connected Networks on Graphs​arxiv.org

一、简介

这篇文章是最早提出将CNN扩展到图上,直接处理图类型的数据而不需要对图类型的数据进行转化。在之前的一篇文章[2]中,我讲过欧式空间和非欧式空间的区别。CNN一般作用与欧式空间,无法直接作用于非欧式空间。CNN具有以下几个特点:

  1. 权重共享:同一个卷积核可以作用于不同的位置。
  2. 局部性:欧式空间可以简洁的支持卷积核(直接根据卷积公式计算卷积结果即可),卷积核的大小一般远小于输入信号的大小。
  3. 多尺度:CNN往往包含下采样,可以减少参数,并获得更大的感受野(receptive field)。

文章中,作者提出了两种方式构建图卷积神经网络:空域构建(Spatial Construction)和频域构建(Spectral Construction)。

二、空域构建(Spatial Construction)

空域构建主要考虑(2)(3)两点,即CNN多尺度,层次,局部感受野的特点。

首先,我们先定义一个有权重的无向图

,这里
表示结点,大小为
表示边,大小为
,是一个对称的非负矩阵。因此结点
的相邻结点可以表示为:

空域卷积(Spatial Convolution)

717bceb2df1f1e5cbe3a7e57274e6664.png
图1 空域卷积示意图。对结点6做卷积,其实就是对及结点6的相邻结点做加权求和。

如图1所示,我们要对结点6做卷积,和结点6相邻的结点有结点1和结点5(包括自身,结点6),即

。因此对结点6做卷积可以表示为
表示每个结点的特征,
表示卷积的权重。因此对某个结点
做卷积,可以表示为:

卷积的输入的结点特征可能是一个向量,维度记为

。同时,一次卷积操作可能包含多个卷积核,即卷积的通道数
。类似与图像中的卷积,对输入特征的每一维做卷积,然后累加求和,就可以得到某个通道
的卷积结果,公式如下所示:

转化成矩阵形式,可以写成:

Pooling层实现

CNN通过pooling和下采样层,减小特征图的尺寸。在图上,同样可以使用多尺度聚类的方式,来获得层次结构。图2展示了一个图的多尺度聚类。

9745c6f785ca10a8a58fc1b317d262f1.png
图2 无向图G包含了两层聚类。原始的点用灰色表示。

根据聚类结果,我们可以构造这样一个矩阵

,行表示cluster,列表示结点,矩阵中的元素表示每个结点对聚类中心的权重,如果是求平均的话,就是1除以类中结点数,图3显示展示了一个例子。

93ed5a7b5a3e39cd586bd4d3554149ef.png
图3 矩阵L举例

因此我们通过

就可以得到avg pooling后的输出结果。同样,矩阵
可以标注每个cluster最大值所在的结点。这样,我们通过
得到max pooling后的输出结果。

多层空域卷积

现在我们考虑有K个尺度。第0个尺度表示原始的图,即

,对于之后的每个尺度的特征图,定义为
。聚类算法会把图
分成
个类,
为原始图的结点数量
。因此图
中每个结点的相邻结点可以定义为:

我们定义layer

,卷积核的数量为
。因此网络的layer
维特征转化为
维特征。假设,
是layer
的输入,大小为
是layer
结点的数量,
是layer
特征的维度(卷积核的数量),卷积输出结果
可以定义为:

加入pooling层之后,输出结果

可以定义为:

这里

是大小为
的稀疏矩阵,非零向量的位置由
给定,h是非线性激励函数。
表示输出图
中每个类的pooling操作的结果。

可以通过以下方式构建:

图4展示了空域卷积的构建方式。

13a649d1b1a175e31e78d0d7d7ef63f3.png
图4 Spatial Construction,K=2。出于展示的目的,pooling操作跟卷积操作合并在了一起。每一层空间尺度变小了,但是卷积核的数量变多了。

假设

是图
中每个结点的平均相邻结点的数量,即
的平均support。因此,layer
的参数数量为
,这里
就是矩阵
中非零元素的数量。

使用空域构建,我们实现了CNN的特点(2)(3),但是很难实现特点(1)权重共享。从公式中我们可以看出,对于每个结点,卷积的权重是不同的。但是对于图像中的卷积,不同位置的卷积核的权重是共享的。主要的原因是在图G上无法使用传统的卷积公式

计算,之前的内容只是近似的实现了卷积的操作。

三、频域构建(Spectral Construction)

既然在空域中,不好进行卷积。能不能将图转化到另一个空间(频域)来实现卷积操作呢?根据卷积定理,在空域(时域)中的卷积等于在频域中直接相乘:

这里

是傅里叶变换和傅里叶逆变换。关于卷积,傅里叶变换、拉普拉斯矩阵的更多详细内容可以参考[3][4]。

因此,我们需要找到一组傅里叶变换的基,将图从空域转到这组基所表示的频域空间。我们通过构建拉普拉斯矩阵来找到一组傅里叶变换的基。其实拉普拉斯矩阵就是图上的拉普拉斯算子。

5677639cd3f2a57d1dc2bf362a13e83b.png
图5 拉普拉斯矩阵,图片来自[5]

如图5所示,我们构造这样两个矩阵。

度数矩阵

(Degree matrix):

邻接矩阵

(Adjacency matrix):

那么拉普拉斯矩阵L可以写成是:

这里我们使用的是无向图,所以L是对称矩阵。因此

可以按照如下公式进行分解:

这里特征向量

就是我们要找的一组傅里叶变换的基,特征值
是对应的特征向量所占的比重。通过这组傅里叶变换的基,我们可以将输入
从空域转到频域,

因此,图的卷积公式,从空域转换到频域,可以表示为:

这里可以将

整体看成一个可以学习的卷积核,记为
,因此最终的卷积公式可以表示成:

加入通道和激励函数后,第

层卷积可以写成:

这里

是一个对角矩阵:

通常,我们根据特征值的大小选择前

个特征向量作为一组傅里叶变换的基,
。在保证精度的情况下,减少参数量和计算量,同时可以去除高频噪声。因此,频域卷积的参数量为

此外,作者还提出使用三次样本插值来增加平滑约束,因此卷积核

的参数可以表示为:

这里

是大小为
的三次样本核函数,
个样条参数。假设采样的步长正比于结点数量,
。则,频域卷积的参数可以减少为:

四、数值实验

这里作者通过两个数字实验来证明模型的有效性。实验的数据集是MNIST。第一个实验是从原始

的图片中随机采样400个像素点,结果如图6所示。这些像素点虽然还是有2-D结构,但是无法使用标准的卷积。图7展示了实验一构建的图的层次聚类结果;图8展示了图拉普拉斯矩阵的两个特征向量。第二个实验见论文[1]。

996d668905e755023ec28d006a9bbaf8.png
图6 下采样MNIST数字举例

c48cad47a351a789b7d491b71543f340.png
图7 层次聚类的结果。(a)k=1最细粒度的聚类结果 (b)k=3的聚类结果

1d4505219722b7d8df3b71d5de6ca5f3.png
图8 图拉普拉斯矩阵的两个特征向量u2,u20

这里分别使用Nearest Neighbor分类器,两层全连接神经网络作为对比模型。第一个实验的结果如表1所示,FC

表示全连接层(
维输出),LRF
表示空域卷积(
维输出),MP
表示max-pooling层(
维输出),SP
表示频域卷积(
维输出):

36d9897665ebc8eab5e7e92bca6a0bc2.png
表1 400个随机点下采样MNIST的分类结果

MNIST中的数字由笔画构成,具有局部性。空域卷积明确地满足这一约束,而频域卷积并没有强制具有空间局部性,如图9(c)(d)所示。添加平滑约束后,频域卷积的结果有所提升,由于卷积核被约束,获得更好的空间局部性,如图9(e)(f)所示。

aa6c9f40ccdd0b98148e3206c9a345ad.png
图9 空域和频域卷积在下采样MNIST上学习得到的卷积核。(a)(b)在两个不同的cluster中编码相同的特征的两个不同的感受野。(c)(d)频域卷积学习得到的卷积核。(e)(f)带平滑约束的空域卷积学习得到的卷积核。

五、实现

文章中的图卷积神经网络的实现代码见https://github.com/Ivan0131/gcn_demo,使用tensorflow2.0实现。Pooling层被我改成了avg pooling,由于max pooling的实现比较繁琐,avg pooling会让代码简洁很多。实现的效果离论文中的结果还是有点差距。

六、总结

这篇文章,介绍了两种构建图卷积的方式:空域卷积和频域卷积。其它论文中实现的图卷积,基本也可以归到这两类上。希望通过对这篇文章的介绍,可以帮助大家更好地理解图卷积。

[1] Spectral Networks and Deep Locally Connected Networks on Graphs https://arxiv.org/abs/1312.6203

[2] 图神经网络:The Graph Neural Network Model https://zhuanlan.zhihu.com/p/85768094

[3] 图卷积网络(GCN)新手村完全指南 https://zhuanlan.zhihu.com/p/54505069

[4] 拉普拉斯矩阵与拉普拉斯算子的关系 https://zhuanlan.zhihu.com/p/85287578

[5] Laplacian matrix https://en.wikipedia.org/wiki/Laplacian_matrix

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值