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

目录
相关文章
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
96 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 中的动态计算图:实现灵活的神经网络架构
【8月更文第27天】PyTorch 是一款流行的深度学习框架,它以其灵活性和易用性而闻名。与 TensorFlow 等其他框架相比,PyTorch 最大的特点之一是支持动态计算图。这意味着开发者可以在运行时定义网络结构,这为构建复杂的模型提供了极大的便利。本文将深入探讨 PyTorch 中动态计算图的工作原理,并通过一些示例代码展示如何利用这一特性来构建灵活的神经网络架构。
274 1
|
22天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:从漏洞到加密,保护数据的关键步骤
【10月更文挑战第24天】在数字化时代,网络安全和信息安全是维护个人隐私和企业资产的前线防线。本文将探讨网络安全中的常见漏洞、加密技术的重要性以及如何通过提高安全意识来防范潜在的网络威胁。我们将深入理解网络安全的基本概念,学习如何识别和应对安全威胁,并掌握保护信息不被非法访问的策略。无论你是IT专业人士还是日常互联网用户,这篇文章都将为你提供宝贵的知识和技能,帮助你在网络世界中更安全地航行。
|
2月前
|
机器学习/深度学习
小土堆-pytorch-神经网络-损失函数与反向传播_笔记
在使用损失函数时,关键在于匹配输入和输出形状。例如,在L1Loss中,输入形状中的N代表批量大小。以下是具体示例:对于相同形状的输入和目标张量,L1Loss默认计算差值并求平均;此外,均方误差(MSE)也是常用损失函数。实战中,损失函数用于计算模型输出与真实标签间的差距,并通过反向传播更新模型参数。
|
3月前
|
SQL 安全 网络安全
网络安全漏洞与加密技术:提升安全意识的关键步骤
【8月更文挑战第31天】在数字时代的浪潮中,网络安全已成为保护个人信息和企业资产的前沿防线。本文将深入探讨网络安全的重要性,分析常见的安全漏洞,介绍加密技术如何加固这道防线,并强调提升个人和组织的安全意识的必要性。通过实例和代码演示,我们将一窥网络防御的艺术,旨在启发读者构建更安全的网络环境。
|
3月前
|
监控 安全 iOS开发
|
3月前
|
机器学习/深度学习 PyTorch 测试技术
深度学习入门:使用 PyTorch 构建和训练你的第一个神经网络
【8月更文第29天】深度学习是机器学习的一个分支,它利用多层非线性处理单元(即神经网络)来解决复杂的模式识别问题。PyTorch 是一个强大的深度学习框架,它提供了灵活的 API 和动态计算图,非常适合初学者和研究者使用。
51 0
|
3月前
|
缓存 NoSQL Java
【Azure Redis 缓存】定位Java Spring Boot 使用 Jedis 或 Lettuce 无法连接到 Redis的网络连通性步骤
【Azure Redis 缓存】定位Java Spring Boot 使用 Jedis 或 Lettuce 无法连接到 Redis的网络连通性步骤
|
1月前
|
算法 PyTorch 算法框架/工具
Pytorch学习笔记(九):Pytorch模型的FLOPs、模型参数量等信息输出(torchstat、thop、ptflops、torchsummary)
本文介绍了如何使用torchstat、thop、ptflops和torchsummary等工具来计算Pytorch模型的FLOPs、模型参数量等信息。
194 2
|
1月前
|
机器学习/深度学习 自然语言处理 监控
利用 PyTorch Lightning 搭建一个文本分类模型
利用 PyTorch Lightning 搭建一个文本分类模型
60 8
利用 PyTorch Lightning 搭建一个文本分类模型