论文:Graph Neural Networks: A Review of Methods and Applications (GNN)
前言
Graph Convolutional Network,简称GCN ,一般应用在推荐系统,交通预测等这种抽象问题的学习中,但是也有应用在CV领域的例子。所以在CV领域,我对于它的学习没必要过深,但还要了解原理思想,于是写下此文章。本文是我的理解过程的记录,所以是以问题形式推进的,笔不会掉,适合我的同类轻松观看。
解释
GNN
GCN属于GNN的分支,那么GNN又是什么呢?图神经网络,这个图不是拍出来的图像(a),而是特征关系图(b),图1
![](https://img-blog.csdnimg.cn/20210109133324690.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hZ2ljX3NodWFuZw==,size_16,color_FFFFFF,t_70)
图1
欧几里空间图像很好建立,看见的是啥就是啥,拍出什么就用什么,很简单。那么, 非欧几里空间图是怎么画出来的呢?又怎么用矩阵表示?模型输入输出?学的是啥?
答:
首先咋画出来的?如图2所示,图由节点V和线E组成,,
。 图二是表示为 G(V,E),其中,N=6;V={1,2,3,4,5,6} ,E={(1,2),(1,5),(3,2),(5,2),(3,4),(4,5),(4,6)}
可以把输入数据根据节点关系画出图形,例如:铁路线路中,北京,天津,石家庄,沈阳,济南,河南就是图中的1,2,3,4,5,6 。(1,2)就是北京到天津的火车。
![](https://img-blog.csdnimg.cn/20210109140737718.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hZ2ljX3NodWFuZw==,size_16,color_FFFFFF,t_70)
用矩阵怎么表示这个图呢?邻接矩阵(Adjacency matrix) 连接矩阵是一个元素是bool型或权重值的 矩阵 ,该矩阵定义如下:
很简单,就是字面意思,把是否有关系做个矩阵形式,如图3。
![](https://img-blog.csdnimg.cn/20210109144413874.png)
还有度矩阵( Degree matrix)来表示,Dij为节点,度的对角矩阵,该矩阵定义如下:
很抽象,在对角位置元素的数值为该节点所有链接数如图4。
![](https://img-blog.csdnimg.cn/20210213113928909.png)
还有邻域( Neighborhood),表示与某个节点有链接的点集,点1的邻域是{2,5},公式如下:没啥可说的就是集合而已
普通拉普拉斯矩阵,L来表示,公式:L=D−A
对称归一化的拉普拉斯变换:
傅立叶变换+拉普拉斯矩阵:传统傅立叶变换的基,就是拉普拉斯矩阵的一组特征向量。
![](https://img-blog.csdnimg.cn/20210213153210522.png)
其中:
-
表示
的傅里叶变换
表示对称归一化的拉普拉斯矩阵
卷积+傅里叶变换:将上述公式推广到卷积
![](https://img-blog.csdnimg.cn/20210213132339853.png)
其中:
表示输入input
- g表示卷积核(权重)
表示一次卷积计算
两个分别傅里叶变换再内积
简化上述公式:
其中: 整体看作可学习的卷积核,
来表示
上述公式计算量很大,往后的论文都是用近似来简化,其中最出名的就是下面的式子,也就是T. N. Kipf, M. Welling, Semi-Supervised Classification with Graph Convolutional Networks(ICLR 2017) [Link, PDF (arXiv), code, blog]
![](https://img-blog.csdnimg.cn/20210213121443631.png)
公式注释:
为非线性激活函数
- D是度矩阵
:input数据
- W:权重