理解GCN

news2024/11/29 4:30:00
一、从CNN到GNN

1、CNN可被视为一类特殊的GNN,相邻节点大小顺序固定的GNN。

2、利用消息传递进行节点分类的例子:

在这里插入图片描述

给定上面的图,和少量已经分类的节点(红&绿),对剩余其他节点进行分类,这是一个半监督机器学习问题,使用关系分类(Relational Classification)的方法对其进行分类。

第1步:初始化,红色和绿色节点的概率分别标为0和1,其他未知节点的概率初始值为0.5。

在这里插入图片描述

第2步:第一次迭代,节点3的邻居1、2、4的均值为(0.5+0+0)/3 = 0.17,将该值从0.5更新至0.17。

第3步:第二次迭代,节点4的邻居1、3、5、6的均值为(0+0.17+0.5+1)/4=0.42,将该值从0.5更新至0.42。

第4步:第三次迭代,节点5的邻居4、6、7、8的均值为(0.42+1+1+0.5)/4=0.73,将该值从0.5更新至0.73。

第5步:第四次迭代,节点8的邻居5、6、7的均值为(0.73+1+1)/3=0.91,将该值从0.5更新至0.91。

第6步:第五次迭代,节点9的邻居7的均值为1,将该值从0.5更新至1。

在这里插入图片描述

第7步:重复第2-6步,进行第二轮迭代,节点9收敛。

在这里插入图片描述

第8步:重复第2-6步,进行第三轮迭代,节点8收敛。

在这里插入图片描述

第9步:重复第2-6步,进行第四轮迭代,节点3、4、5收敛。

在这里插入图片描述

第10步:概率大于0.5的节点,分类为绿,反之分类为红。显然,节点4以及其左侧的节点都是绿,节点1-3为红。

消息传递的实现非常简单,只要右乘邻接矩阵即可。

关系分类法比较简单,没有利用到节点特征,也不能保证收敛,但可以比较形象地说明消息传递的过程。

二、理解GCN

传统上,GNN被分为两大类:空间的(Spatial)和谱(Spectrum)的,前者通过消息交换进行节点嵌入更新,后者则通过傅里叶变换到频域进行处理再逆变换。

空间GNN的信息交换无外乎是节点嵌入(向量)和邻接矩阵的简单矩阵乘法而已。

以无权无向图与其所对应的邻接矩阵为例说明:

在这里插入图片描述

在这里插入图片描述

为了方便,假设每个节点的值就等于节点的编号(也可以是其他值),邻接矩阵A乘以节点值向量(对应于GCN的特征向量X)就等于进行了一次消息交换。

在这里插入图片描述

结果向量中的6表示节点0的三个相邻节点的值的和,2表示节点1的两个相邻节点的值的和,以此类推。

然而,节点0存在3个邻居,而节点3只有1个邻居,上面的矩阵乘法会导致邻居多的节点在消息交换后的值倾向于比较大,不太合理,因此以均值代替求和更合理。一种实现这种均值消息交换的方法是使用度矩阵D,度矩阵是对角矩阵,对角线表示了每个节点存在几个邻居,其余位置均为0。

在这里插入图片描述

将A除以度数,也就是乘以D的逆矩阵:

在这里插入图片描述

注意到每行的和都等于1,第1行表示节点0有3条边,与节点2、3、4相连,故都是1/3,;第4行表示节点3只有1条边与节点0相连,故为1。

在这里插入图片描述

于是得到了聚合函数(Aggregation Function)为均值的消息交换的结果。

在这里插入图片描述

三、理解论文《Nettack》中的2 PRELIMINARIES部分

在论文《Nettack》中,隐藏层的定义:

在这里插入图片描述

若使用只有一层隐藏层的GCN,则:

在这里插入图片描述

优化目标是最小化交叉熵损失函数来进行节点分类:最小化——L(θ;A,X)

在这里插入图片描述

四、References
  • 理解图神经网络:从CNN到GNN:https://zhuanlan.zhihu.com/p/463666907

  • 理解GCN关键(上):消息传递即邻接矩阵乘以节点嵌入:https://zhuanlan.zhihu.com/p/507469979

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

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

相关文章

C语言 do while 循环语句练习 中

练习: 4.编写代码,演示多个字符从两端移动,向中间汇聚 // 编写代码,演示多个字符从两端移动,向中间汇聚 //welcome to china!!! //w ! //we !! //wel !!! //.... //welco…

三、docker配置阿里云镜像仓库并配置docker代理

一、配置阿里云镜像仓库 1. 登录阿里云官网,并登录 https://www.aliyun.com/ 2. 点击产品 - 容器 - 容器与镜像服务ACR - 管理控制台 - 镜像工具 - 镜像加速器 二、配置docker代理 #1. 创建docker相关的systemd文件 mkdir -p /etc/systemd/system/docker.servic…

均匀采样信号的鲁棒Savistky-Golay滤波(MATLAB)

S-G滤波器又称S-G卷积平滑器,它是一种特殊的低通滤波器,用来平滑噪声数据。该滤波器被广泛地运用于信号去噪,采用在时域内基于多项式最小二乘法及窗口移动实现最佳拟合的方法。与通常的滤波器要经过时域-频域-时域变换…

Linux操作系统的引导过程

系统初始化进程与文件、systemd概述、单元类型、切换运行级别、查看系统默认默认运行、永久切换、常见的系统服务(centos)-CSDN博客 centos 7系统升级内核(ELRepo仓库)、小版本升级、自编译内核-CSDN博客 ss命令详细使用讲解文…

