论文精度系列之详解图神经网络

news2024/11/24 17:05:50

论文地址:A Gentle Introduction to Graph Neural Networks

翻译:图表就在我们身边;现实世界的对象通常根据它们与其他事物的连接来定义。一组对象以及它们之间的连接自然地表示为图形。十多年来,研究人员已经开发了对图数据进行操作的神经网络(称为图神经网络或GNN)。最近的发展提高了他们的能力和表现力。我们开始在抗菌发现、物理模拟、假新闻检测、交通预测和推荐系统等领域看到实际应用。

本段介绍了文章的架构主要分为:

  • 1、什么数据可以表示为一张图
  • 2、图与其他数据的不同之处
  • 3、构建一个GNN
  • 4、提供一个GNNplayground

用来了解GNN模型每个组件如何对其做出的预测做出贡献

作者将图像视为带有图像通道的矩形网格,将它们视为数组。 另一种将图像视为具有规则结构的图形,其中每个像素代表一个节点,并通过边缘连接到相邻像素。每个无边界像素正好有8个邻居,存储在每个节点上的信息是一个三维向量,表示像素的RGB值。

后面还有文本作为图形、分子作为图形、社交网络作为图表

 这里作者说明在图上有三种常规类型的预测任务:图级、节点级与边级

图形级任务:主要目标是预测整个图的属性。

节点级任务:主要是预测图形中每个节点的身份或角色

边缘级任务:主要是对于图像场景的理解

 这段说明利用神经网络来解决不同的图任务时,首要问题是如何表示与神经网络兼容的图

这里说明图表中最多有四类信息:节点、边、全局上下文与连通性

其中图形的连通性是最难的最复杂的,因为使用邻接矩阵,很容易发生张量而且会导致邻接矩阵非常稀疏,空间效率低下。另外就是,并不能保证这些不同的矩阵会在深度神经网络中产生相同的结果。

规范化存储图的不同信息:

这段主要解释了GNN(Graph Neural Networks)是是对图的所有属性(节点、边、全局上下文)的  可优化转换,它保持了图对称性(排列不变性)。同时GNN的输入是一个图,输出也是一个图。

GNN会对节点、边等进行变换,但不会改变图形的连接性

一个简单的GNN模型:

 输入一个图进入一系列的GNN层,输出一个保持了整个图结构的输出但是里面所有的属性已经发生的变换,最后根据你要对哪个属性做预测添加合适的输出层但如果确缺失信息的话加入合适的汇聚层。

 这段说明我们通过GNN层中使用汇聚(池化)来做出更复杂的预测,可以使用信息传递来做到.

信息传递的三个步骤:

  • 1、对于图中的每个节点,收集所有相邻节点嵌入(或消息),即g功能如上所述。
  • 2、通过聚合函数(如 sum)聚合所有消息。
  • 3、所有汇集的消息都通过更新函数传递,通常是学习的神经网络

 这里作者说我们描述的网络存在一个缺陷:图中彼此相距很远的节点可能永远无法有效地相互传递信息,即使我们应用了多次消息传递。

为了解决上述问题,这里加入了一个主节点(这个点可以跟所有的点、边相连),是一个虚拟的点。

对于一个节点,我们可以考虑来自相邻节点、连接边缘和全局信息的信息。为了在所有这些可能的信息源上设置新节点嵌入的条件,我们可以简单地将它们连接起来。此外,我们还可以通过线性映射将它们映射到同一空间并添加它们或应用特征调制层,这可以被认为是一种特征化注意力机制。

GNN 中的采样图和批处理

训练神经网络的常见做法是使用根据训练数据(小批次)的随机常量大小(批量大小)子集计算的梯度来更新网络参数。由于相邻的节点和边的数量存在可变性,这种做法对图提出了挑战,这意味着我们不能有一个恒定的批量大小。使用图进行批处理的主要思想是创建保留较大图的基本属性的子图。此图形采样操作高度依赖于上下文,并涉及从图形中子选择节点和边。这些操作在某些上下文(引文网络)中可能有意义,而在另一些上下文中,这些操作可能太强(分子,其中子图只是表示一个新的,更小的分子)。如何对图表进行采样是一个悬而未决的研究问题。如果我们关心在邻域级别保留结构,一种方法是随机抽取统一数量的节点,即我们的节点集然后将距离 k 的相邻节点添加到节点集附近,包括它们的边。每个邻域都可以被视为一个单独的图,并且可以在这些子图的批次上训练GNN。可以屏蔽损失以仅考虑节点集,因为所有相邻节点都具有不完整的邻域。 更有效的策略可能是首先随机抽样单个节点,将其邻域扩展到距离 k,然后在扩展集中选择另一个节点。一旦构造了一定数量的节点、边或子图,这些操作就可以终止。 如果上下文允许,我们可以通过选择一个初始节点集,然后对恒定数量的节点进行子采样(例如随机,或通过随机游走或 Metropolis 算法)来构建恒定大小的邻域。

