第二代图卷积网络:应用快速局部谱卷积的图卷积网络

简介: 第二代图卷积网络:应用快速局部谱卷积的图卷积网络

论文标题:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering


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


论文来源:NeurIPS 2016


之前的文章:


傅里叶级数与傅里叶变换


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


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


一、概述


在将CNN泛化到图数据上的一个主要的瓶颈在于局部图卷积核的定义。本文在第一代图卷积神经网络上进行改进,定义了第二代图卷积神经网络,主要的贡献如下:


①谱图理论表达式:一种基于图信号处理(Graph Signal Processing,GSP)中已建立的工具的图上卷积神经网络的谱图理论公式。


②严格局部化的卷积核:本文提出的卷积核在中心节点的以KO%CV_5~5F1@57LH%O{YK44.png为半径的最短路径内是严格局部化的。

③低计算复杂度:本文提出的卷积核的复杂度是和卷积核的尺寸KO%CV_5~5F1@57LH%O{YK44.png以及边的数量成线性关系的,另外由于大多数图稀疏的,我们可以估计地认为9(Q%CN)}$QC59VRIOXGSITI.png,也就是每个节点只和8RC`2EJ`H`5XJZ@V7J$9A$9.png个近邻有边,这样复杂度就和节点数量[MFAUEVQZVU]3%S2TIY(GTI.png成线性关系。另外本方法避免了使用傅里叶基底,因此不再需要进行昂贵的特征值分解以及存储傅里叶基底(使用一个_N]6L`KV07L{Z3TE5MWYQ60.png大小的矩阵)。除了数据,本方法只需要存储拉普拉斯矩阵这个包含~`SDBI@]XR352T42(]IGBQA.png个非零值的稀疏矩阵。


④高效池化:本文提出了一种图上的高效池化策略。


⑤实验结果:通过实验证明了方法的有效性,并与其他方法进行了对比。


二、方法


将CNN泛化到图上需要3个基本步骤:


①设计图上的局部卷积核;


②图的粗化(coarsening);


③图的池化(pooling)。


  1. 学习快速局部谱卷积核

定义图卷积核的方法分空域(spatial)和频域(spectral)两种。空域的方法可以通过定义有限大小的卷积核来确保卷积核的局部性。卷积定理将卷积定义为在傅里叶基底(表示为拉普拉斯矩阵的特征向量)中对角化的线性算子,频域方法应用这一定理,然而频域卷积核存在两个限制:


①频域卷积核并非天然局部化;


②由于需要与图傅里叶基底相乘,会产生79AMDA~3%R6Q{39DQ2UM2K8.png的复杂度,转换成本很高。在本文中上述两个限制可以通过特殊的卷积核参数化选择来克服,这也是本文的主要内容之一。


  • 图信号的谱卷积核


WYG8O8CPX5F6E_TWR_[`VH2.png

73T[SLZ7Y4Z4PM7IMP2BT(V.png


这里`SMUL`H)C]UWUC7_GN$X0Q4.png,是一个傅里叶系数向量,其实可以理解为卷积核与HI5I7C9_KSJ}JMO)RG5C20N.png相乘后的结果,这个结果的每一维相当于这一维对应的特征向量的系数。


  • 局部卷积核的多项式参数化


前述非参数化的卷积核有两个局限性:


①这样的卷积核在空间上不是局部化的;


②他们的学习复杂度是L9}ZC)6P}NHYT$XIPK4)VP0.png


这些局限性可以通过采用多项式卷积核来解决:


850M98)6IQL]2Y04OSOR6K4.png