Zigbee智能家居数据中心:微信小程序实时掌控家居传感器信息

摘要: 本文将介绍如何构建一个基于Zigbee和微信小程序的智能家居网关,实现对家居传感器数据的采集、汇总和展示。用户可通过微信小程序实时查看家中温湿度、光照等环境数据,为智能家居系统提供数据支撑。 关键词: Zigbee&#xf…

Docker简单入门

docker简单入门 🤚我的博客🥛前言 docker安装🔷常见命令镜像命令容器命令其他命令 docker部署mysql容器docker数据卷🔷挂载数据卷🔷本地目录挂载 创建一个自定义Docker镜像🔷镜像文件🔷构建镜像…

逻辑图框架图等结构图类图的高效制作方式不妨进来看看

**逻辑图框架图等结构图类图的高效制作方式不妨进来看看** 基于我们每天都在处理大量的数据和信息。为了更清晰地理解和传达这些信息,结构图、逻辑图和框架图等可视化工具变得越来越重要。然而,如何高效地制作这些图表并确保其准确性和易读性呢&#xf…

UCOS-III 任务同步机制-信号量

1. 信号量类型 1.1 二值信号量(Binary Semaphores) 二值信号量只有两个状态:可用(1)和不可用(0)。它主要用于任务之间的互斥访问或者事件通知。例如,当一个任务完成某个操作后&am…

浏览器打不开网页、但是电脑有网络,解决办法(win11)

2023.07.06测试有效 华为电脑拿去免费拆机保养后,发现浏览器连接不上网了,但是!微信又能登录得上,也就是说电脑还是有网的。 原文链接 一、问题截图 二、解决方法 1.右键打开“网络和Internet设置” 2.打开“代理” 3.将该选项设…

匠心传承 筑梦大兴 大兴区餐饮行业职工职业技能竞赛完美收官

隆重举行,北京市商务局二级调研员林英杰,大兴区商务局党组书记、局长王丽娜,区总工会二级调研员侯月海,区商务局副局长、工会主席兰莉及各区县餐饮行业协会相关负责人、获奖单位、参赛职工等160余人参加大会。 此次竞赛通过前期调…

东莞惠州数据中心机房搬迁方案流程

进入21世纪以来,数据中心如雨后春笋般在各行各业兴建起来,经过近20年的投产运行,大量的数据中心机房存在容量不足、机房陈旧、设备老化无法支撑业务发展的情况,产生机房改造、搬迁需求。为安全、可靠地完成机房搬迁,减…

Unity中使用VectorGraphics插件时,VectorUtils.RenderSpriteToTexture2D方法返回结果错误的解决方法

Unity中使用VectorGraphics插件时,如果使用VectorUtils.BuildSprite方法创建Sprite,那么得到的Sprite往往是一个三角网格数比较多的Sprite,如果想要得到使用贴图只有两个三角面的方形Sprite,可以使用该插件提供的VectorUtils.Rend…

pandas读取CSV格式文件生成数据发生器iteration

背景 数据集标签为csv文件格式,有三个字段column_hander [‘id’, ‘boneage’, ‘male’],需要自己定义数据集。文件较大,做一个数据发生器迭代更新数据集。 实现模板 在Pandas中,可以使用pandas.read_csv函数读取CSV文件&…

TTS文本转声音:fish-speech 推理、requests访问接口案例

参考: https://hub.docker.com/r/lengyue233/fish-speech https://speech.fish.audio/inference/#http-api 下载 下载模型: HF_ENDPOINT=https://hf-mirror.com huggingface-cli download fishaudio/fish-speech-1.2 --local-dir checkpoints/fish-speech-1.2下载的内容有…

HTML5使用<pre>标签:保留原始排版方式

在网页创作中,一般是通过各种标记对文字进行排版的。但是在实际应用中,往往需要一些特殊的排版效果,这样使用标记控制起来会比较麻烦。解决的方法就是保留文本格式的排版效果,如空格、制表符等。 如果要保留原始的文本排版效果&a…

How to use Solr as retriever in RAG

题意:怎样在 RAG 中使用 Solr 作为检索器 问题背景: I want to build a RAG (Retrieval Augmented Generation) service with LangChain and for the retriever I want to use Solr. There is already a python package eurelis-langchain-solr-vectors…

ABB机器人Socket 通讯相关指令

ABB机器人进行Socket 通讯时,首先需要安装PC Interface选项。以下对Socket 通讯时用到的相关指令做出介绍。 一、指令 1、socketdev Socketdev(socket device),套接字设备是另一台网络计算机通讯链路的处理器。用于同其他网络计…

单链表在Python中的实现技巧

更多Python学习内容:ipengtao.com 链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据域和一个指向下一个节点的指针。链表的优点是插入和删除操作非常高效,特别是在需要频繁修改数据结构的情况下。本文将详细介绍…

【深度学习】-WASB-调试说明

要改这么几个地方: 代码仓库:/Desktop/code/python_project/WASB-SBDT-main/ 篮球数据集xx_xx_11.xml只保留最后一个11.xml 并把11下直接放置11 video: 这里的东西被我改了,要以仓库为准

openssh版本升级实战(修补ssh漏洞)基于RedHat8.4版本测试--已成功升级

升级前具有漏洞的的版本 通过命令查看目前系统的ssh和sshd版本: ssh -V sshd -V 注意:由于ssh是远程连接服务器的功能,在进行下面操作升级openssh前,请打开多个连接会话保持,如升级失败,可通过已连接的会话…