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

目录

  • 1 前言
  • 2 卷积定理及卷积操作的意义
    • 2.1 卷积的意义
    • 2.2 卷积定理
  • 3 图(graph)卷积
  • 4 总结
  • 5 参考文献

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不是先天有的而是根据需要设计的,可以类比图像中的卷积核设计。

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 总结

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

5 参考文献

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

你可能感兴趣的:(图机器学习,图神经网络)