spectral-graph-theory-in-GCN
GCN 中的谱图理论笔记
Datetime: 2023-04-26T09:36+08:00
Categories: MachineLearning
Tags: GNN
写毕设,发现自己没法绕过第一代 GCN 的谱图变换原理
我知道啥是傅里叶变化,但是我感觉不到那种新奇,或许这就是无法感觉到数学的美吧。
本文默认读者知道傅里叶变换,就数学分析/高等数学里的那一章。
参考了 【GNN】万字长文带你入门 GCN - 阿泽的文章 - 知乎,后来发现图神经网络基础二:谱图理论写得也完整。
why sin/cos
要理解 GCN 那一套傅里叶的逻辑,第一个问题是,为什么傅里叶变化选择了三角函数,或者说 sin/cos?
或许有人会说,sin/cos 正交嘛,那为什么正交,是巧合吗?
我认为可以类推到 这个变换中,所谓亥姆霍兹方程:
sin/cos 就是答案之一,而如果把这个方程理解为 ,A 是实对称矩阵,那么特征向量本身就是正交的。
总而言之,这样类比很巧,我也不知道为什么这么巧。
那么傅里叶分解就可以立即为输入函数 ,分解到 的基上。
input & output
第二个问题就是弄清楚图的变换的输入和输出是什么,
说到底,无权重图的结构就是一个邻接矩阵罢了,图上节点的值,如果考虑每一个节点就是一个标量,那么整个图的节点的值就是一个向量。
假设每个节点的值就是一个标量,这样不把节点的值考虑成向量的好处是,向量无非是多个「通道」,就像 RGB 通道一样。
图可以抽象为一个矩阵(邻接矩阵、度矩阵 whatever),query 图节点的值抽象为一个函数,这个函数的参数是节点,输出是节点的值,也就是一个标量,那么图可以表示为如下二元组:
无向结构写成矩阵的形式会强行加上一个 index。如何理解,因为写邻接矩阵的时候,已经给图中的节点编号了,比如矩阵第一列第二行表示第一个节点和第二个节点之间是否有边。所以 本身也可以写成一个向量, 就是取第 i 个节点的值。
node<index>(<value>) node1(3) -- node2(5) | | node3(8)
那么 就是 。
至于为什么选择 ,文章[1]说是考虑变换为「扰动」,。
类比
第三个问题是理解类比:
把傅里叶变换理解为
函数在 基上的变换,那么频域变换就可以理解为
在 基上的变换。
所以我们去求 的特征值 ,让 和 做内积,得到变换后的结果。
卷积核
我认为这不是变换的重点,直接参考文章[1:1]
如果您有任何关于文章的建议,欢迎评论或在 GitHub 提 PR
作者:dutrmp19
本文为作者原创,转载请在 文章开头 注明出处:https://www.cnblogs.com/dutrmp19/p/17354929.html
遵循 CC 4.0 BY-SA 版权协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本