【深度学习】图卷积网络 GCN
参考:https://www.zhihu.com/question/54504471?sort=created
GCN是什么?
GCN 全称是 graph convolution network,中文翻译为图卷积网络。这里的“图”指的不是我们常说的2D图像,而是由一系列顶点和连着这些顶点的边构成的拓扑图,例如,有向图,无向图等等。接下来就以无向图介绍一下 GCN 的工作原理。
拓扑图的信息如何被提取并加以利用?
这里使用的是图的拉普拉斯矩阵,具体计算方法如下。利用拉普拉斯矩阵可以画出原拓扑图。
![](https://img2018.cnblogs.com/blog/1892044/202003/1892044-20200302114938254-384902757.png)
傅里叶变换
学《信号与系统》我们了解到时域上的卷积等于频域上的乘积,使用\(e^{-j\omega t}\)作为基函数。其中\(e^{-j\omega t}\)是拉普拉斯算子的特征函数,即式\(\Delta e^{-j\omega t}= \frac{{\partial}^2 }{\partial t^2} e^{-j\omega t}=-{\omega}^2 e^{-j\omega t}\)成立。而广义的特征方程定义为\(AV=\lambda V\),其中,\(A\)是一种变换,\(V\)是特征向量或者特征函数(无穷维的特征向量)。
根据以上理论,结合拉普拉斯矩阵就是离散的拉普拉斯算子,我们求出拉普拉斯矩阵\(L\)的特征向量,就可以做类似于傅里叶变换的工作。并且拉普拉斯矩阵为对称半正定矩阵,特征值均大于等于0,可对角化\(L=U\Lambda U^T\)(这里假设了特征值互不相等,因此\(U\)矩阵各向量正交,\(U\)为正交矩阵,满足\(UU^T=E\))。
定义拓扑图的傅里叶变换为:
卷积
直接给出卷积公式:
DeepLearing中的GCN
GCN 在不断的发展。
第一代GCN
该方法直接将\(U^Th\)变为可学习的参数,即
第二代GCN
与第一代GCN不同的是,该方法中的\(g_\theta = (\sum_{j=0}^K\alpha_j {\lambda_1}^j, \sum_{j=0}^K\alpha_j {\lambda_2}^j, \cdots, \sum_{j=0}^K\alpha_j {\lambda_N}^j)^T\),其中\(\lambda_i\)为\(L\)的特征值。