第一代图卷积网络:图的频域网络与深度局部连接网络

简介: 第一代图卷积网络:图的频域网络与深度局部连接网络

论文标题:Spectral Networks and Locally Connected Networks on Graphs


论文链接:https://arxiv.org/abs/1312.6203


论文来源:NeurIPS 2014


本文需要的前置知识:傅里叶变换与谱图理论基础


链接:


傅里叶级数与傅里叶变换


图神经网络中的谱图理论基础


一、概述


CNN在机器学习领域内的一些问题上取得了比较成功的效果,这主要得益于它处理的底层数据通常有一个坐标网格结构(在1,2,3维度上),因此这些数据就存在平移不变性( translational equivariance/invariance)。图像、语音、视频就属于这一类数据。由于网络不具备平移不变性(网络中的每个节点的邻居数量是不固定的),因此在网络上直接应用CNN是比较困难的。


对于常规的网格数据,CNN能够利用以下几个很好地结合在一起的结构来大大减少系统中的参数数量:


①平移结构(translation structure),使用滤波器在数据的网格结构上平移处理数据,从而实现参数共享,并没有使用线性映射;


②网格上的度量,使用紧凑支持滤波器(compactly supported filters),紧凑支持滤波器是指与输入数据大小无关的滤波器,它的大小可能远小于输入数据的大小;


③网格的多尺度二元聚类(multiscale dyadic clustering),是指CNN应用了跨步卷积(stride convolution)和池化(pooling)来进行下采样(subsampling)。


N%HB5AOGB]C`6I2RPJQ`SH8.png


然而某些数据并不具备上述几何结构,比如表面张力或温度、从一个气象台网络中观测到的数据、来自社交网络或协同过滤的数据,这些数据都不能直接应用CNN。虽然CNN可以应用于多层,但是在特征维度上没有假设任何几何属性,导致一个4-D tensor只能沿其空间坐标进行卷积,即对于一个4-D的tensor而言,其有IY7E7852S8L0ESBP0Y6A%C0.png四个维度,典型的CNN只能对]S)}$RDK2{0RM]ZPJ@O8OM2.png三个维度(即空间维度)进行卷积操作(通过3D convolution 操作),而不能对[`SH0T$R_A2PBOQX{T4RJH2.png维度(特征维度)进行操作。


网络提供了低维网格数据的一种泛化的框架,也就是GCN是CNN在domain上的推广,推广的方式是通过推广卷积的概念。在本文中将会讨论将深度卷积应用于网络数据的方法。本文一共提供两种架构。第一种为空域架构(spatial construction),这种架构能够对网络数据应用上述②和③,应用它们可以构建网络数据的局部连接网络,参数复杂度为PWDP22[%PZ4VNU0)CFZ7T)2.png而非BAJ@GQ7@QSK_XK7{ZZL5JQG.png。另一种架构称为频域架构(spectral construction),能够在傅里叶域内应用卷积。频域架构对于每一个feature map最多需要PWDP22[%PZ4VNU0)CFZ7T)2.png的参数复杂度,也可以构建参数数量与XU]R1OZUHRG%2E48$XAYENB.png无关的架构。这两种架构都可以应用高效的前向传播并且能够应用在有多个坐标的数据的数据集上。



二、空域架构


YD8XM04DAUZS2G8335G6I77.png


  1. 图的多尺度聚类


CNN通过池化和下采样来降低网格的大小,这一操作也就是网格的多尺度聚类( multiscale clustering):为每个cluster输入多个特征,输出一个特征。在图上被证明更为有效的聚类方法仍然有待研究,在本文中选择了一种比较朴素的聚类方法。如下图所示,下图中有两层聚类,灰色的点为数据中的无向图节点,然后进行聚类得到下一层带颜色的节点,然后再对这些带颜色的节点进行聚类,第一层为12个节点,第二层6个节点,第三层3个节点:


MF}YI1D4$8NJV7%YDENN3XL.png

                                                  图上的聚类


  1. 深度局部连接网络


LPG8L)2EAEA9KBMQ`7@UMBP.png

$BMR0F0$)_]_ZJDK5~%Q(SR.png

                                               空域架构


[~NB[$_T56~RTFZODAEEQ~L.png


  1. 评价


这种架构的优点在于不需要很强的前提假设,只需要图具备邻域结构即可,甚至不需要很好的embedding向量。但是缺点在于没办法进行参数共享,对于每一层的每一个节点都要有单独的参数进行卷积而不能像CNN那样使用同一个卷积核在数据网格上进行平移。


三、频域架构


  1. 图的拉普拉斯矩阵


]L~]`SA2EYXUI773W@@H`HJ.png

③Random walk normalized Laplacian,也就是随机游走归一化拉普拉斯矩阵:


YDO6VIAG@IA9)_XVRYX29G2.png


  1. 加权图的调和分析


