【Pytorch神经网络理论篇】 25 基于谱域图神经网络GNN:基础知识+GNN功能+矩阵基础+图卷积神经网络+拉普拉斯矩阵

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

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

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

CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!https://v9999.blog.csdn.net/article/details/127587345欢迎大家订阅(2023版)理论篇

以下为2021版原文~~~~

 

图神经网络(Graph Neural Network,GNN)是一类能够从图结构数据中学习特征规律的神经网络,是解决图结构数据(非欧氏空间数据)机器学习问题的最重要的技术。

1 图神经网络的基础知识

    图神经网络(Graph Neural Network,GNN)是一类能够从图结构数据中学习特征规律的神经网络,是解决图结构数据(非欧氏空间数据)机器学习问题的最重要的技术之一。
    前面章节中主要介绍了神经网络的相关知识。接下来,让我们了解一下图神经网络相关的基础知识。

1.1 欧氏空间与非欧氏空间

  • 欧氏空间/欧几里得空间:能用一维、二维或更高维的矩阵表示,其最显著的特征就是有规则的空间结构。这是一个特别的度量空间。例如,音频、图像和视频等都是定义在欧氏空间下的欧几里得结构化数据。
  • 非欧氏空间:并不是平坦的规则空间,是曲面空间,即规则矩阵空间以外的结构。非欧氏空间下最有代表的结构就是图(graph)结构,它常用来表示社交网络等关系数据。

1.2 图

在计算机科学中,图是由顶点(也称节点)和顶点之间的边组成的一种数据结构。它通常表示为G(V,E)的形式,其中G表示一个图,V是图G中顶点的集合,E是图G中边的集合。

图结构研究的是数据元素之间的多对多关系,即任意两个元素之间都可能存在关系,即顶点之间的关系可以是任意的,图中任意元素之间都可能相关。

在图结构中,不允许没有顶点。任意两个顶点之间都有可能有关系,顶点之间的逻辑关系用边来表示。边可以是有向的或无向的,边集合可以是空的。

图结构中的每个顶点都有自己的特征信息,顶点间的关系可以反映出图结构的特征信息。在实际的应用中,可以根据图顶点特征或图结构特征进行分类。

1.3 图相关的术语

  • 无向图和有向图:根据图顶点之间的边是否带有方向来确定。
  • 权:图中的边或弧上附加的数量信息,这种可反映边或弧的某种特征的数据称为权。
  • 网:图上的边或弧带权则称为网,可分为有向网和无向网。
  • 度:在无向图中,与顶点v关联的边的条数称为顶点v的度。在有向图中,则以顶点v为弧尾的弧的数量称为顶点v的出度,以顶点v为弧头的弧的数量称为顶点v的入度,而顶点ν的度即其出度与入度之和。

1.4 图计算中的度量单位

  1. 顶点数(node);节点的数量。
  2. 边数(edge):边或连接的数量。
  3. 平均度(average degree):表示每个顶点连接边的平均数,如果图是无向图,那么平均度的计算为2×edge÷nodes
  4. 平均路径长度(average netwok distarce):任意两个顶点之间距离的平均值。它反映网络中各个顶点间的分离程度。值越小代表网络中顶点的连接度越大。
  5. 模块化指数(modulanty index):衡量网络图结构的模块化程度。一般地,该值大于0.44就说明网络图达到了一定的模块化程度。
  6. 聚类系数(clustering coefficient):和平均路径长度一起能够展示网络节点的平均路径小的情况,从而给出一些节点聚类或“抱团”的总体迹象。
  7. 网络直径(diameter):网络图直径的最大测量长度,即任意两点间的最短距离构成的集合之中的最大值。

1.5 结构化数据与非结构化数据

1.5.1 结构化数据

由二维表结构来进行逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。

1.5.2 非结构化数据

数据结构不规则或不完整、没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。它包括所有格式的办公文档、文本、图片HTML、各类报表、图像、音频或视频信息等。

1.6 GNN在不同类型数据上的应用

图神经网络(GNN)是一种直接在图结构上运行的神经网络,可以对图结构数据进行基于节点特征或结构特征的处理,通过顶点间的信息传递、变换和聚合来(层级化)提取或处理特征。GNN成为在图、点云和流形上进行表征学习的主流方法。

在结构化场景中,GNN被广泛应用在社交网络、推荐系统、物理系统、化学分子预测,指知识图谱。

在非结构化领域,GNN可以用在图像和文本等领域。

在其他领域,还有图生成模型和使用GNN来解决组合优化问题的场景。

1.7 GNN的起源

1.7.1 GCN 

GNN的第一个动机源于卷积神经网络(CNN),最基础的CNN便是图卷积网络(GraphConvolutional Network,GCN)。GNN的广泛应用带来了机器学习领域的突破并开启了深在规则的欧氏空间数据上运行,GCD是将卷积神经网络应用在各模型。

1.7.2 图嵌入

GNN的另一个动机来自图嵌入,它学习图中节点、边或子图的低维向量空间表示。DeepWalk、LINE、SDNE等方法在网络表示学习领域取得了很大的成功,然而这些方法在计算上较为复杂并且在大规模的图上并不是最优的。GNN却可以解决这些问题。

