【Pytorch神经网络理论篇】 26 基于空间域的图卷积GCNs(ConvGNNs):定点域+谱域+图卷积的操作步骤

简介: 图卷积网络(Graph Convolutional Network,GCN)是一种能对图数据进行深度学习的方法。图卷积中的“图”是指数学(图论)中用顶点和边建立的有相关联系的拓扑图,而积指的是“离散卷积”,其本质就是一种加权求和,加权系数就是卷积核的权重系数。

同学你好!本文章于2021年末编写,获得广泛的好评!


故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现


Pytorch深度学习·理论篇(2023版)目录地址为:


CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录


本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!

https://v9999.blog.csdn.net/article/details/127587345


欢迎大家订阅(2023版)理论篇

以下为2021版原文~~~~

815902569f6a467a99304f9ac1482386.png


图卷积网络(Graph Convolutional Network,GCN)是一种能对图数据进行深度学习的方法。图卷积中的“图”是指数学(图论)中用顶点和边建立的有相关联系的拓扑图,而积指的是“离散卷积”,其本质就是一种加权求和,加权系数就是卷积核的权重系数。


51f0a871be024c24ad287676a0640a77.png


图结构数据是具有无限维的一种不规则数据,每一个顶点周围的结构可能都是独一无二的,没有平移不变性使得传统的CNN、PNN无法在上面工作。

1 GCN

如果说CNN是图像的特征提取器,那么GCN便是图数据的特征提取器。


CNN可以直接对矩阵数据进行操作,而GCN操作方式有两种:谱域和顶点域。


1.1 基于谱域的图处理


谱域是谱图论中的术语。谱图论源于天文学,在天体观测中,可通过观察光谱的方式来观察距离遥远的天体。同样,图谱也是描述图的重要工具。


谱图论研究如何通过几个容易计算的定量来描述图的性质。通常的方法是将图结构数据编码成一个矩阵,然后计算矩阵的特征值。这个特征值也称为图的谱。被编码后的矩阵可以理解成图的谱域。


谱是方阵特有的性质,对于任意非欧氏空间数据,必须先通过计算其定量的描述生成方阵,才可以进一步求得谱。


GCN使用图结构中的度矩阵和邻接矩阵来表示图的谱域,这就是基于谱域实现。


GCN对矩阵的拉普拉斯变换,则是对图结构提取特征(谱)的一种方法。


1.2 基于定点域/空间域的图处理


指由图的本身结构所形成的空间,直接按照图的结构,根据相邻顶点间的关系以及每个顶点自己的属性,逐个顶点地进行计算。


1.3 基于顶点域的图卷积


基于顶点域的图卷积处理会比谱域的方式更加直观,也容易理解。


1.3.1 图卷积公式


bcdffc84412642b1a6ce2bfa5f242fb3.png

584eb55b790f46b39d33d086cb5124e8.png


1.3.2 图卷积的操作步骤(从顶点的角度)


图卷积的操作就是在整个图上对每个顶点都按照上式(10-1)的描述执行一遍。从顶点的角度来看,主要可以分成以下3个步骤:


c54251fab6fe4f8da7677f64bef5bf94.png


1、发射(send):每一个顶点将自身的特征信息经过变换后发送给邻居顶点。这一步是对顶点的特征信息进行抽取变换,如图10-2所示。


88bdc57caff040fa99b8283cf41284a0.png


2、接收(receive):每个顶点将邻居顶点的特征信息聚合。这一步是对顶点的局部结构信息进行融合,如图10-3所示。


74bfba601f334321a6416d219bb17abb.png


3、变换(transform):将前面的信息聚合之后进行非线性变换,增加模型的表达能力,如图10-4所示。


420b62c6339448c7a55bd2acab14eee5.png


使用GCN从图数据中提取的特征可以用于对图数据执行多种任务,如顶点分类、图分类(graph classification)和边预测(Iinkprediction),还可以顺便得到图的垂入表示。


1.3.4 图卷积的特性


1.局部参数共享:算子是适用于每个顶点(圆圈代表算子)的,处处共享。


2.感受域与层数成正比:最开始的时候,每个顶点包含直接邻居的信息,在计算第二层时,就能把邻居顶点的信息包含进来,这样参与运算的信息就更多、更充分。层数受域就更广,参与运算的信息就更多(特征一层层地抽取,每多一层就会更抽象、更高级)。

目录
相关文章
|
23天前
|
机器学习/深度学习 计算机视觉
卷积神经网络中池化层的概念介绍
卷积神经网络中池化层的概念介绍
21 0
|
2月前
|
机器学习/深度学习 算法 PyTorch
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
255 1
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【PyTorch实战演练】AlexNet网络模型构建并使用Cifar10数据集进行批量训练(附代码)
【PyTorch实战演练】AlexNet网络模型构建并使用Cifar10数据集进行批量训练(附代码)
70 0
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【PyTorch实战演练】使用Cifar10数据集训练LeNet5网络并实现图像分类(附代码)
【PyTorch实战演练】使用Cifar10数据集训练LeNet5网络并实现图像分类(附代码)
73 0
|
6天前
|
机器学习/深度学习 存储 监控
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
15 0
|
14天前
|
机器学习/深度学习 数据采集 TensorFlow
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
30 0
|
14天前
|
机器学习/深度学习 数据可视化 PyTorch
PyTorch小技巧:使用Hook可视化网络层激活(各层输出)
这篇文章将演示如何可视化PyTorch激活层。可视化激活,即模型内各层的输出,对于理解深度神经网络如何处理视觉信息至关重要,这有助于诊断模型行为并激发改进。
14 1
|
20天前
|
机器学习/深度学习 自然语言处理 算法
|
2月前
|
机器学习/深度学习 算法 PyTorch
【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
66 2
|
2月前
|
机器学习/深度学习 自然语言处理 PyTorch
【PyTorch实战演练】基于全连接网络构建RNN并生成人名
【PyTorch实战演练】基于全连接网络构建RNN并生成人名
24 0