美文网首页
Spectral Graph Convolution Netwo

Spectral Graph Convolution Netwo

作者: 是许嘉晨 | 来源:发表于2019-09-30 10:18 被阅读0次

Convolution:
「1」 Spatial Convolution
「2」 Spectral Convolution

Convolution in spatial space: (f*g)(t)=\int_{-\infty}^{\infty}f(\tau)g(t-\tau)
In terms of spectral space: (f*g)(t)=F^{-1}[F[f(t)]\odot F[g(t)]], where F[\cdot] means **Fourier Transform
**.

In other words, convolution in spatial space could be translated as:
「1」Convert function f and g into spectral space (F[f(t)] / F[g(t)]),
「2」Multiple two converted function element-wisely (F[f(t)]\odot F[g(t)),
「3」Convert it back to spatial space (F^{-1}[F[f(t)]\odot F[g(t)]]).


以上就是一些卷积的相关信息知识。
从上可以发现如果要将SpatialSpectral上的卷积联系在一起,很重要的部分就是傅里叶变换,傅里叶变换的公式如下所示:
\hat{f}(x)=\int f(t)e^{-i2\pi xt}dt

对于上述公式,重要的部分就是e^{-i2\pi xt},其中i表示的复数里的标志,t表示的是时间(如果是时域转化为频域),x表示的就是频率(角频率)(2\pi xt表示的就是时间t里面旋转的角度),它在傅里叶变换中起到了比较重要的作用,其实e^{-i2\pi xt}是拉普拉斯算子\Delta的广义特征函数(就是线性代数中的特征向量的那种东西),具体的理解可以看参考。对于一幅图片来说,它的拉普拉斯算子其实就是一个拉普拉斯矩阵L,该矩阵对应的特征 向量u,表示的就是e^{-i2\pi xt}。具体的,拉普拉斯矩阵则可以表示成L=D-A,即度矩阵(每个点的度)减去邻接矩阵(两点之间的二元值或者是权重)。

通过上述的介绍,就可以将传统的傅里叶公式转化为基于图的傅里叶公式:
\hat{f}(x)=\int f(t)e^{-i2\pi xt}dt\\=\sum^N_{n=1}f(n)u_t(n)\\=U^Tf
其中U=(u_1, u_2, ..., u_n),即特征矩阵。

所以传统的卷积操作(不一定是位于图上的卷积操作)就可以转化成位于图上的卷积操作公式:
(f*g)(t)=F^{-1}[F[f(t)]\odot F[g(t)]]=U(U^Tf\odot U^Tg)
而将U^Tg当作一个可学习的卷积核g_\theta,那么最终的卷积公式就是
Ug_\theta U^Tf
从上面的整个推导过程中可以看到,从传统的卷积(不是基于图的卷积)通过与Spectral的连接,变换成了图上的卷积,整个过程都有比较严密的推导。


相比之下可以提一提Spatial Graph Convolution Network

相比于上述的谱图卷积,空间域上的卷积更加的intuitive一些。
GCN的每一层其实就是将neighborhood中的neighbors通过消息传递函数,聚合起来,然后通过状态更新函数完成对点的更新,从公式中可以比较直观的感受到这个过程。
h_v^{l+1}=U_{l+1}(h_v, \sum_{u\in ne[v]}M_{l+1}(h_v^l, h_u^l, x_{vu}))

其中M_{l+1}表示的就是消息传递函数,它将每个neighbor的相关信息,自己的信息,以及边信息h_v^l, h_u^l, x_{vu}综合进行考虑,然后传递到central上,然后再结合自身的信息update。整个过程其实就是模仿传统CNN,将周围的信息aggregate到一个点上。

相关文章

网友评论

      本文标题:Spectral Graph Convolution Netwo

      本文链接:https://www.haomeiwen.com/subject/nrmayctx.html