1.7.3 总结

GNN不但可以对单个顶点和整个结构进行特征处理,而且可以对图中电一小部分顶点所组成的子图)进行特征处理。如果把图数据当作一个网络,那么GNN可以分别对网络的整体、部分和个体进行特征处理。GNN将深度学习技术应用到由符号表示的图数据上,充分融合了符号表示和低维向量表示,并发挥出两者的优势。

2 矩阵基础

2.1 哈达马积

两个矩对应位置上的元素进行相乘的结果

 2.2 点积

两矩阵的行列乘法的结果

2.3 度矩阵与邻接矩阵

图的度矩阵:描述图中每个节点所连接的边数。

图的邻接矩阵:描述图中每个节点之间的相邻关系。


度矩阵D:

 邻接矩阵A:

 2.4 邻接矩阵的几种操作

邻接矩阵的行数和列数一定是相等的(即为方形矩阵)。无向图的邻接矩阵一定是对称的,而有向图的邻接矩阵不一定对称。 一般地,通过矩阵运算对图中的节点信息进行处理。

2.4.1 获取有向图的短边

2.4.2 获取有向图的长边

2.4.3 将有向图的邻接矩阵转化成无向图的邻接矩阵

3 图卷积神经网络

在下图中可以看到,图卷积神经网络的输入是一个图,经过一层层的计算变换后输出的还是一个图。

如果从卷积的角度来理解,那么可以将处理后的邻接矩阵当作一个卷积核,用这个卷积核在每一个隐藏层的特征结果上进行全尺度卷积。由于该卷积核的内容是图中归一化后的边关系,因此用这种卷积核进行卷积处理可使隐藏层的特征按照节点间的远近关系信息进行转化,对隐藏层的特征进行了去噪处理。去噪后的特征含有同类样本间的更多信息,从而使神经网络在没有大量样本的训练条件下,也可以训练出性能很好的模型。

图神经网络的实质是:对节点间的图结构关系进行计算,并将计算结果作用在每个节点的属性特征的拟合当中。

3.1 图结构与拉普拉斯矩阵的关系

图卷积本质上不是传播标签,而是传播特征。图卷积将未知的标签特征传播到已知标签的特征节点上,利用已知标签节点的分类器对未知标签特征的属性进行推理。

图卷积模型利用节点间的关系信息实现了特征的传播。而节点间的关系信息又是通过加工后的邻接矩阵来表现的。这个加工后的邻接矩阵称为拉普拉斯矩阵/基尔霍夫矩阵。

3.2 图卷积操作的步骤

1、将图结构的特征用拉普拉斯矩阵表示。
2、将拉普拉斯矩阵作用在节点特征的计算模型中,完成节点特征的拟合。

拉普拉斯矩阵的主要用途是表述图结构的特征(对矩阵的特征进行分解),是图卷积操作的必要步骤。

3.3 拉普拉斯矩阵的三种形式

4 图神经网络的角度看待深度学习

  1. 深度学习的神经网络擅长处理欧氏空间中的数据。
  2. 图神经网络檀长处理非欧氏空间中的数据。
  3. 图神经网络的实际处理过程中,还是将非欧氏空间的结构转化成矩阵来实现,用矩阵作为桥梁,就可以找到神经网络与图神经网络之间的联系。

4.1 实例解释图神经网络与深度学习的关系(以神经网络中常见的图像处理任务为例)

图像通常被理解为矩阵,矩阵中的每个元素是像素,像素是由RGB通道的3个数值组成的向量。换个角度想想,矩阵也可以理解为图谱,图谱由点和边组成,相邻的点之间用边相连。

4.1.1 矩阵是特殊的图谱

(1)矩阵中的每个点有固定个数的邻点。从图谱的角度来看,图像中的像素就是图谱中的点。图像中的每个像素,也就是图谱中的每个点,周边总共有8个邻点。
(2)矩阵中每条边的权重是常数。从图谱的角度来看,图像中的每一个像素只与周边8个邻点之间有边,其中边的长短权重是常数。

4.1.2 图谱的限制

图像作为一种特殊的图谱,其特殊性体现在这两个限制上面。如果放松了这两个限制,问题就更复杂了。这是深度学习算法向图神经网络衍化的必经之路。

4 图神经网络使用拉普拉斯矩阵的原因

图卷积的计算过程是将拉普拉斯矩阵与图节点特征进行点积运算,实现图结构特征向单个节点特征的融合。主要从图节点之间的传播关系方面阐释这个问题。

4.1 节点与邻接矩阵的点积作用

4.1.1 点积计算

4.1.2 分析邻居节点的聚合特征

4.1.3 结论

将节点特征与带自环的邻接矩阵执行点积运算,本质上就是将每个节点特征与自己的邻居节点特征相加,即对图中邻居节点特征进行加法聚合

4.2 拉普拉斯矩阵的点积作用

拉普拉斯矩阵本质上是邻接矩阵的归一化。同理,拉普拉斯矩阵的点积作用本质上也是图中邻居节点特征的加法聚合,只不过在加法聚合过程中加入归一化计算。

