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

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

同学你好!本文章于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 Neural Network,GNN)是一类能够从图结构数据中学习特征规律的神经网络,是解决图结构数据(非欧氏空间数据)机器学习问题的最重要的技术。


1 图神经网络的基础知识


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


   前面章节中主要介绍了神经网络的相关知识。接下来,让我们了解一下图神经网络相关的基础知识。


1.1 欧氏空间与非欧氏空间


  • 欧氏空间/欧几里得空间:能用一维、二维或更高维的矩阵表示,其最显著的特征就是有规则的空间结构。这是一个特别的度量空间。例如,音频、图像和视频等都是定义在欧氏空间下的欧几里得结构化数据。


  • 非欧氏空间:并不是平坦的规则空间,是曲面空间,即规则矩阵空间以外的结构。非欧氏空间下最有代表的结构就是图(graph)结构,它常用来表示社交网络等关系数据。


1.2 图


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


9befe500f5194818aa0a708f3b60ba29.png


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


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


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


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 哈达马积


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


d7b8d8968db64c3b992dd60c6469f4fa.png


2.2 点积


两矩阵的行列乘法的结果


2.3 度矩阵与邻接矩阵


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


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


4c845db685d3486b925b55d6d789abf9.png


度矩阵D:


7dd215ae41e94d3bbc4ce542cb57ff20.png


邻接矩阵A:


64978adf607f4455afccc43c14f9d6ec.png


2.4 邻接矩阵的几种操作


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


2.4.1 获取有向图的短边


80d8ee6ae15c40b680b35aaadc99a2d4.png

f1942867d5514ad1b21bd31fbe01b54f.png


2.4.2 获取有向图的长边


efcc8d1cdb1247b3b07892c0563fa73e.png

31cda55d957f43a1b901ff1a86043c62.png


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


1d604f87602c410ba01268e187849f2e.png

2e2c2eb9a0724d5890a6f711cea0ad0b.png


3 图卷积神经网络


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


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

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


5f983eb06cb44584b4dcd27ed1e11604.png


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


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


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


3.2 图卷积操作的步骤


1、将图结构的特征用拉普拉斯矩阵表示。

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


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


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


729de6ae7ec54459a8f6b666d2550afe.png

c4ec564e35ff45dbb210ba4e1d830e7b.png


7725400372b5460ca676dc790b4dd008.png


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


1.深度学习的神经网络擅长处理欧氏空间中的数据。


2.图神经网络檀长处理非欧氏空间中的数据。


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


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


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


4.1.1 矩阵是特殊的图谱


(1)矩阵中的每个点有固定个数的邻点。从图谱的角度来看,图像中的像素就是图谱中的点。图像中的每个像素,也就是图谱中的每个点,周边总共有8个邻点。


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


4.1.2 图谱的限制


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


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


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


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


4.1.1 点积计算


9f389935cf594aefa9ca8c939fa881f0.png


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


be79f7feeaab4b3f8aca74f4f30cde7c.png


4.1.3 结论


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


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


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


4.3 图卷积的拟合性质


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


4.4 点积计算的扩展


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


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

目录
相关文章
|
3天前
|
机器学习/深度学习 算法 PyTorch
基于Pytorch Gemotric在昇腾上实现GraphSage图神经网络
本文详细介绍了如何在昇腾平台上使用PyTorch实现GraphSage算法,在CiteSeer数据集上进行图神经网络的分类训练。内容涵盖GraphSage的创新点、算法原理、网络架构及实战代码分析,通过采样和聚合方法高效处理大规模图数据。实验结果显示,模型在CiteSeer数据集上的分类准确率达到66.5%。
|
28天前
|
机器学习/深度学习 运维 安全
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
金融交易网络与蛋白质结构的共同特点是它们无法通过简单的欧几里得空间模型来准确描述,而是需要复杂的图结构来捕捉实体间的交互模式。传统深度学习方法在处理这类数据时效果不佳,图神经网络(GNNs)因此成为解决此类问题的关键技术。GNNs通过消息传递机制,能有效提取图结构中的深层特征,适用于欺诈检测和蛋白质功能预测等复杂网络建模任务。
61 2
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
|
25天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
78 7
|
1月前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
1月前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
2月前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
226 1
|
1月前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第32天】本文将介绍深度学习中的一个重要分支——卷积神经网络(CNN),以及其在图像识别领域的应用。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库构建一个基本的CNN模型,并对其进行训练和测试。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。

热门文章

最新文章

下一篇
DataWorks