首页 > 其他分享 >论文学习:AGCRN

论文学习:AGCRN

时间:2023-10-18 20:13:26浏览次数:29  
标签:论文 frac12 boldsymbol times 学习 AGCRN mathcal 节点

Adaptive Graph Convolutional Recurrent Network for Traffic Forecasting
用于交通预测的自适应图卷积循环网络
会议:NIPS2020
作者:Lei BaiLina YaoCan LiXianzhi WangCan Wang
论文地址:https://dl.acm.org/doi/10.5555/3495724.3497218
代码地址:https://github.com/LeiBAI/AGCRN

复现

GPU: A100

数据集 节点数量 MAE MAPE RMSE epoch 时间消耗(h,min)
PEMS03 358 15.89 14.89 27.98 100 0h50
PEMS04 307 19.54 12.93 31.87 100 0h40
PEMS07 883 21.09 8.97 34.92 100 1h45
PEMS08 170 16.50 10.64 26.52 100 0h25

模型

节点自适应参数学习 NAPL-GCN

原本的GCN为:

\[Z=(I_N+D^{-\frac12}AD^{-\frac12})X\Theta+b \]

作者认为,不同节点模式不同,这种贡献参数\(\Theta\)的方式,只能捕获所有节点共有的信息,忽略了节点自己的信息
因此改为:

\[Z=(I_N+D^{-\frac12}AD^{-\frac12}) XE_{\mathcal{G}} W_{\mathcal{G}} + E_{\mathcal{G}} b_\mathcal G \]

按道理来说,是不能写成矩阵乘法的形式的,因为维数对不上,看看代码咋写的
暂且不考虑代码中的batch数B和切比雪夫阶数K这两个维度,那么\((I_N+D^{-\frac12}AD^{-\frac12})\in R^{N\times N}\),\(X\in R^{N\times C}\),\(E_\mathcal G\in R^{N\times d}\),\(W_\mathcal G\in R^{d\times C\times F}\)。先进行的是前两个\((N\times N)(N\times C)=(N\times C)\)和后两个\((N\times d)(d\times C\times F)=(N\times C\times F)\),然后这两个相乘\((N\times C)(N\times C\times F)=(N\times F)\)。这里最后一个乘法不是常规的矩阵乘法,代码中使用einsum实现。

einsum:如矩阵乘法,可以写成np.einsum('ij,jk->ik', A, B),其中:

  • 在输入数组的标记之间,重复字母表示沿这些轴的值将相乘,这些乘积构成输出数组的值。
  • 从输出标记中省略的字母表示沿该轴的值将被求和。

在上面(NxC)(NxCxF)->(NxF)的实例中,沿C轴的数字对应相乘,并求和。

数据自适应图生成 DAGG

作者认为预定义的图结构与预测任务没有直接关系,会导致很大偏差,因此完全使用自适应的图。直接训练出拉普拉斯矩阵:

\[D^{-\frac{1}{2}}AD^{-\frac{1}{2}}=softmax(ReLU(\boldsymbol{E_A}\cdot\boldsymbol{E_A^T})) \]

其中\(E_A\in \mathbb R^{N\times d_e}\)表示节点嵌入,因此GCN表示成:

\[\boldsymbol{Z}=(\boldsymbol{I_N}+softmax(ReLU(\boldsymbol{E_A}\cdot\boldsymbol{E_A^T})))\boldsymbol{X\Theta} \]

图划分和子图训练的方法很好地解决自适应图生成的训练问题[1]

图划分和子图训练这是什么? 也没在代码上看到相应的部分,感觉像是加速计算的东西,再问问吧~ #不解

自适应图卷积循环网络 AGCRN

集成NAPL-GCN、DAGG和循环门控单元GRU:

