【图神经网络实战】深入浅出地学习图神经网络GNN(下)
文章目录
- 一、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(下)相关推荐
- 【图神经网络实战】深入浅出地学习图神经网络GNN(上)
文章目录 一.图神经网络应用领域 1.1 芯片设计 1.2 场景分析与问题推理 1.3 推荐系统 1.4 欺诈检测与风控相关 1.5 知识图谱 1.6 道路交通的流量预测 1.7 自动驾驶(无人机等场 ...
- python神经网络教程16_Python深度学习之神经网络视频
Python深度学习之神经网络视频 课程简介 该阶段是深度学习的入门课程,主要介绍经典的深度学习框架TensorFlow的使用,IO操作,以及神经网络基础.卷积神经网络的相关知识,并用卷积神经网络原理 ...
- 【干货书】图机器学习,带你学习图数据的机器学习处理技术与实战案例
来源:专知 本文为书籍推荐,建议阅读5分钟读完这本机器学习的书,你将学习图论的基本概念和所有用于构建成功的机器学习应用程序的算法和技术. 图机器学习将向您介绍一组用于处理网络数据的工具,并利用实体之间 ...
- 神经网络实战--使用迁移学习完成猫狗分类
前言: Hello大家好,我是Dream. 今天来学习一下如何使用基于tensorflow和keras的迁移学习完成猫狗分类,欢迎大家一起前来探讨学习~ 本文目录: 一.加载数据集 1.调用库函数 2 ...
- python神经网络训练_Python深度学习训练神经网络
我们现在将学习如何训练神经网络.我们还将学习反向传播算法和Python深度学习中的反向传递. 我们必须找到神经网络权重的最佳值以获得所需的输出.为了训练神经网络,我们使用迭代梯度下降法.我们最初从权重 ...
- GCN实战深入浅出图神经网络第五章:基于Cora数据集的GCN节点分类 代码分析
GCN实战深入浅出图神经网络第五章:基于Cora数据集的GCN节点分类 代码分析 文章目录 GCN实战深入浅出图神经网络第五章:基于Cora数据集的GCN节点分类 代码分析 SetUp,库声明 数据准 ...
- 图表示学习+图神经网络:破解AI黑盒,揭示万物奥秘的钥匙!
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 从电信网络到社交网络,从经济网络到生物医学网络--图结构的数据无处 ...
- 【赠书】图表示学习+图神经网络:破解AI黑盒,揭示万物奥秘的钥匙!
从电信网络到社交网络,从经济网络到生物医学网络--图结构的数据无处不在. 如何提取图的特征,表示或编码图的结构,基于图数据进行学习.推理和归纳变得越来越重要. 因为无论是进行数据挖掘.分析社交网 ...
- 【Pytorch神经网络实战案例】21 基于Cora数据集实现Multi_Sample Dropout图卷积网络模型的论文分类
Multi-sample Dropout是Dropout的一个变种方法,该方法比普通Dropout的泛化能力更好,同时又可以缩短模型的训练时间.XMuli-sampleDropout还可以降低训练集和 ...
最新文章
- 报告称企业部署Windows 10比此前版本更快
- 连接wifi的主机设置静态ip(固定ip)后无法上网的原因
- 使用RNN解决句子对匹配问题的常见网络结构
- java 调用 ictclas50_1-Ictclas50分词系统ForJava
- Java入门篇 2021/02/22
- vs c语言程序调试方法,VS2015中的常用调试技巧分享
- IBM aix mysql_IBM产品系列和AIX系统版本
- 手把手教你搭建Pytest+Allure2.X环境详细教程 - 01
- python模块相互引用_python中如何相互引用两个包中的模块
- LeetCode ——24. 两两交换链表中的节点
- Java基础---Java---基础加强---类加载器、委托机制、AOP、 动态代理技术、让动态生成的类成为目标类的代理、实现Spring可配置的AOP框架
- error: unknown field ‘ioctl’ specified in initializer
- ppc+安装编译mysql_redhat7ppc安装
- VS2005远程调试
- 计算机编程不等于符号,不等于符号(java)
- 电脑硬盘双击打不开,只能右键打开
- 手机投屏到电脑显示屏
- Linkedin如何避免封号及如何高效管理领英账号
- syn flood攻击原理及防范
- MySQL数据库学习笔记3