图神经网络(2)预备知识

 1. 图的基本概念

        对于接触过数据结构和算法的读者来说,图并不是一个陌生的概念。一个由一些顶点也称为节点和连接这些顶点的边组成。给定一个图G=(V,E),  其 中V={V1,V2,…,Vn}  是一个具有 n 个顶点的集合

1.1邻接矩阵

        我们用邻接矩阵ARn×n表示顶点之间的连接关系。 如果顶点 vivj之间有连接,就表示(vi,vj)  组成了一条边(vi,vj)E, 那么对应的邻接矩阵的元素Aij=1,否则Aij=0邻接矩阵的对角线元素通常设0。

1.2顶点的度

        一个顶点的度指的是与该顶点连接的边的总数。我们d(v)  示顶点v的度,则顶点的度和边之间有关系所有顶点的度之和是边的数目的2倍。

1.3度矩阵

        图 G 的度矩阵D是一个n×n的对角阵,对角线上的元素是对应顶点的度:

1.4 路径

        与数据结构的路径一样。

1.5距离

        如果从顶点u到顶点v的最短路径存在,则这条最短路径的长度称为顶点u 和顶点v 之间的距离。如果u  v 之间不存在路径,则距离为无穷大。

1.6邻居节点

        如果顶点vivj之间有边相连,则vivj互为邻接点, vi的邻接点集合写作Nvi 或N(vi)。如果vi到vj的距离为K, 则称vi为vj的K阶邻居节点。

1.7权重图

        如果图里的边不仅表示连接关系,而且具有表示连接强弱的权重,则这个图被称为权重图。在权重图中,邻接矩阵的元素不再是0,1,而可以是任意实数 AijR。顶点的度也相对应地变为与该顶点连接的边的权重的和。由于非邻接点的权重为0,所以顶点的度也等价于邻接矩阵A对应行的元素的和。

1.8有向图

        如果一个图的每个边都有一个方向,则称这个图为有向图,反之则称为无向图。在有向图中,从顶点u  v 的边和从v  u 的边是两条不同的边。反映在邻接矩阵中,有向图的邻接矩阵通常是非对称的,而无向图的邻接矩阵一定是对称的Aij=Aji。

1.9图的遍历

        从图的某个顶点出发,沿着图中的边访问每个顶点且只访问一次,这叫作图的遍历。图的遍历一般有两种:深度优先搜索和宽度优先搜索。

1.10图的同构

        图的同构指的是两个图完全等价。两个图G=(V,E)  和图G¹=(V',E')   是同构的,当且仅当存在从VV '的一 一映射 f, 使得对于任意的(u,v)∈E都有(f(u),f(v))∈E'。

2.简易图谱论

2.1 拉普拉斯矩阵

对于一个有n个顶点的图G, 它的拉普拉斯矩阵定义L=D-A,其中,D 是图G的度矩阵,A是图G的邻接矩阵。L 中的元素可以定义为

通常,我们需要将拉普拉斯矩阵进行归一化。常用的有两种方式。

(1)对称归一化的拉普拉斯矩阵,公式省略

(2)随机游走归一化的拉普拉斯矩阵,公式省略

拉普拉斯矩阵如图所示:

拉普拉斯矩阵的性质如下:

(1)L  是对称的

(2) L是半正定矩阵(每个特征值λi≥0)

  (3) L的每一行每一列的和都是0

  (4)L 的最小特征值为0

2.2 拉普拉斯二次型

        拉普拉斯矩阵是半正定矩阵,这就意味着对任意一个n非0向量z,zT(转置)Lz≥0   式子展开后为:

(2.1)

        di 是度矩阵D 的对角元素,di=d(vi)=\sum_{j=1}^{n}1Ai j为了区分A中的边和非边元素,我们用wi j 表示 vivj连接时它们之间的权重。很显然,这个大于等于0的,所以L是半正定的。

        式(2.1)被称为拉普拉斯二次型如果我们把z看作分布在一个图的各个顶点上的一个函数(或者信号),zTLz 则表示这个函数z的光滑程度。如果它的值很小,则说明z从一个顶点到另一个邻接点的 变化并不会很大。拉普拉斯二次型被广泛应用于机器学习领域,其中一个很常见的例子就是在半监督学习中作为正则项。除此之外,在图切分 谱聚类、图稀疏化等应用中都发挥着重要作用。

2.3拉普拉斯矩阵与图扩散

        拉普拉斯矩阵的另一个重要作用是作为图上的离散拉普拉斯算子。假设在图上模拟一个热扩散的过程,φ(t)是图上每个顶点的热量分布,热量传播的速度和顶点之间的热量差成正比(根据冷却定律),于是在点vi 上这个扩散过程可以表示为:

        其中,δi j是一个指示变量,如果i=j, 则δi j=1, 否则δij=0。写成整个图 上的矩阵形式,可以得到\frac{d\phi(t)}{dt} = -c L \phi(t)(2.3),对比热传播方程

