【图算法】图卷积的演变-从谱图卷积到GCN
基础
傅里叶变换
傅里叶级数是对周期为T的确定性信号做展开,而傅里叶变换将周期推广到无穷,能对具有任意长度的信号做展开。
傅里叶级数和傅里叶变换是什么关系?
如下为傅里叶变换公式:
\]
用欧拉公式将\({\exp}^{-iwt}\)展开后,可发现相当于用不同频率的正弦和余弦信号作为基向量和\(f(x)\)做内积,从而将其从时域变到频域空间。
图傅里叶变换
要将傅里叶变换推广到图上,其关键是找到图信号的基函数。
拉普拉斯算子(Laplacian operator)\(∆\)的物理意义是空间二阶导数,其准确定义是:标量梯度场中的散度(梯度的散度,二阶偏导之和),可用于描述物理量的流入流出,例如热传播。
传统傅里叶的基函数\({\exp}^{-iwt}\)可视为拉普拉斯算子的特征向量,频率为特征值:
\]
其可视为广义的特征方程,和矩阵的特征向量类似(在经过变换后只是改变大小,而方向不变)。
图拉普拉斯矩阵\(\mathbf{L}\)是拉普拉斯算子的在图(离散空间)上的的推广,其可用于衡量图上信号的平滑程度。
那么,\(\mathbf{L} \in \mathbb{R}^{N \times N}\)的特征向量就可以类比基函数 \({\exp}^{-iwt}\),作为图傅里叶变换的基函数(向量)。
\]
\]
\]
\]
\]
一个包含\(N\)个节点图,图上每个节点\(i\)有一个标量信号,这时图信号\(\mathbf{x} \in \mathbb{R}^{N}\)都可表示为拉普拉斯矩阵特征向量(基向量)的线性组合。
\begin{matrix}
\phi_1 \\
... \\
\phi_N \end{matrix}
\right]=\mathbf{U}^T \mathbf{x}, 图傅里叶变换
\]
\]
图傅里叶变换,在这里就是将图信号\(\mathbf{x}\)投影(内积计算分量)到\(\mathbf{L}\)的特征向量构成的基向量上。就是将\(\mathbf{x}\)从原始空间变到新的空间-频域。
\]
图傅里叶变换(Graph Fourier Transformation)就是基于图拉普拉斯矩阵,将图信号从空域(顶点上)转换到谱域(频域)的一种方法。
第一代:Spectral Network
卷积
卷积运算: 两个实值函数的卷积运算可以理解成,以其中一个函数为权重,对另一个函数做加权平均的操作(这样可以令函数平滑降噪)。
卷积运算的目的不限于此。其操作可以得到一个新的函数,相当于是这两个函数内积的结果。
例子,给定\(f(t)\)表示时刻\(t\)的测量值。由于测量值可能存在噪声,且时间上越近的测量结果越相关,可使用加权方法对最近测量值赋予高权重,来获得加权平滑结果。
可用一个加权函数\(g(a)\)来实现,其中\(a\)代表测量值距当前时刻的时间间隔:
\]
若\(t\)为目标时刻,当\(a\)取\(t\)时,间隔为\(t-a=0\),有\(f(t) g(0)\),如下表所示(实际大于\(t\)取不到):
| \(a\) | \(t-3\) | \(t-2\) | \(t-1\) | \(t\) |
|---|---|---|---|---|
| \(f(a)\) | \(f(t-3)\) | \(f(t-2)\) | \(f(t-1)\) | \(f(t)\) |
| \(g(t-a)\) | \(g(3)\) | \(g(2)\) | \(g(1)\) | \(g(0)\) |
\]
卷积定理:卷积的傅里叶变换等于傅里叶变换的乘积(时域卷积,等于在频域做乘积)
\]
通过傅里叶逆变换可以得到:
\]
图上的卷积
在图上做,图信号和滤波器g的卷积:
\]
\]
那么,图上的卷积可以定义为:
\mathbf{U} \left( (\mathbf{U}^{T}\mathbf{x}) {\odot} (\mathbf{U}^{T}\mathbf{g})\right) =
\mathbf{U} (\mathbf{U}^{T}\mathbf{x} {\odot} \mathbf{\theta})
\]
\]
传统滤波器需根据经验设定,在这里可将滤波器视为:可参数化的卷积核
\]
卷积运算中的乘法为element-wise product,即在频域的乘法。在这里,其直观意义就是:
用卷积核的参数对频域信号的每个分量进行加权操作,来实现滤波(不同的频率分量有不同的权重系数,例如可对高频分量施以更低权重)
那么将卷积核向量展开为对角矩阵形式(行变换),有:
\left[
\begin{matrix}
{\theta}_1 & ... & 0 \\
... & ... & ... \\
0 & ... & {\theta}_N \end{matrix}
\right]
\]
最后,可得到:
\mathbf{U} (\mathbf{U}^{T}\mathbf{x} {\odot} \mathbf{\theta} ) \\
= \mathbf{U} (\mathbf{\theta} {\odot} \mathbf{U}^{T}\mathbf{x} ) \\
= \mathbf{U} \mathbf{g}_{\theta} \mathbf{U}^{T} \mathbf{x}
\]
假设每个节点有\(d\)维的特征,即通道数为\(d\)(\(d\)个图信号):
\begin{matrix}
{x_{11}} & {x_{12}} & ... & {x_{1d}} \\
... & ... & ... \\
{x_{n1}} & {x_{n2}} & ... & {x_{nd}} \end{matrix}
\right] = \left[
\begin{matrix}
{\mathbf{x}_1} & {\mathbf{x}_2} & ... & {\mathbf{x}_d} \end{matrix}
\right]
\]
注意,\(\mathbf{X} \in \mathbb{R}^{N \times d}\), 每一个通道可使用多个卷积核(类似CNN,拓展通道数)。
对于第\(l\)层谱图卷积,通道数为\({d_l}\):
\]
\]
使用\(d_l * d_{(l+1)}\)个卷积核,每次在全部通道分别用\(d_l\)个卷积核并将结果求和,重复\(d_{(l+1)}\)次,得到输出特征通道:
\]
\]
Spectral Graph Convolution操作定义为:
- 计算图拉普拉斯(graph Laplacian)的特征值分解,得到特征向量
- 将图信号进行图傅里叶变换, 然后使用卷积核进行滤波,然后再进行图傅里叶逆变换
缺点:
- 图拉普拉斯特征分解\(O(n^3)\)复杂度, 前向传播\(O(n^2)\)。
- 卷积核参数量大: \(N * d_l * d_(l+1)\), 易过拟合($N $ 为节点数量)
- 在空域上没有明确定义,不能局部化到节点上
基于谱图卷积的频域方法,学到的滤波器都是基于拉普拉斯特征分解,也就是取决于图的结构。这也就意味着,在一个特定结构上训练得到的模型,并不能直接应用到另外一个结构不同的图上。
第二代:ChebNet
切比雪夫网络实现了:快速局部化和低复杂度
\]
从图信号分析的角度考虑,希望这个过滤函数\(\mathbf{g}\)能有较好的局部化(只影响节点的局部邻居点)。
故可把\(\mathbf{g}\)定义成\(\mathbf{L}\)的函数\(\mathbf{g}_{\theta}(\mathbf{L})\), 例如\(\mathbf{L}\)的多项式。(这里就有从频域转向空域的意思)
因为作用一次拉普拉斯矩阵\(\mathbf{L}\), 相当于在图上把信息扩散到1阶邻居。
图信号被这个滤波器过滤后 (拉普拉斯矩阵乘法仅与特征值相关),得到:
\mathbf{g}_{\theta} (\mathbf{U} \mathbf{\Lambda} \mathbf{U}^{T}) \mathbf{x} =
\mathbf{U} \mathbf{g}_{\theta} (\mathbf{\Lambda}) \mathbf{U}^{T} \mathbf{x}
\]
也就是说,可把谱域图卷积中的卷积核, 看作拉普拉斯矩阵特征值\(\mathbf{\Lambda}\)的函数。通常,可选择使用一个多项式卷积核:
\]
其中,参数\(\mathbf{\theta_{k}}\)是多项式的系数。通过这个定义,我们现在只需要\(K+1个\)参数(\(K远小于N\))这大大降低了参数学习过程的复杂度。就相当于:
\]
因此信息最多在每个节点传播\(K\)步,即即卷积的局部化。
ChebNet进一步提出了加速方案,把 \(\mathbf{g}_{\theta}(\mathbf{\Lambda})\) 近似为\(K\)阶切比雪夫多项式的:
\]
其中,Tk是k阶切比雪夫多项式。
主要将特征值对角阵映射到[-1,1]区间
\\
\lambda_{max}是\mathbf{L} 最大的特征值,\theta_{k} \in \mathbb{R}^{K}为切比雪夫系数向量
\]
之所以采用切比雪夫多项式,是因为考虑到它具有很好的性质,可以循环递归求解:
\]
\]
为了避免特征值分解,将式(3.8)写回为L的函数:
& = \mathbf{U} \mathbf{g}_{\theta} (\mathbf{\Lambda}) \mathbf{U}^{T} \mathbf{x} \\
& = \mathbf{U} \left( \sum_{k=0}^{K} \theta_{k} T_{k}(\tilde{\mathbf{\Lambda}}) \right) \mathbf{U}^{T} \mathbf{x} \\
& = \sum_{k=0}^{K} \theta_{k} \left(\mathbf{U} T_{k}(\tilde{\mathbf{\Lambda}}) \mathbf{U}^{T}\right) x \\
&=\sum_{k=0}^{K} \theta_{k} T_{k}(\tilde{\mathbf{L}}) \mathbf{x} \end{aligned}
\]
\]
因此,它仍然保持\(K\)-局部化(节点仅被其周围的\(K\)阶邻居节点所影响)。可以看到,ChebNet本质上已经是在用多阶次的\(\mathbf{L}\)对图信号进行处理。
ChebNet要学习的参数就是切比雪夫多项式的权重系数,同时还需确定切比雪夫多项式的阶数\(K\)。
第三代:GCN
GCN进一步对ChebNet进行了局部化来限制卷积操作的范围,从而来减缓过拟合的问题。
具体地,它将切比雪夫多项式的项数设为\(K=1\),它还近似了\(\lambda_{\max } \approx 2\),最后简化的方程如下:
\]
使用两个无限制的参数\(\theta'_0\)和\(\theta'_1\)。
在通过设置\(\theta=\theta_{0}^{\prime}=-\theta_{1}^{\prime}\)来限制参数的数量之后,可得到以下表达式:
\]
值得一提的是,叠加使用这个操作会导致数值不稳定性以及梯度爆炸或消失(因为不断地乘以同一个矩阵)。因此,该论文里面使用了重规范化操作(renormalization):
\]
其中, 自环邻接矩阵\(\tilde{\mathbf{A}}=\mathbf{A}+\mathbf{I}_{N}\),\(\tilde{\mathbf{D}}_{i i}=\sum_{j} \tilde{\mathbf{A}}_{i j}\)。
然后,论文将模型扩展为含有\(C\)个输入通道的信号,\(\mathbf{X} \in \mathbb{R}^{N \times C}\)以及\(F\)个滤波器来用于提取特征:
\]
其中,\(\Theta \in \mathbb{R}^{C \times F}\)是滤波器参数矩阵,\(\mathbf{Z} \in\mathbb{R}^{N \times F}\)是卷积信号矩阵。
此时,GCN已经可以很好的联系到空域。GCN可以看成一层网络,而每一个GCN层相当于对目标节点的一阶邻居即自己做加权求和。具体推导可看之前博客: Pytorch-geometric: Creating Message Passing Networks 构建消息传递网络教程中第三节关于GCN空域解释。
至此,单层的GCN变成了一个一阶模型,它每次卷积只能处理图上的1阶邻居信息。若要处理K阶邻居,需通过堆叠\(K\)个上述GCN层,来扩大图卷积地感受野。
实际上后续地改进,通常也是从这个角度出发,如果将$ \tilde{\mathbf{D}}^{-\frac{1}{2}} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-\frac{1}{2}} $ 视为加了自环的转移矩阵\(\mathbf{P}\) ,那么完全可以预先计算其幂\(\mathbf{P}^{k}\)或邻接矩阵的幂\(\mathbf{A}^{k}\)来直接获取高阶邻居信息。
【图算法】图卷积的演变-从谱图卷积到GCN的更多相关文章
- Matlab 语谱图(时频图)绘制与分析
Matlab 语谱图(时频图)绘制与分析 语谱图:先将语音信号作傅里叶变换,然后以横轴为时间,纵轴为频率,用颜色表示幅值即可绘制出语谱图.在一幅图中表示信号的频率.幅度随时间的变化,故也称" ...
- XRD 数据处理:使用 Origin 进行多谱图对比
如果一个实验制备了 4 种不同条件下的样品,并分别测得了它们的 XRD 衍射谱图,那么在数据处理中如何用 Origin 软件得到一张多谱图对比的图呢? 样品间的谱图对比 如果只是谱图样品间对比(以 4 ...
- 译:Local Spectral Graph Convolution for Point Set Feature Learning-用于点集特征学习的局部谱图卷积
标题:Local Spectral Graph Convolution for Point Set Feature Learning 作者:Chu Wang, Babak Samari, Kaleem ...
- 【GCN】图卷积网络初探——基于图(Graph)的傅里叶变换和卷积
[GCN]图卷积网络初探——基于图(Graph)的傅里叶变换和卷积 2018年11月29日 11:50:38 夏至夏至520 阅读数 5980更多 分类专栏: # MachineLearning ...
- 蛋白质组DIA深度学习之谱图预测
目录 1. 简介 2. 近几年发表的主要工具 1.DeepRT 2.Prosit 3. DIANN 4.DeepDIA 1. 简介 基于串联质谱的蛋白质组学大部分是依赖于数据库(database se ...
- python生成语谱图
语音的时域分析和频域分析是语音分析的两种重要方法,但是都存在着局限性.时域分析对语音信号的频率特性没有直观的了解,频域特性中又没有语音信号随时间的变化关系.而语谱图综合了时域和频域的优点,明显的显示出 ...
- 解读人:刘佳维,Spectral Clustering Improves Label-Free Quantification of Low-Abundant Proteins(谱图聚类改善了低丰度蛋白的无标记定量)
发表时间:(2019年4月) IF:3.95 单位: 维也纳医科大学: 欧洲生物信息研究所(EMBL-EBI): 分子病理学研究所: 奥地利科学院分子生物技术研究所: Gregor Mendel分子植 ...
- 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (二)
本文属于图神经网络的系列文章,文章目录如下: 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (一) 从图(Graph)到图卷积(Graph Convolutio ...
- 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (一)
本文属于图神经网络的系列文章,文章目录如下: 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (一) 从图(Graph)到图卷积(Graph Convolutio ...
- Python绘制语谱图+时域波形
"""Python绘制语谱图""" """Python绘制时域波形""" # 导 ...
随机推荐
- Metasploit 生成带SSL加密载荷
1.下载证书.Impersonate_SSL模块,下载指定网站的证书. msf6> use auxiliary/gather/impersonate_ssl msf6 auxiliary(gat ...
- 提升编码幸福感的秘密「GitHub 热点速览」
写代码是一个充满挑战的事情,在这段充满挑战的旅途中,我们都渴望找到那个提升幸福感的秘密.没准是更先进或是更快的工具,希望本期热点速递的开源项目,能给你带来启迪和乐趣,上菜! 第一个上场的是一款用 Ru ...
- 使用JAAS文件登陆kerberos(zookeeper)
Kerberos 5 Configuration Since the SPNEGO mechanism will call JGSS, which in turns calls the Kerbero ...
- 升腾C92 刷 OpenWrt 作旁路由设置 DNS 服务、扩容分区、设置 swap
最新博客文章链接 文字更新时间:2024/02/04 一直知道 OpenWrt 经常拿来做软路由软件.最近买了个二手小主机升腾 C92 来做旁路由服务器,其被归为瘦客户机一类,感觉和工控机差不多,现价 ...
- Oracle私网mtu滚动修改实施方案
之前测试遇到过mtu修改不能滚动的情况,目前在自己测试环境重新反复验证发现正常是可以滚动的,下面梳理下整个实施方案: 环境:RHEL6 + Oracle 11.2.0.4 RAC(2 nodes) / ...
- 安装Electron时卡在install.js不动的解决方案
问题来源,发现即使 源切换成淘宝的之后,安装 electron的时候还是慢死,郁闷,后来百度才发现,原来,还需要设置一个地方!!! 经过试验,果然快了 爽.... 之前在安装Electron的时候,经 ...
- Linux-sshpass(shell脚本使用ssh远程执行命令通过密码的方式登录)
1. sshpass简介 sshpass 是一个在非交互式 ssh 会话中自动输入密码的工具.它可以直接在命令行中指定密码,因此可以用于 Shell 脚本等自动化场景.在 Red Hat 系统中,可以 ...
- 【Flink入门修炼】1-3 Flink WordCount 入门实现
本篇文章将带大家运行 Flink 最简单的程序 WordCount.先实践后理论,对其基本输入输出.编程代码有初步了解,后续篇章再对 Flink 的各种概念和架构进行介绍. 下面将从创建项目开始,介绍 ...
- react router component与render有什么区别?提升渲染性能,记一个react router component 误用导致请求死循环的有趣bug
壹 ❀ 引 下午前端大佬突然私聊我,说发现了一个很有趣的bug,问我有没有兴趣,因为我平时会记录一些自认为有意思的问题,所以毫不犹豫就答应了,问题表现如下,当我们系统进入到某个页面下时,接口居然无止境 ...
- IPFS 添加和管理文件
IPFS的文件有不同的模式 默认模式 默认模式下, 文件会被解析并存入blocks, 同时文件的结构被存入filestore, 因为IPFS是按内容寻址的文件系统, 在添加时最外层的目录名或文件名信息 ...