【图机器学习】图神经网络入门(三)从图傅里叶变换到图卷积

1 前言

  在之前的文章中(图上的傅里叶变换),已经顺利的从传统的傅里叶变换过渡到了图上的傅里叶变换,这样使得离散的图数据能够进行卷积操作。本节主要阐述如何如何从图的傅里叶变换到图卷积。
  本文为自学的记录,其中多有借鉴他人的地方,一并在参考文献中给出链接。

2 卷积定理及卷积操作的意义

2.1 卷积的意义

  卷积主要有三个含义(强烈推荐参考文献【1】的视频讲解):

  • 对于一个系统,如果输入是不稳定的,输出是稳定的,那么卷积操作可以求出系统的存量。
  • 在图像处理中,一个卷积核就是规定了周围像素点对当前像素点的产生的影响。
  • 在卷积神经网络的图像预处理中,一个过滤器的卷积核就是规定了,一个像素点会如何对周围像素点的试探,如何筛选图像的特征。

2.2 卷积定理

  卷积定理函数卷积的傅里叶变换是函数傅立叶变换的乘积,即对于函数 f f f g g g两者的卷积是其函数傅立叶变换乘积的逆变换(中间的桥梁就是傅立叶变换与反傅立叶变换 证明点击这里):
f ∗   g = F − 1 { F ( f ) ⋅ F ( g ) } = F − 1 { f ^ ⋅ g ^ } \mathrm{f} * \mathrm{~g}=\mathcal{F}^{-1}\{\mathcal{F}(\mathrm{f}) \cdot \mathcal{F}(\mathrm{g})\}=\mathcal{F}^{-1}\{\hat{\mathrm{f}} \cdot \hat{\mathrm{g}}\} f g=F1{F(f)F(g)}=F1{f^g^}

  那么重点来了类比传统卷积的定义,我们将卷积定义到图上并且带入傅里叶变换,则 f f f 与卷积核 g g g 在图上的卷积可以做如下定义:

f f f 的图傅里叶变换为 f ^ = U T f \hat f = U^Tf f^=UTf

卷积核 g g g 的图傅里叶变换为 g ^ = U T g \hat g = U^Tg g^=UTg

注意:卷积核 g g g不是先天有的而是根据需要设计的,可以类比图像中的卷积核设计。也就是说 g g g在这是是假设的需要后期根据训练进行学习,这里 U T U^T UT的意思也是对定义的 g g g进行变换。

3 图(graph)卷积

  有了上面的基础之后,我们来定义图卷积的公式:
x ⋆ G g = F − 1 ( F ( f ) ⊙ F ( g ) ) = U ( U T f ⊙ U T g ) \begin{aligned} x \star_{G} g &=\mathcal{F}^{-1}(\mathcal{F}(f) \odot \mathcal{F}(g)) \\ &=U\left(U^{T} f \odot U^{T} g\right) \end{aligned} xGg=F1(F(f)F(g))=U(UTfUTg)