E@H[O%6W35V9{9YB3F`_JBC.png


  • 应用递归多项式的快速卷积


_5H65}7YRJMA{ULOGHHQ9MY.png

7Z`DE_G%1BYC@V`FE}EGSV3.png


  • 卷积核的学习


]2SQ1SEZ@BSIXLCCDF5MQ`D.png


  1. 图的粗化


池化操作需要将相似的节点聚类到一起,对于多层网络来说做到这一点相当于对需要保持局部几何结构的图进行多尺度聚类(multi-scale clustering)。图的聚类方法存在多种,比如常见的谱聚类方法(参考链接:谱聚类|机器学习推导系列(二十))。在本文的方法中没有采用谱聚类这种方法,而是选择了一种近似能够将图的规模除以2的聚类方法,这样的方法可以精确控制粗化和池化的size。本文采用的图粗化方法为Graclus多尺度聚类算法。


Graclus方法采用一种贪婪的方法来计算给定图的连续的粗化的版本,并且能够最小化多种谱聚类的目标,在这里选择的目标为normalized cut。具体的方法是在每层进行粗化时,选择一个未标记的节点DM%GR@DUWKD23M]$E_YBLAJ.png,然后选择一个能够最小化~5}[ZC4F~B~I@P7CNUKW3MG.png的未标记的邻居节点,然后将这两个节点标记,这两个匹配的节点在池化时被合并,合并节点的信号是这两个节点的信号加和。上述匹配的过程一直进行下去知道所有节点被遍历。这种方法是非常快速的,并且能够将图的规模近似除以2,之所以近似是因为可能有一些未匹配的节点(文中称为singleton节点)。


  1. 图信号的快速池化


池化操作被执行多次,所以必须是高效的。输入的图和粗化图的节点的排列方法是无意义的,因此,一个直接的池化操作的方法是需要一张表来保存匹配的节点,然而这种方法是内存低效的,并且缓慢,也不能并行处理。本文采用的方法可以使得池化操作像1D池化那样高效。


本文采用的方法分两个步骤:


①创建一个平衡二叉树;


②重排列所有节点。


在进行图的粗化以后,粗化图的每个节点要么有两个子节点(被匹配到的节点),要么只有一个节点(singleton节点)。从最粗到最细的图,将会添加fake节点(不与图连接在一起)到每一层来与singleton节点进行匹配。这样的结构是一个平衡二叉树,主要包含3种节点:


①regular节点(或者singleton节点),拥有两个regular子节点(如下图 level 1节点0);


②regular节点(或者singleton节点),拥有一个regular节点和一个singleton节点座位子节点的节点(如下图 level 2节点0);


③fake节点,总是拥有两个fake子节点(如下图 level 1节点1)。


fake节点的值初始化通常选择一个中性的值,比如当使用max pooling和ReLU激活函数时初始化为0。这些fake节点不与图的节点连接,因此卷积操作不会影响到它们。虽然这些节点会增加数据的维度,这样会增加计算的花费,但是在实践中证明Graclus方法所剩下的singleton节点是比较少的。在最粗化的图中任意排列节点,然后传播回最细的图中,这是由于粗化图中第RIF_06(BAEP%OBHC66AM0UT.png的节点的子节点是上一层图中的(4%[)W@WZE{YAXO$WO3(I_5.png节点,这样就可以在最细的图中有一个规范的排列顺序,这里规范是指相邻节点在较粗的层次上分层合并。这种pooling方法类似1D pooling。这种规范的排列能够让pooling操作非常的高效且可以并行化,并且内存访问是local的。下图是这种方法的一个例子:


Y_Z0~78G%)S9(_[RQO(@FQH.png

                                             pooling


三、实验


这里简单列几个实验结果,具体实验设置可以自行参考原论文。


  1. MNIST数据集上对比经典CNN


@I6%0}EE9M36{H`KD4]KIUP.png

                                     MNIST数据集上对比经典CNN


  1. 20NEWs数据集上多种架构效果


@{9NHHY`EB~DQ@R1NEN9MIF.png

                  20NEWs数据集上多种架构效果


  1. MNIST数据集上多种卷积核的对比


下图中Non-Param和Spline代表第一代GCN论文中提出的两种卷积核,Chebyshev代表本文提出的卷积核:


F4XC6@YLM5%VE)L)1VD{CWP.png

                          MNIST数据集上多种卷积核的对比


  1. GPU加速效果对比


下图表明本文提出的GCN结构在使用GPU加速时比经典CNN能获得更多的加速倍数,说明该架构的并行化处理能力是比较可观的:


`~]J@~{HT@B8KAMS4SE3I)2.png

                                            GPU加速效果对比

相关文章
|
18天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
78 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
1月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
299 55
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
199 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
14天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
22天前
|
负载均衡 容灾 Cloud Native
云原生应用网关进阶:阿里云网络ALB Ingress 全能增强
在过去半年,ALB Ingress Controller推出了多项高级特性,包括支持AScript自定义脚本、慢启动、连接优雅中断等功能,增强了产品的灵活性和用户体验。此外,还推出了ingress2Albconfig工具,方便用户从Nginx Ingress迁移到ALB Ingress,以及通过Webhook服务实现更智能的配置校验,减少错误配置带来的影响。在容灾部署方面,支持了多集群网关,提高了系统的高可用性和容灾能力。这些改进旨在为用户提供更强大、更安全的云原生网关解决方案。
366 17
|
21天前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
1月前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
75 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
24天前
|
数据采集 JavaScript 前端开发
异步请求在TypeScript网络爬虫中的应用
异步请求在TypeScript网络爬虫中的应用
|
1月前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
135 3
图卷积网络入门:数学基础与架构设计
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##