Convolution:
「1」 Spatial Convolution
「2」 Spectral Convolution
Convolution in spatial space:
In terms of spectral space: , where means **Fourier Transform
**.
In other words, convolution in spatial space could be translated as:
「1」Convert function and into spectral space (),
「2」Multiple two converted function element-wisely (),
「3」Convert it back to spatial space ().
以上就是一些卷积的相关信息知识。
从上可以发现如果要将Spatial和Spectral上的卷积联系在一起,很重要的部分就是傅里叶变换,傅里叶变换的公式如下所示:
对于上述公式,重要的部分就是,其中表示的复数里的标志,t表示的是时间(如果是时域转化为频域),x表示的就是频率(角频率)(表示的就是时间t里面旋转的角度),它在傅里叶变换中起到了比较重要的作用,其实是拉普拉斯算子的广义特征函数(就是线性代数中的特征向量的那种东西),具体的理解可以看参考。对于一幅图片来说,它的拉普拉斯算子其实就是一个拉普拉斯矩阵,该矩阵对应的特征 向量,表示的就是。具体的,拉普拉斯矩阵则可以表示成,即度矩阵(每个点的度)减去邻接矩阵(两点之间的二元值或者是权重)。
通过上述的介绍,就可以将传统的傅里叶公式转化为基于图的傅里叶公式:
其中,即特征矩阵。
所以传统的卷积操作(不一定是位于图上的卷积操作)就可以转化成位于图上的卷积操作公式:
而将当作一个可学习的卷积核,那么最终的卷积公式就是
从上面的整个推导过程中可以看到,从传统的卷积(不是基于图的卷积)通过与Spectral的连接,变换成了图上的卷积,整个过程都有比较严密的推导。
相比之下可以提一提Spatial Graph Convolution Network
相比于上述的谱图卷积,空间域上的卷积更加的intuitive一些。
GCN的每一层其实就是将neighborhood中的neighbors通过消息传递函数,聚合起来,然后通过状态更新函数完成对点的更新,从公式中可以比较直观的感受到这个过程。
其中表示的就是消息传递函数,它将每个neighbor的相关信息,自己的信息,以及边信息综合进行考虑,然后传递到central上,然后再结合自身的信息update。整个过程其实就是模仿传统CNN,将周围的信息aggregate到一个点上。
网友评论