⊙ \odot 表示哈达玛积(对于两个维度相同的向量、矩阵、张量进行对应位置的逐元素乘积运算,这里是不是有点卷积核的感觉了

将上面的公式重新整理推导为更一般的方式:
x ⋆ G g θ = U ( ( U T f ) ⊙ ( U T g ) ) = U ( f ^ ( λ 1 ) f ^ ( λ 2 ) ⋮ f ^ ( λ n ) ) ⊙ ( g ^ ( λ 1 ) g ^ ( λ 2 ) ⋮ g ^ ( λ n ) ) = U ( g ^ ( λ 1 ) f ^ ( λ 1 ) g ^ ( λ 2 ) f ^ ( λ 2 ) ⋮ g ^ ( λ n ) f ^ ( λ n ) ) = U ( g ^ ( λ 1 ) ⋱ g ^ ( λ n ) ) ( f ^ ( λ 1 ) f ^ ( λ 2 ) ⋮ f ^ ( λ n ) ) = U ( g ^ ( λ 1 ) ⋱ g ^ ( λ n ) ) U T f \begin{array}{l} \mathrm{x} \star_{\mathrm{G}} \mathrm{g}_{\theta}=\mathrm{U}\left(\left(\mathrm{U}^{\mathrm{T}} \mathrm{f}\right) \odot\left(\mathrm{U}^{\mathrm{T}} \mathrm{g}\right)\right)\\[5mm] =\mathrm{U}\left(\begin{array}{c} \hat{\mathrm{f}}\left(\lambda_{1}\right) \\ \hat{\mathrm{f}}\left(\lambda_{2}\right) \\ \vdots \\ \hat{\mathrm{f}}\left(\lambda_{\mathrm{n}}\right) \end{array}\right) \odot\left(\begin{array}{c} \hat{\mathrm{g}}\left(\lambda_{1}\right) \\ \hat{\mathrm{g}}\left(\lambda_{2}\right) \\ \vdots \\ \hat{\mathrm{g}}\left(\lambda_{n}\right) \end{array}\right)\\[12mm] =U\left(\begin{array}{c} \hat{\mathrm{g}}\left(\lambda_{1}\right) \hat{\mathrm{f}}\left(\lambda_{1}\right) \\ \hat{\mathrm{g}}\left(\lambda_{2}\right) \hat{\mathrm{f}}\left(\lambda_{2}\right) \\ \vdots \\ \hat{\mathrm{g}}\left(\lambda_{\mathrm{n}}\right) \hat{\mathrm{f}}\left(\lambda_{\mathrm{n}}\right) \end{array}\right)\\[10mm] =\mathrm{U}\left(\begin{array}{ccc} \hat{\mathrm{g}}\left(\lambda_{1}\right) & & \\ & \ddots & \\ & & \hat{\mathrm{g}}\left(\lambda_{\mathrm{n}}\right) \end{array}\right)\left(\begin{array}{c} \hat{\mathrm{f}}\left(\lambda_{1}\right) \\ \hat{\mathrm{f}}\left(\lambda_{2}\right) \\ \vdots \\ \hat{\mathrm{f}}\left(\lambda_{\mathrm{n}}\right) \end{array}\right)\\[10mm] =\mathrm{U}\left(\begin{array}{ccc} \hat{\mathrm{g}}\left(\lambda_{1}\right) & & \\ & \ddots & \\ & & \hat{\mathrm{g}}\left(\lambda_{\mathrm{n}}\right) \end{array}\right) \mathrm{U}^{\mathrm{T}} \mathrm{f} \end{array} xGgθ=U((UTf)(UTg))=U f^(λ1)f^(λ2)f^(λn) g^(λ1)g^(λ2)g^(λn) =U g^(λ1)f^(λ1)g^(λ2)f^(λ2)g^(λn)f^(λn) =U g^(λ1)g^(λn) f^(λ1)f^(λ2)f^(λn) =U g^(λ1)g^(λn) UTf
上述推导的更详细见参考文献【4】

  上面就是谱域图卷积最终的公式,所有的谱域图卷积的原理就是这个公式,只是对滤波器 g ^ \hat{g} g^做了不同的处理。这个公式的意义是:卷积核信号(或者说滤波器信号 g ^ \hat{g} g^是一个n维的向量,它的作用是将原信号的不同的分量进行一个放大或者缩小,这取决于卷积核信号在谱域上不同元素的值。

4 总结

在这里插入图片描述

5 参考文献

[1]【王木头学科学|深度学习】1. 什么是卷积?卷积的3个意义。卷积、图像卷积操作、卷积神经网络
[2]【图机器学习】图神经网络入门(二)图上的傅里叶变换
[3]图卷积神经网络1-谱域图卷积:拉普拉斯变换到谱域图卷积
[4]GCN中的等式证明
[5]图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值