gcn学习笔记

gcn是从cnn中转换得到的,所以先从cnn分析。这张图片可以解释得很清楚:
1

cnn

cnn是一种离散卷积。
根据我的理解,它是利用一个自定义的加权系数矩阵对进行处理的一个点,利用它周围的一些数据,做加权求和。
这也符合离散卷积的定义,我理解离散卷积更类似于一个加权求和的概念。
但是在这张图上没有翻转卷积核?
查阅了一下,神经网络中的卷积和数学意义上的卷积还是有一定区别的,因为加权矩阵本身是训练的特征提取器,翻转与否不重要。
这里有一点模糊,需要以后有时间做更多的学习

从cnn到gcn

cnn有一定缺陷,它研究的对象是整齐的矩阵。对拓扑图无法研究(那种描述节点和边相互关系的图形)
查阅到的解释是:
拓扑图中每个顶点的相邻顶点数目都可能不同,那么当然无法用一个同样尺寸的卷积核来进行卷积运算。
拓展一下:广义的拓扑不仅包括图结构,它可以描述绝大部分数据,比如谱聚类思想。
所以gcn是为了解决拓扑图空间特征提取的问题

提取特征的方法

1.找到每个顶点的邻居
实现方法在
http://proceedings.mlr.press/v48/niepert16.pdf

gcn考虑的是第二种办法
借助图谱的方法来进行卷积操作
原理没怎么看懂,可能需要补补数学
大概是借助于图的拉普拉斯矩阵的特征值和向量来研究图的性质

这里的拉普拉斯矩阵是Symmetric normalized Laplacian
还是比较好理解的,
1
L=D-A
L是拉普拉斯矩阵
D是对角阵。每个顶点的度
A是邻接矩阵,表示(i,j)顶点是否相连(对角就是自连)

利用拉普拉斯矩阵就可以对拓扑图进行特征提取。
方式是谱分解(充要条件为n阶方阵存在n个线性无关的特征向量),可证明该矩阵半正定对称,所以能分解。
分解效果是
1

其中 ,U是列向量为单位特征向量的矩阵,也就说Ui是列向量。
U=(U1,U2,U3,….Un)

接下来进行傅立叶变换和卷积,由于晚上时间不够,而且看不太懂,不再详细复现

1

和谱分解的效果是一样的