首页 > 其他分享 >spectral-graph-theory-in-GCN

spectral-graph-theory-in-GCN

时间:2023-04-26 10:47:44浏览次数:52  
标签:spectral theory 变换 graph nabla GCN sin 傅里叶 节点

GCN 中的谱图理论笔记

Datetime: 2023-04-26T09:36+08:00

Categories: MachineLearning

Tags: GNN

写毕设,发现自己没法绕过第一代 GCN 的谱图变换原理

我知道啥是傅里叶变化,但是我感觉不到那种新奇,或许这就是无法感觉到数学的美吧。

本文默认读者知道傅里叶变换,就数学分析/高等数学里的那一章。

参考了 【GNN】万字长文带你入门 GCN - 阿泽的文章 - 知乎,后来发现图神经网络基础二:谱图理论写得也完整。

目录

why sin/cos

要理解 GCN 那一套傅里叶的逻辑,第一个问题是,为什么傅里叶变化选择了三角函数,或者说 sin/cos?

或许有人会说,sin/cos 正交嘛,那为什么正交,是巧合吗?

我认为可以类推到 \(\nabla^2\) 这个变换中,所谓亥姆霍兹方程:

\[\nabla^2 f = -k^2 f \]

sin/cos 就是答案之一,而如果把这个方程理解为 \(Ax = \lambda x\),A 是实对称矩阵,那么特征向量本身就是正交的。

总而言之,这样类比很巧,我也不知道为什么这么巧。

那么傅里叶分解就可以立即为输入函数 \(f\),分解到 \(\nabla^2\) 的基上。

input & output

第二个问题就是弄清楚图的变换的输入和输出是什么,
说到底,无权重图的结构就是一个邻接矩阵罢了,图上节点的值,如果考虑每一个节点就是一个标量,那么整个图的节点的值就是一个向量。

假设每个节点的值就是一个标量,这样不把节点的值考虑成向量的好处是,向量无非是多个「通道」,就像 RGB 通道一样。

图可以抽象为一个矩阵(邻接矩阵、度矩阵 whatever),query 图节点的值抽象为一个函数,这个函数的参数是节点,输出是节点的值,也就是一个标量,那么图可以表示为如下二元组:

\(<L, f>, f \in \{f: v \rightarrow \mathbb{R} \}\)

无向结构写成矩阵的形式会强行加上一个 index。如何理解,因为写邻接矩阵的时候,已经给图中的节点编号了,比如矩阵第一列第二行表示第一个节点和第二个节点之间是否有边。所以 \(f\) 本身也可以写成一个向量,\(f[i]\) 就是取第 i 个节点的值。

node<index>(<value>)

node1(3) -- node2(5)
|
|
node3(8)

那么 \(f\) 就是 \([3, 5, 8]\)。

至于为什么选择 \(L\),文章[1]说是考虑变换为「扰动」,\(f[i]-f[j]\)。

类比

第三个问题是理解类比:

把傅里叶变换理解为

函数在 \(\nabla^2\) 基上的变换,那么频域变换就可以理解为

\(f\) 在 \(L\) 基上的变换。

所以我们去求 \(L\) 的特征值 \(u_i\),让 \(f\) 和 \(u_i\) 做内积,得到变换后的结果。

卷积核

我认为这不是变换的重点,直接参考文章[1:1]


  1. 【GNN】万字长文带你入门 GCN - 阿泽的文章 - 知乎 ↩︎ ↩︎

标签:spectral,theory,变换,graph,nabla,GCN,sin,傅里叶,节点
From: https://www.cnblogs.com/ticlab/p/17354929.html

相关文章

  • nginx-lua-fastdfs-GraphicsMagick整合
      无意发现了一个不错的分布式文件系统。fastdfs开源的分布式文件系统,此脚本利用nginxlua模块,动态生成图片缩略图,fastdfs只存一份原图。lua通过socket获取fastdfs的原图,并存放到本地,根据不同规则url,例如:_60x60.jpg、_80x80.jpg,类似淘宝图片url规则。利用gm命令生成本地缩略图......
  • Deep-Learning-Based Spatio-Temporal-Spectral Integrated Fusion of Heterogeneous
    Deep-Learning-BasedSpatio-Temporal-SpectralIntegratedFusionofHeterogeneousRemoteSensingImagesabstract为了解决STF中的生成heterogeneousimages问题:为此,本文首次提出了一种基于新型深度残差循环生成对抗网络(GAN)的异构集成框架。所提出的网络由前向融合部......
  • Python 实时生成曲线的两种方法-Matplotlib/Pyqtgraph
    前言Matplotlib更倾向于制作出版质量的图形,对matlab程序员来说更直观。pyqtgraph不像matplotlib那样完整/成熟,但运行速度要快得多,而且pyqtgraph旨在用于数据采集和分析应用程序,对于python/qt程序员来说更直观。Matplotlib(据我所知)不包括许多pyqtgraph的功能,例如图像......
  • codeforces 505B B. Mr. Kitayuta's Colorful Graph(bfs)
    题目链接:codeforces505B题目大意:给出一个有向图,边有不同的颜色,任意给出查询,查询两点能够只通过一种颜色连通的颜色的种类数。题目分析:根据不同颜色建边,bfs即可,队列维护可用的点。AC代码:#include<iostream>#include<cstring>#include<cstdio>#include<vector>#include<alg......
  • 图(Graph)与图论
    听到图这个字,很多人会联想到图片、折线图、设计图等传统的图,今天要聊的图(Graph)是一种基本研究对象,用于表示实体与实体之间的关系。先说结论:图论:是组合数学分支,是主要研究图的学问,起源于柯尼斯堡七桥问题。图(数学):是用于表示物体与物体之间存在某种关系的结构。数学......
  • 题解:【CF235D】Graph Game
    题目链接根据期望的线性性,一次操作使得接下来要递归处理\(|G|\)个点,将这些贡献分摊到\(|G|\)个点上,这样我们接下来只需要计算概率。首先考虑如果是树怎么做。操作等价于随机一个排列,顺次删掉排列中的点,并求出删掉当前点之前其所处的连通块的大小。记当前\(x\)为点分治中心......
  • Graph Travarsal All In One
    GraphtraversalAllInOne图遍历js/tsdemoshttps://hackbear.tv/gragph/https://hackbear.tv/gragph/1https://www.youtube.com/watch?v=BkszA-MvjXA?618(......
  • Approximation Theory and Method ch7
    ApproximationTheoryandMethodch7part1,part2,part3,ch7,命名乱了——致敬微软...asthesignof\(p(x)\).Itfollowsthat\(p^{*}\)isabestminimaxapproximationfrom\(\mathscr{A}\)to\(f\)ifthereisnofunction\(p\)in\(\mathscr{A}\)......
  • Approximation Theory and Method part 3
    ApproximationTheoryandMethodpart3BasicpropertiesofdivideddifferencesLet\(\left\{x_i;i=0,1,\ldots,n\right\}\)beany\((n+1)\)distinctpointsof\([a,b]\),andlet\(f\)beafunctionin\(\mathscr{C}[a,b]\).Thecoeffici......
  • Layer-Dependent Importance Sampling for Training Deep and Large Graph Convolutio
    目录概符号说明MotivationLADIES代码ZouD.,HuZ.,WangY.,JiangS.,SunY.andGuQ.Layer-dependentimportancesamplingfortrainingdeepandlargegraphconvolutionalnetworks.NIPS,2019.概本文在以往的mini-batch的快速算法上进行了改进.符号说明\(\m......