\[\begin{aligned} &\tilde{\boldsymbol{A}}=softmax(ReLU(\boldsymbol{EE}^{\boldsymbol{T}})) \\ &z_{\boldsymbol{t}}=\sigma(\widetilde{A}[\boldsymbol{X}_{:,\boldsymbol{t}},\boldsymbol{h}_{\boldsymbol{t}-1}]\boldsymbol{E}\boldsymbol{W}_{\boldsymbol{z}}+\boldsymbol{E}\boldsymbol{b}_{\boldsymbol{z}} \\ &r_{t}=\sigma(\widetilde{A}[\boldsymbol{X}_{:,\boldsymbol{t}},\boldsymbol{h}_{\boldsymbol{t}-1}]\boldsymbol{E}\boldsymbol{W}_{r}+\boldsymbol{E}\boldsymbol{b}_{\boldsymbol{r}} \\ &\hat{\boldsymbol{h}}_{\boldsymbol{t}}=tanh(\widetilde{\boldsymbol{A}}[\boldsymbol{X}_{:,\boldsymbol{t}},\boldsymbol{r}\odot\boldsymbol{h}_{\boldsymbol{t}-1}]\boldsymbol{E}\boldsymbol{W}_{\boldsymbol{\hat{h}}}+\boldsymbol{E}\boldsymbol{b}_{\boldsymbol{\hat{h}}} \\ &h_{t}=z\odot h_{t-1}+(1-\boldsymbol{z})\odot\boldsymbol{\hat{h_{t}}} \end{aligned} \]

实验

对比试验结果:

AGCRN实验结果

作者还用实验寻找最合适的嵌入维数,实验证明是10最好。
作者还对DAGG进行了一些修改,然后比较结果。如去掉GCN公式中的单位矩阵,使用二阶切比雪夫多项式等。

总结

  • 为每个节点单独设置参数的想法很好

  1. section3.3 "Graph partition and sub-graph training methods" ↩︎

标签:论文,frac12,boldsymbol,times,学习,AGCRN,mathcal,节点
From: https://www.cnblogs.com/white514/p/17773089.html

相关文章

  • 《机器学习与优化》PDF高质量正版电子书
    下载:https://pan.quark.cn/s/5fb461be1a45......
  • 论文阅读:Knowledge Distillation via the Target-aware Transformer
    摘要Knowledgedistillationbecomesadefactostandardtoimprovetheperformanceofsmallneuralnetworks.知识蒸馏成为提高小型神经网络性能的事实上的标准。Mostofthepreviousworksproposetoregresstherepresentationalfeaturesfromtheteachertothes......
  • EFCore学习笔记 - 主键
    主键1、自增主键简单,但是不满足分布式,并发性能差long、int等类型主键,默认为自增自增字段的代码中不能为Id赋值,必须保持默认值0,否则运行的时候就会报错因为是数据库生成的值,所以SaveChanges()后会自动把主键的值更新到Id例子:插入帖子后,自动重定向......
  • EF Core学习笔记 - 配置
    约定配置1、主要规则表名采用DbContext中对应的DbSet的属性名数据表列的名字采用实体类属性的名字,列的数据类型采用喝实体类属性类型最兼容的类型,可以自定义设置数据表列的可空性取决于对应实体类属性的可空性名字为Id的属性为主键如果主键为short,int或者lo......
  • 2023/10/18 学习笔记
    VLAN网络vlan——虚拟局域网由于交换机所有的端口都在同一个广播域,只要发送广播会产生大量的垃圾信息,同时会有安全隐患(病毒)。解决这个问题有两种方法:物理解决:需要在交换机之间安装路由器(成本太大)逻辑解决:使用vlan虚拟网络技术vlan的优势:控制广播增强网络安全......
  • 程序设计语言学习1
    一、解释与编译解释器:翻译时不生成独立的目标程序,解释程序和源程序都参与程序运行过程编译器:翻译时独立生成目标程序,源程序和编译程序不再参与目标程序的运行过程二、程序设计语言的成分顺序、选择、循环结构......
  • 程序设计语言学习2
    三、传值与传地址 四、编译、解释与翻译阶段反编译:编译的逆过程,将可执行文件转换成等价的汇编程序(无法获得源程序)源程序—》词法分析-》记号流–》语法分析–》分析树(语法树)–》语义分析  ......
  • [vue]精宏技术部试用期学习笔记 II
    精宏技术部试用期学习笔记(vue)router:vue的模拟路由前置准备安装vue-routerpnpmivue-router@4//安装版本4的vue-router可以在package.json文件中查看依赖"dependencies":{"vue":"^3.3.4","vue-router":"4"//这里},新建文件夹/src......
  • [vue]精宏技术部试用期学习笔记 I
    精宏技术部试用期学习笔记(vue)什么是vue?我个人对vue的理解是把html\css\js三件套融合起来的结构,同时用组件化的思维把一个页面装填起来同时让页面形成树状结构优点是方便多人员维护提高代码复用性如何创建一个vue项目?我这里使用的是vite+vue的轻量化项目,使用pnpm......
  • 基本技巧——分数规划 学习笔记
    基本技巧——分数规划学习笔记引入分数规划用来求一个分式的极值。具体的,给定\(n\)个元素,每个元素有属性\(a_i,b_i\),求一个集合\(P\in[1,n]\),最大/最小化比率:$$\dfrac{\sum_{i\inP}a_i}{\sum_{i\inP}b_i}$$求解二分法假设我们要求最大值(求最小值的方法和求最大值的方......