文章目录

  • 一、Graph Attention Network
    • 1.1 图注意力机制作用与方法
    • 1.2 Attention计算
    • 1.3 Graph Attention 做了什么
  • 二、序列图神经网络TGCN
    • 2.1 序列图神经网络TGCN的应用
    • 2.2 序列图神经网络细节(实例:交通流量预测)
      • 2.2.1 交通场景示意图
      • 2.2.2 根据道路和传感器构建图
      • 2.2.3 构建序列输入
      • 2.2.4 套用RNN模型

本文为学习产物,学习链接(如有侵权,请告知删除):
人工智能【图神经网络实战】教程,让你一天就学会深入浅出图神经网络GNN,从入门到精通!


一、Graph Attention Network

1.1 图注意力机制作用与方法

图中的注意力机制相当于在某个点进行特征重构时,其邻接点都加上一个权重,使得其在重构特征时受权重较大的邻接点影响更大,起到注意力的效果。

1.2 Attention计算

如下所示,权重参数a的计算是我们最应该关注的点


权重参数a怎么计算呢?

最简单的方法如下:

假设图中节点1、节点2、节点3的特征向量分为为A1、A2、A3

a12 = A1 与 A2 的内积 ; a13 = A1 与 A3的内积

再对a12和a13进行softmax操作即可得到两条边的权重参数啦!

稍微复杂一点的方法如下:

例如我们要计算权重参数a12

  • 我们可以将A1和A2拼接为一个一维行向量
  • 然后令其右乘一个可训练的参数(同长度的一维列向量,可以看作输入为行向量长度输出为1的一个全连接层)
  • 然后再连接LeakyRelu激活函数确保其为非负值
  • 最后连接softMax激活函数进行归一化。

这样随着训练,权重参数的计算会越来越“准确”

1.3 Graph Attention 做了什么

其实就是对邻接矩阵进行了加权。权重越大,网络就越“注意”它。


二、序列图神经网络TGCN

2.1 序列图神经网络TGCN的应用

左图展示的是静态图,随着时间的变化,其图的邻接矩阵不发生改变(图的结构不变)

右图展示的是动态图,随着时间的变化,其图的邻接矩阵也在变化(图的结构在变)

对于动态图,传统的GNN就不太好用了,想想在时间序列数据上我们最常用的网络是什么?没错,是RNN。

所以,将GNN套用在RNN上,就构成了这一章的主角:序列图神经网络TGCN


下面,让我们来看看TGCN的具体应用场景:

  • 交通的预测(交通路线不是固定的,可能明天就有一条新路通车了,或者有一条路被封闭了)
  • 疾病的蔓延(一方面有地区交通决定,一方面由蔓延时间所决定)
  • 手势识别(手的关节点是一个图,随着时间的变化,图会改变)

2.2 序列图神经网络细节(实例:交通流量预测)

2.2.1 交通场景示意图

2.2.2 根据道路和传感器构建图

2.2.3 构建序列输入

由于传感器上的数值不是固定的,而是随着时间的变化而变化的(例如,每5分钟更新采集一次当前车流量数据),所以我们还需要考虑时间序列,例如我们可以这样构造序列输入:

2022-10-06 :[45,8,9,775,56,3]
2022-10-07 :[24,5,6,33,44,24]
2022-10-08 :[78,3,1,498,65,7]

2.2.4 套用RNN模型

如何套用RNN模型呢?

最简单的思路是:我们可以将每个时刻的序列先送入GCN进行特征提取,然后再将提取后的特征送入GRU单元往后传递,依此类推。最后,用末尾的GRU单元的输出进行分类或者回归任务。