QC840~TU3`W6P9HJ3)DVL0A.png

X53RU(~]I%ATZV2XL_)_}`R.png


上面提到的一组特征向量其实就是PWA(8@LF$)2GL${9N2LOBIR.png空间的一组基,前面的文章里说过图傅里叶变换其实就是将信号向量投影到拉普拉斯矩阵的各个特征向量上:


TTF)3`L68W{(0U8ZOTMLF51.png

特征值的大小表示平滑程度,它对应传统傅里叶变换中的频率,频率高表示短时间内变动多,和这里的相邻节点变动大(变动越大越不平滑)能对应起来。因此图傅里叶变换就是在将一个图信号分解到不同平滑程度的图信号上,就像传统傅里叶变换将函数分解到不同频率的函数上一样。


3W]D`{6~W00W26NCC_JUF]D.png

YJ(8CB602~{5JO5F04SV[86.png


  1. 图卷积


两个函EP`KH_C3%]O5BTF3$37`4KG.png数和B3SE{C{EJM{4JNFL(_IJD@I.png进行卷积可以应用卷积定理,用公式表达卷积定理就是:

]))V~GA6`LD[I]}Q(T_LY2W.png


应用卷积定理可以在频域上进行图的卷积操作,具体的方法是将滤波器IOTSPST}FOTOS}WW5~(MKJI.png和图信号GA4VI16DWBRNKT$@7XX)HLE.png都通过图傅里叶变换转换到频域然后计算转换后的结果的乘积(哈达玛积,也就是向量对应元素相乘),然后将相乘的结果再通过图傅里叶逆变换转换回空域,整个过程如下:


OL`N_~U4(308G$(PAZ4HQ$O.png

FYTYVUQ0S9S2TCKB7%%[QNW.png


  1. 频域架构


VJP7BV$EOTPG({`[X8]HD]L.png


四、实验


本文中提出的两种架构在两个数据集上进行了实验验证效果。具体实验设置参看原论文,这里不做赘述。


  1. 采样MNIST数据集


这个数据集是从MNIST数据集的每张图片()上采样个样本点构建图。实验样本如下图:


%Y@054%FFQP74QB7~9P5T45.png

                                                  样本


实验结果如下图所示:


@_D3SB@7]WK0N~~2N67IDV5.png

                                                    结果


  1. 球体上的MNIST数据集


这个数据集将MNIST数据集中的样本提升到3维空间中。实验样本如下图:


){2($VGHV~VIADNM%HD%GBV.png

                                                          样本


实验结果如下图所示:


S]]ZJLQ0@~OL~GQ`X4~G9JR.png

                                              结果1


81WW48$X2QQY7WE}1DMK__N.png

                                               结果2


参考资料


ref:图傅里叶变换


ref:paper reading:[第一代GCN] Spectral Networks and Deep Locally Connected Networks on Graphs

相关文章
|
4天前
|
机器学习/深度学习 编解码 算法
YOLOv5改进 | 主干网络 | 用EfficientNet卷积替换backbone【教程+代码 】
在YOLOv5的GFLOPs计算量中,卷积占了其中大多数的比列,为了减少计算量,研究人员提出了用EfficientNet代替backbone。本文给大家带来的教程是**将原来的主干网络替换为EfficientNet。文章在介绍主要的原理后,将手把手教学如何进行模块的代码添加和修改,并将修改后的完整代码放在文章的最后,方便大家一键运行,小白也可轻松上手实践。以帮助您更好地学习深度学习目标检测YOLO系列的挑战。
|
6天前
|
机器学习/深度学习 编解码 边缘计算
YOLOv5改进 | 卷积模块 | 用ShuffleNetV2卷积替换Conv【轻量化网络】
本文介绍了如何在YOLOv5中用ShuffleNetV2替换卷积以减少计算量。ShuffleNetV2是一个轻量级网络,采用深度可分离卷积、通道重组和多尺度特征融合技术。文中提供了一个逐步教程,包括ShuffleNetV2模块的代码实现和在YOLOv5配置文件中的添加方法。此外,还分享了完整的代码链接和GFLOPs的比较,显示了GFLOPs的显著减少。该教程适合初学者实践,以提升深度学习目标检测技能。
YOLOv5改进 | 卷积模块 | 用ShuffleNetV2卷积替换Conv【轻量化网络】
|
3天前
|
机器学习/深度学习 算法 计算机视觉
YOLOv8改进 | 融合模块 | 用Resblock+CBAM卷积替换Conv【轻量化网络】
在这个教程中,介绍了如何将YOLOv8的目标检测模型改进,用Resblock+CBAM替换原有的卷积层。Resblock基于ResNet的残差学习思想,减少信息丢失,而CBAM是通道和空间注意力模块,增强网络对特征的感知。教程详细解释了ResNet和CBAM的原理,并提供了代码示例展示如何在YOLOv8中实现这一改进。此外,还给出了新增的yaml配置文件示例以及如何注册模块和执行程序。作者分享了完整的代码,并对比了改进前后的GFLOPs计算量,强调了这种改进在提升性能的同时可能增加计算需求。教程适合深度学习初学者实践和提升YOLO系列模型的性能。
|
6天前
|
机器学习/深度学习 人工智能 算法
食物识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
食物识别系统采用TensorFlow的ResNet50模型,训练了包含11类食物的数据集,生成高精度H5模型。系统整合Django框架,提供网页平台,用户可上传图片进行食物识别。效果图片展示成功识别各类食物。[查看演示视频、代码及安装指南](https://www.yuque.com/ziwu/yygu3z/yhd6a7vai4o9iuys?singleDoc#)。项目利用深度学习的卷积神经网络(CNN),其局部感受野和权重共享机制适于图像识别,广泛应用于医疗图像分析等领域。示例代码展示了一个使用TensorFlow训练的简单CNN模型,用于MNIST手写数字识别。
23 3
|
11天前
|
机器学习/深度学习 算法 PyTorch
卷积神经网络的结构组成与解释(详细介绍)
卷积神经网络的结构组成与解释(详细介绍)
39 0
|
11天前
|
机器学习/深度学习 算法 数据挖掘
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
21 1
|
11天前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习500问——Chapter05: 卷积神经网络(CNN)(3)
深度学习500问——Chapter05: 卷积神经网络(CNN)(3)
19 1
|
11天前
|
机器学习/深度学习 存储 算法
卷积神经网络(CNN)的数学原理解析
卷积神经网络(CNN)的数学原理解析
45 1
卷积神经网络(CNN)的数学原理解析
|
11天前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习500问——Chapter05: 卷积神经网络(CNN)(2)
深度学习500问——Chapter05: 卷积神经网络(CNN)(2)
25 2
|
11天前
|
机器学习/深度学习 算法 PyTorch
卷积神经网络(CNN)——基础知识整理
卷积神经网络(CNN)——基础知识整理
38 2

热门文章

最新文章