图注意力网络

在图形属性之间传递信息的另一种方式是通过注意力(权重取决于两个顶点向量的关系,不再是顶点的位置)。例如,当我们考虑节点及其 1 度相邻节点的总和聚合时,我们也可以考虑使用加权和。那么的挑战是以排列不变的方式关联权重。

结论:

先介绍了一下什么是图,图的属性应该用向量来表示,现实中的数据怎么表示为图,怎么样对图(点、边、全局)上做预测。简单说明了GNN的定义,假设属性有缺失做聚合操作,把边的属性或者点的属性拿过来。然后说明了真正意义上的GNN 。就是在每一层里面通过汇聚把整个图的信息传递过来。接下来就是对实验的可视化,进行漂亮的可视化。

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

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

相关文章

二叉树题目:从根到叶的二进制数之和

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:从根到叶的二进制数之和 出处:1022. 从根到叶的二进制数之和 难度 3 级 题目描述 要求 给你二叉树…

vue权限按钮的实现

鉴权函数 由于下面几种方式都需要用到鉴权函数,所以将其放置在组件外面,供组件或其他文件调用。 // src/utils/hasPermission.jsimport { usePermissionStore } from /stores import array from lodash/array export const hasPermission (value, def…

火车头采集文章批量伪原创【php源码】

火车头采集是一款基于Python语言开发的网络爬虫工具&#xff0c;用于快速高效地从互联网上采集数据并存储到本地或远程数据库。它简单易用且功能强大&#xff0c;在各行各业广泛应用。 火车头采集器AI伪原创PHP源码&#xff1a; <?php header("Content-type: text/h…

C# WPF项目创建(基于VS 2019介绍)

1.打开VS&#xff0c;选择《创建新项目》 2.选择《WPF应用程序》&#xff0c;如图 3. 项目名称根据需求自行命名&#xff0c;这边以“WpfApp1”来命名&#xff0c;位置自行选择&#xff0c;这边选择了"E:\test"&#xff0c;如图所示&#xff0c;“将解决方案和项目…

【广州华锐互动】VR模拟灭火逃生体验系统

VR模拟灭火逃生体验系统由广州华锐互动开发&#xff0c;是一种基于虚拟现实技术的应急演练与培训系统&#xff0c;可以真实模拟消防逃生场景&#xff0c;让体验者在沉浸式的虚拟环境中&#xff0c;根据正确的消防逃生方法提示&#xff0c;进行自救演练。这种科学普及方法是更加…

datafree KD CVPR2023 学习笔记(Abstract)

这个 是摘要的前部分 摘要 简单的提及 无数据的蒸馏 是怎么样的 和普通的蒸馏有一个本质的区别&#xff1a;没有训练数据 很火啊 最近 在对抗性的蒸馏框架中呢 存在一个问题 由于多个生成器生成的 非平稳分布的pseudo-samples 导致了学生网络的性能不好 提出一个解决方案的i…

Docker——数据管理与网络通信

Docker——数据管理与网络通信 一、Docker 的数据管理1&#xff0e;数据卷2&#xff0e;数据卷容器 二、端口映射三、容器互联&#xff08;使用centos镜像&#xff09;四、Docker 镜像的创建1&#xff0e;基于现有镜像创建1.1 首先启动一个镜像&#xff0c;在容器里做修改1.2 然…

如何搭建使用dubbo-Admin?

dubbo-Admin介绍 一款用于dubbo可视化界面操作的管理平台 dubbo-Admin特点 dubbo-Admin是dubbo的管理界面平台&#xff0c;且是一个前后端分离的项目&#xff0c;前端使用vue&#xff0c;后端使用springboot。 软件下载 dubbo-admin-0.5.0.zip 软件使用

Java文件的相对路径规则

前言 最近做项目&#xff0c;又涉及到Linux Java文件的相对路径&#xff0c;但是相对路径在不同的服务器或者docker上居然不一样&#xff0c;这个就很难受&#xff0c;只能用绝对路径解决&#xff0c;因为绝对路径是固定的路径&#xff0c;但是相对路径为什么会在不同的服务器…

将pdf转换成word怎么转换?掌握这几个转换方法就够了