可知,-L 在式(2.3)中相当于拉普拉斯算子△(欧氏空间的二阶微分算子),所以L才被叫作(图)拉普拉斯矩

2.4 图论傅里叶变换

        图论傅里叶变换将离散傅里叶转换延伸到处理图上的信号,它已经成为图信号分析的一个基础工具。简单地讲,图论傅 里叶变换就是基于图拉普拉斯矩阵将图信号从空域(顶点上)f(t) 转换到谱域 (频域)F(w) 的一种方法。那么如何把傅里叶变换迁移到图上呢?很自然地,我们把拉普拉斯算子的特征函数换成拉普拉斯矩阵的特征向量即可。

        对于一个n 个顶点的图G,  我们可以考虑将它的拉普拉斯矩阵L作为傅里叶变换中的拉普拉斯算子。因为L是实对称矩阵,可以进行如下所示的特征分解:L=UAU-¹(-1)=UAUT(转置)

其中,U 是一个正交化的特征向量矩阵UUT(转置)=UT(转置)U=I,A (没有中间的那一横)是特征值的对角U提供了一个图上完全正交的基底,图上的任意一个向量f 都可以表示成U中特征向量的线性组合:

其中,uL U 的第L个列向量,也是对应特征值λL的特征向量。如果我们用 这些特征向量替代原来傅里叶变换式中的基底,把原来的时域变为顶点上的空域,那么图上的傅里叶变换就变成

其中,λ表示第L个特征值,f(i)对应第i个节点上的特征,u(i)表示特征向量ul的第i个元素。推广到矩阵形式就是UT(转置)f。

图信号:定义在图的所有顶点上的信号φ:V→Rn。 可以将图信号当成一个n 维的向量φ∈Rn, 其中φi对应顶点vi上的值。

图论傅里叶变换对于一个图信号φ^,图论傅里叶变换定义为φ=U-1(上标) φ=UTφ

图论傅里叶逆变换:对于一个谱域上的图信号p,图论傅里叶逆变换定 义为^。

        很容易发现,图论傅里叶变换实际上和式是对应的,它本质上就是将一个向量变换到以拉普拉斯矩阵的特征向量为基底的新的空间中,这个空间也就是我们所说的谱域。图论傅里叶变换是可逆的,即Uφ^=UU-¹φ=φ

        图论傅里叶变换为图信号在谱域上的处理提供了一个工具。在谱域上,我们可以定义各种图上的信号过滤器,并延伸到定义图上的卷积操作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI自动生成PPT哪个软件好?如何自动生成专业级PPT?

新学期伊始,准备开学演讲稿的你是否还在为制作PPT而烦恼?别担心,现在有了AI的帮助,生成专业且吸引人的PPT变得轻而易举。 本文将为你揭秘4种高效的AI自动生成PPT的方法,让你在新学期的演讲中脱颖而出。无论是简洁明了…

数据权限的设计与实现系列6——前端筛选器组件Everright-filter使用探索

linear 功能探索 最终我们是需要使用 API 的方式,调用后端服务拉取数据填充筛选器组件,不过在探索阶段,直接用 API 方式,就需要构造 mock 数据,比较麻烦,因此先使用 Function 方式来进行功能验证。 组件初…

Visual Studio Code:让你的工作效率飞升的秘密武器

在现代软件开发环境中,效率已成为每个开发者追求的目标。而在众多编程工具中,Visual Studio Code(简称VS Code)凭借其强大的功能、轻量的界面和高度的可定制性,成为了全球开发者的首选。无论你是编写前端代码、后端服务…

软考(计算机技术与软件专业技术资格(水平)考试)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

SpringBoot教程(十五) | SpringBoot集成RabbitMq(消息丢失、消息重复、消息顺序、消息顺序)

SpringBoot教程(十五) | SpringBoot集成RabbitMq(消息丢失、消息重复、消息顺序、消息顺序) RabbitMQ常见问题解决方案问题一:消息丢失的解决方案(1)生成者丢失消息丢失的情景解决方案1&#xf…

C++三位状态比较排序

