当前位置: 首页 > news >正文

PyTorch图神经网络(五)

PyTorch图神经网络(五)

1.WL测试

​ 之前讲了用图神经网络对节点进行分类,这里则是对图进行分类,思路来自于WL测试。WL测试旨在构建图的规范形式,具体做法为:

​ 1.一开始对每个节点赋予相同的颜色或者标签

​ 2.每个节点拼接自己和邻居的标签(原文说的聚合可能会产生误解)

​ 3.结果被输入到生成新颜色的哈希函数中

​ 4.每个节点拼接自己和邻居的新颜色

​ 5.重复步骤直到不会有节点改变颜色

​ 如果两个图不共享相同的颜色,说明他们是不同构的;但是如果共享颜色,也不能说明他们就是同构的,只能说有同构的可能。

​ 在聚合的过程中,文中说了使用求和聚合器的效果会比另外两种更好,因为如果想要使用其他聚合器,在初始赋值阶段就不能对每一个点赋同样的值了,表达能力也会更差,

2.GIN

​ 图分类是基于图神经网络生成的节点嵌入来实现的,有以下三种方法:

​ 1.全局平均池化:对每个节点的嵌入取平均

​ 2.全局最大值池化:对每个节点维度选取最高值

​ 3.全局求和池化:对每个节点嵌入求和

​ 从上面可知,全局求和池化会比其他两种技术要更好。GIN的作者指出,要考虑所有结构信息,因此,书中的做法为连接每一层神经网络产生的节点嵌入的总和。具体的实现,得看书中给出的使用GIN对图进行分类的代码。

​ 注意,PROTEINS数据集中,不仅仅包含了图的特征,每个节点也会有自己的特征。代码中GINConv里面的语句都是对节点的特征进行转换的。

​ 代码中,使用GCN和GIN最大的区别就是,GCN是使用归一化和邻接矩阵来聚合信息的,而GIN是通过求和聚合+多层感知机来聚合特征。并且,GCN之选用了最后一层的节点的特征,GIN把每一层节点的特征都融合了。这样看似网络的学习能力更加丰富了,文字得到的结果也是GIN更好。实际自己运行的时候可能会出现两个网络的准确率相差不大的情况,可能GIN的网络复杂后也会导致更难学习。

http://www.hskmm.com/?act=detail&tid=15039

相关文章:

  • java
  • Jordan块新解
  • [CSP-S 2024] 染色
  • Kerberos 安装和使用
  • 第一次个人编程任务
  • 概率期望总结
  • redis实现秒杀下单的业务逻辑
  • 关于边缘网络+数据库(1)边缘网络数据库模式及选型
  • 题解:B4357 [GESP202506 二级] 幂和数
  • 2025年9月23日 - 20243867孙堃2405
  • 2025.9.23
  • 软件工程学习日志2025.9.23
  • markdown 使用指南
  • 第6.2节 Android Agent制作<三>
  • LVS 服务器 知识
  • 07-django+DRF项目中统一json返回格式 - 详解
  • 软工第二次作业——个人项目
  • 近十年 CSP-J 复赛知识点分布表
  • AT_arc181_d [ARC181D] Prefix Bubble Sort
  • 【MySQL】使用C/C++链接mysql数据库 - 指南
  • 枚举子集
  • cv-css 快捷方式,将指定节点的计算样式获取下拉 获取tailwind网页样式成原生样式
  • day002
  • PyTorch图神经网络(四)
  • 软件工程:构建数字世界的基石
  • Avalonia 学习笔记07. Control Themes(控件主题)
  • matter 协议的架构;
  • matter 协议解析;
  • 9月23日
  • Nordic 的支持对Matter 协议的支持;