将pdf转换成word怎么转换&#xff1f;将 PDF 转换成 Word 文档是一个常见的需求&#xff0c;我们需要编辑 PDF 文件中的文字内容&#xff0c;但是 PDF 文件并不方便直接编辑。下面介绍几个转换方法。 方法一&#xff1a;使用迅捷 PDF 转换器 这是一款专业的 PDF 转换工具&…

【2023】HashMap详细源码分析解读

前言 在弄清楚HashMap之前先介绍一下使用到的数据结构&#xff0c;在jdk1.8之后HashMap中为了优化效率加入了红黑树这种数据结构。 树 在计算机科学中&#xff0c;树&#xff08;英语&#xff1a;tree&#xff09;是一种抽象数据类型&#xff08;ADT&#xff09;或是实作这种…

2023年深圳杯数学建模 D题 基于机理的致伤工具推断

致伤工具的推断一直是法医工作中的热点和难点。由于作用位置、作用方式的不同&#xff0c;相同的致伤工具在人体组织上会形成不同的损伤形态&#xff0c;不同的致伤工具也可能形成相同的损伤形态。致伤工具品种繁多、形态各异&#xff0c;但大致可分为两类&#xff1a;锐器&…

结构体——位段

//结构体--位段 &#xff08;位 指二进制位 &#xff09; // 位段的声明与结构体是类似的 // 1&#xff0c;位段的成员必须是 int &#xff0c;unsigned int 或 signed int // 2&#xff0c;位段的成员名后边有一个冒号和一个数字。&#xff08;数字表示开辟需要的比特位个数&a…

【【51单片机的温度识别】】

51单片机的温度识别 这么热的天&#xff0c;再离我远一点 DS18B20温度读取 温度报警 我们这里对于单总线 也仿照I2C 总线的模样 以下是我们实现的onewire.c文件 #include <REGX52.H> //第一步从原理图触发先定义端口sbit OneWire_DQP3^7;//第一步初始化unsigned char…

商城-学习整理-基础-前端(四)

目录 一、技术栈介绍二、ES61、简介2、什么是ECMAScript3、ES6 新特性1、let 声明变量2、const 声明常量&#xff08;只读变量&#xff09;3、解构表达式1&#xff09;数组解构2&#xff09;对象解构 4、字符串扩展1&#xff09;、几个新的 API2&#xff09;、字符串模板 5、函…

跨洋消息队列CKafka

背景 跨洋消息队列CKafka&#xff0c;是腾讯出品开源消息队列组件&#xff0c;为了解决客户跨地域容灾、冷备的诉求跨地域秒级准实时数据同步而开源的腾讯云中间件。 整体架构图 数据同步主要流程 Connect 集群初始化 Connect Task&#xff0c;每个 Task 会新建多个 Worker C…

3D元宇宙游戏,或许能引爆新的文娱消费增长点

从去年开始&#xff0c;在互联网上&#xff0c;一个名为【神念无界-源起山海】的元宇宙游戏项目火了。除了可以在游戏内体验独战、团队式作战等3D古风经典游戏场景和玩法&#xff0c;还有钓鱼增加能量、情侣姻缘一线牵&#xff0c;结婚等多元化逼真效果与玩法&#xff0c;这令很…

第118天:免杀对抗-二开CS上线流量特征Shellcode生成机制反编译重打包(上)

知识点 #知识点&#xff1a; 1、CS-表面特征消除 2、CS-HTTP流量特征消除 3、CS-Shellcode特征消除#章节点&#xff1a; 编译代码面-ShellCode-混淆 编译代码面-编辑执行器-编写 编译代码面-分离加载器-编写 程序文件面-特征码定位-修改 程序文件面-加壳花指令-资源 代码加载面…

opencv-21 alpha 通道详解(应用于 图像增强,合成,蒙版,特效 等)

什么是alpha 通道&#xff1f; Alpha通道是计算机图形学中用于表示图像透明度的一种通道。在一个图像中&#xff0c;通常会有三个颜色通道&#xff1a;红色&#xff08;R&#xff09;、绿色&#xff08;G&#xff09;、蓝色&#xff08;B&#xff09;&#xff0c;它们合在一起…

将Parasoft和ChatGPT相结合会如何?

ChatGPT是2023年最热门的话题之一&#xff0c;是OpenAI训练的语言模型。它能够理解和生成自然语言文本&#xff0c;并接受过大量数据的训练&#xff0c;包括用各种编程语言编写的许多开源项目的源代码。 软件开发人员可以利用大量的知识库来协助他们的工作&#xff0c;因为它具…