4.3 图卷积的拟合性质

将图结构信息融入节点特征的操作,本质上就是按照图结构中节点间的关系,将周围邻居的节点特征加起来。这样,在相邻的节点特征中,彼此都会有其他节点的特征信息,实现了标签节点的特征传播。

4.4 点积计算的扩展

使用矩阵运算方法会有较大的局限性,因为在节点特征与拉普拉斯矩阵执行点积的计算过程中,只能对图中邻居节点特征进行加法聚合。

在图节点的邻居特征聚合过程中,还可以使用更多其他的数学方法(比如取平均值、最大值),并不局限于加法。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Pytorch神经网络基础理论篇】 07 线性回归 + 基础优化算法

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

浅谈命令查询职责分离(CQRS)模式

在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体。在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题。…

【Pytorch神经网络实战案例】20 基于Cora数据集实现图卷积神经网络论文分类

1 案例说明(图卷积神经网络) CORA数据集里面含有每一篇论文的关键词以及分类信息,同时还有论文间互相引用的信息。搭建AI模型,对数据集中的论文信息进行分析,根据已有论文的分类特征,从而预测出未知分类的…

mybatis基础学习3---特殊sql语句(备忘)

1: 2: 3:resultMap的用法 转载于:https://www.cnblogs.com/kaiwen/p/6486283.html

【Pytorch神经网络实战案例】21 基于Cora数据集实现Multi_Sample Dropout图卷积网络模型的论文分类

Multi-sample Dropout是Dropout的一个变种方法,该方法比普通Dropout的泛化能力更好,同时又可以缩短模型的训练时间。XMuli-sampleDropout还可以降低训练集和验证集的错误率和损失,参见的论文编号为arXⅳ:1905.09788,2019 1 实例说明 本例就…

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

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

Linux设备驱动之mmap设备操作

1.mmap系统调用 void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset); 功能:负责把文件内容映射到进程的虚拟地址空间,通过对这段内存的读取和修改来实现对文件的读取和修改,而不需要再调用read和write&#xff…

hadoop安装以及Java API操作hdfs

因为工作需求,需要我这边实现一个大文件上传到HDFS的功能,因为本机无法连接公司内网的集群,无奈只好自己动手搭建一个单节点的Hadoop来满足工作的需求。下面简单介绍下安装过程中遇到的坑我的机器是阿里云的最低配 安装文件:hadoo…

【Pytorch神经网络理论篇】 27 图神经网络DGL库:简介+安装+卸载+数据集+PYG库+NetWorkx库

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络理论篇】 28 DGLGraph图的基本操作(缺一部分 明天补)

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络理论篇】 29 图卷积模型的缺陷+弥补方案

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络实战案例】22 基于Cora数据集实现图注意力神经网络GAT的论文分类

注意力机制的特点是,它的输入向量长度可变,通过将注意力集中在最相关的部分来做出决定。注意力机制结合RNN或者CNN的方法。 1 实战描述 【主要目的:将注意力机制用在图神经网络中,完成图注意力神经网络的结构和搭建】 1.1 实现…

用OC和Swift一起说说二叉树

前言: 一:在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二&#xf…

【Pytorch神经网络理论篇】 30 图片分类模型:Inception模型

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络理论篇】 31 图片分类模型:ResNet模型+DenseNet模型+EffcientNet模型

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积

1 PNASNet模型简介 PNASNet模型是Google公司的AutoML架构自动搜索所产生的模型,它使用渐进式网络架构搜索技术,并通过迭代自学习的方式,来寻找最优网络结构。即用机器来设计机器学习算法,使得它能够更好地服务于用户提供的数据。该…

s5k5e2ya MIPI 摄像头调试

1、驱动移植的话按照我之前的文章来做 驱动里面注意是几路的lane,一般mipi的话是差分信号,2路和4路是比较常见的。2、mipi波形 很明显上面的波形是不正确的。dp dn有一个都成了正弦波了。 首先,我们要找一下正确的波形 正确的波形应该是DP和DN不会同时…

【Pytorch神经网络实战案例】23 使用ImagNet的预训练模型识别图片内容

1 案例基本工具概述 1.1 数据集简介 Imagenet数据集共有1000个类别,表明该数据集上的预训练模型最多可以输出1000种不同的分类结果。 Imagenet数据集是目前深度学习图像领域应用得非常多的一个领域,关于图像分类、定位、检测等研究工作大多基于此数据…

杂谈转载

一、什么是运行时(Runtime)? 运行时是苹果提供的纯C语言的开发库(运行时是一种非常牛逼、开发中经常用到的底层技术)二、运行时的作用? 能获得某个类的所有成员变量能获得某个类的所有属性能获得某个类的所有方法交换…

【Pytorch神经网络实战案例】24 基于迁移学习识别多种鸟类(CUB-200数据集)

1 迁移学习 在实际开发中,常会使用迁移学习将预训练模型中的特征提取能力转移到自己的模型中。 1.1 迁移学习定义 迁移学习指将在一个任务上训练完成的模型进行简单的修改,再用另一个任务的数据继续训练,使之能够完成新的任务。 1.1.1 迁…