数组相同元素个数及按序 void 交换3个数升(int& A, int& B, int& C, bool& k) {int J 0;if (B > A&&A > C)J C, C B, B A, A J, k true;//231else if (C > A&&A > B)J A, A B, B J, k true;//213else if (A > B&a…

使用python+opencv解析图像和文本数据

1. 创建虚拟环境 新建文件夹, 并在文件夹中创建虚拟环境,可以使用Vscode打开文件夹, 然后在终端中输入以下命令: python -m venv venv2. 激活虚拟环境 在终端中输入以下命令: venv\Scripts\activate3. 安装依赖 在终端中输入以下命令: pip install opencv-pythonpip inst…

ArmSoM CM5 RK3576核心板推出,强势替代树莓派CM4

ArmSoM团队隆重推出全新的CM5 RK3576核心板,这款模块专为嵌入式开发者设计,凭借其强大的性能与丰富的扩展性,完美替代树莓派CM4,成为开发者们的理想选择。 CM5核心板采用了先进的RK3576 SoC,凭借卓越的计算能力和出色…

MapSet之二叉搜索树

系列文章: 1. 先导片--Map&Set之二叉搜索树 2. Map&Set之相关概念 目录 前言 1.二叉搜索树 1.1 定义 1.2 操作-查找 1.3 操作-新增 1.4 操作-删除(难点) 1.5 总体实现代码 1.6 性能分析 前言 TreeMap 和 TreeSet 是 Java 中基于搜索树实现的 M…

第一个搭建SpringBoot项目(连接mysql)

首先新建项目找到Spring Initializr 我使用的URL是https://start.spring.io这里最低的JDK版本是17,而且当网速不好的时候可能会显示超时,这里可以选用阿里云的镜像https://start.aliyun.com可以更快一些但是里面还是有一些区别的 我们这里选择Java语言&a…

2024 数学建模高教社杯 国赛(A题)| “板凳龙”舞龙队 | 建模秘籍文章代码思路大全

铛铛!小秘籍来咯! 小秘籍团队独辟蹊径,运用等距螺线,多目标规划等强大工具,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。 抓紧小秘籍&am…

《深度学习》OpenCV轮廓检测 轮廓近似 解析及实现

目录 一、轮廓近似 1、什么是轮廓近似 2、参数解析 1)用法 2)参数 3)返回值 4)代码解析及实现 运行结果为: 二、总结 1、概念 2、轮廓近似的步骤: 一、轮廓近似 1、什么是轮廓近似 指对轮廓进行…

Linux_kernel移植uboot07

一、移植 根据硬件平台的差异,将代码进行少量的修改,修改过后的代码在目标平台上运行起来 移植还需要考虑硬件环境,驱动只需要考虑内核的环境 二、移植内容 1、移植Uboot uboot属于bootloader的一种,还有其他的bootloader&#x…

Qt-常用控件(3)-多元素控件、容器类控件和布局管理器

1. 多元素控件 Qt 中提供的多元素控件有: QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView xxWidget 和 xxView 之间的区别,以 QTableWidget 和 QTableView 为例. QTableView 是基于 MVC 设计的控件.QTableView 自身不持有数据,使用 QTableView 的…

欧拉系统安装 NVIDIA 显卡驱动

1、安装显卡驱动编译工具 yum install gcc make kernel-devel 2、安装显卡驱动依赖包 yum install vulkan-loader 可选安装项,不安装该系统包时会出现以下警告提示,但不影响安装和使用。 3、安装 NVIDIA GPU 驱动 生产环境建议选择 .run 格式的驱动…

Autoware 定位之初始姿态输入(九)

0. 简介 这一讲按照《Autoware 技术代码解读(三)》梳理的顺序,我们来说一说Autoware中的初始化操作,这个软件包当中完成了ekf_localizer发送初始姿态的包。它接收来自GNSS/用户的粗略估计的初始姿态。将姿态传递给ndt_scan_match…

[数据集][目标检测]石油泄漏检测数据集VOC+YOLO格式6633张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6633 标注数量(xml文件个数):6633 标注数量(txt文件个数):6633 标注…

解决Django会话中的竞态条件

Django 会话中的竞态条件(race condition)问题通常发生在多个请求几乎同时修改同一个会话数据时,导致数据丢失或数据不一致。这种情况在需要频繁更新会话数据的场景(如实时聊天应用、并发请求处理等)中尤为常见。 1、问…

CentOS 7 docker 部署遇到内网通,外网不通 问题

CentOS 7 docker 部署遇到内网通,外网不通 问题 [rootlocalhost ~]# systemctl status network ● network.service - LSB: Bring up/down networkingLoaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)Active: failed (Result: exit-code) …

9-6springboot该如何学习

这阶段如何学习 javase:面向对象OOP mysql:持久化 htmlcssjsjquery框架:视图(框架不熟练),css不好 javaweb:独立开发MVC三层架构的网站:原始 ssm:框架:简化了我们的…