【图神经网络实战】深入浅出地学习图神经网络GNN(下)相关推荐

  1. 【图神经网络实战】深入浅出地学习图神经网络GNN(上)

    文章目录 一.图神经网络应用领域 1.1 芯片设计 1.2 场景分析与问题推理 1.3 推荐系统 1.4 欺诈检测与风控相关 1.5 知识图谱 1.6 道路交通的流量预测 1.7 自动驾驶(无人机等场 ...

  2. python神经网络教程16_Python深度学习之神经网络视频

    Python深度学习之神经网络视频 课程简介 该阶段是深度学习的入门课程,主要介绍经典的深度学习框架TensorFlow的使用,IO操作,以及神经网络基础.卷积神经网络的相关知识,并用卷积神经网络原理 ...

  3. 【干货书】图机器学习,带你学习图数据的机器学习处理技术与实战案例

    来源:专知 本文为书籍推荐,建议阅读5分钟读完这本机器学习的书,你将学习图论的基本概念和所有用于构建成功的机器学习应用程序的算法和技术. 图机器学习将向您介绍一组用于处理网络数据的工具,并利用实体之间 ...

  4. 神经网络实战--使用迁移学习完成猫狗分类

    前言: Hello大家好,我是Dream. 今天来学习一下如何使用基于tensorflow和keras的迁移学习完成猫狗分类,欢迎大家一起前来探讨学习~ 本文目录: 一.加载数据集 1.调用库函数 2 ...

  5. python神经网络训练_Python深度学习训练神经网络

    我们现在将学习如何训练神经网络.我们还将学习反向传播算法和Python深度学习中的反向传递. 我们必须找到神经网络权重的最佳值以获得所需的输出.为了训练神经网络,我们使用迭代梯度下降法.我们最初从权重 ...

  6. GCN实战深入浅出图神经网络第五章:基于Cora数据集的GCN节点分类 代码分析

    GCN实战深入浅出图神经网络第五章:基于Cora数据集的GCN节点分类 代码分析 文章目录 GCN实战深入浅出图神经网络第五章:基于Cora数据集的GCN节点分类 代码分析 SetUp,库声明 数据准 ...

  7. 图表示学习+图神经网络:破解AI黑盒,揭示万物奥秘的钥匙!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 从电信网络到社交网络,从经济网络到生物医学网络--图结构的数据无处 ...

  8. 【赠书】图表示学习+图神经网络:破解AI黑盒,揭示万物奥秘的钥匙!

    ‍‍ 从电信网络到社交网络,从经济网络到生物医学网络--图结构的数据无处不在. 如何提取图的特征,表示或编码图的结构,基于图数据进行学习.推理和归纳变得越来越重要. 因为无论是进行数据挖掘.分析社交网 ...

  9. 【Pytorch神经网络实战案例】21 基于Cora数据集实现Multi_Sample Dropout图卷积网络模型的论文分类

    Multi-sample Dropout是Dropout的一个变种方法,该方法比普通Dropout的泛化能力更好,同时又可以缩短模型的训练时间.XMuli-sampleDropout还可以降低训练集和 ...

最新文章

  1. 最长公共子序列(LCS)问题算法详解+例题(转换成LIS,优化为O(nlogn),看不懂你来打我)
  2. Dependabot:自动创建GitHub PR修复潜在漏洞
  3. mysql 删除数据后myd_Windows下的MySQL删除data文件夹后……
  4. 命令行以及git基础使用
  5. Linux虚拟机最小化安装后转换成图形界面(图文详解)
  6. python汇率编程_【菜鸟学Python】案例一:汇率换算
  7. js isinteger_在JavaScript中使用示例使用Number isInteger()方法
  8. python tcp多个客户端连接服务器
  9. 小米MIX 4 Pro“老底”被掀了,看完很激动!
  10. Luogu-P1018 乘积最大
  11. java方法被编译器调用_我异常了,快来捕获我,Java异常简述
  12. 计算机的mac被交换机绑定,华为交换机绑定IP与MAC地址 -电脑资料
  13. 台式计算机怎么安装无线网卡,台式机装无线网卡,详细教您台式机怎么使用无线网卡上网...
  14. 新增电子信息专硕,中外合作办学!南京信息工程大学
  15. ElasticSearch中文分词,看这一篇就够了
  16. 耀之阳电商:拼多多买家降权是什么意思
  17. STM32F105 UART4 发送异常及解决
  18. 批处理文件语法大全(怎么写Bat文件)
  19. SQL语句的基础教程(二)
  20. 【日语】日语单词 ---- 身体部位

热门文章

  1. JavaScript代码保护浅谈
  2. 计算机毕业设计Android家教平台软件app(源码+系统+mysql数据库+Lw文档)
  3. TI AM5728 SDK升级之 linux设备树解析,以网口cpsw为例
  4. 为“革命”保护视力,每天应做眼保健操!
  5. 湖北二本大学计算机排名,湖北武汉二本大学排最新名2017
  6. 【MAPBOX基础功能】31、实现mapbox的测面功能
  7. 1234有多少种排列组合java_1234分别能组成多少个重复的和不重复的数字,这些数字分别是什么?...
  8. Twain协议部分翻译
  9. c语言中error c2065: c: 未声明的标识符,error C2065: “L”: 未声明的标识符 需要加什么头文件或者声明什么东西...
  10. java判断excel能否正常打开