GCN理论和应用

图卷积网络的来龙去脉

Posted by Oscar Zhang on December 6, 2018

核心:图卷积

在计算机视觉领域,Convolutional Neural Network(CNN)已经取得了巨大成就,主要针对Euclidean Structure的数据(图像属此类型)。

在Topological Structure(拓扑结构)数据中,相应的工具则是Graph Convolutional Network,可以应对更广义的结构数据。

GCN在ICLR 2017由T.Kipf, M.Welling正式提出(Semi-supervised Classification with Graph Convolutional Networks)。

先介绍一下图的基础知识。对于一个图:

对应的数学表示为:

Degree Matrix Adjacency Matrix Laplacian Matrix

在GCN文中一开始便给出了核心,每两层直接的递推公式:

其中,加上单位对角矩阵;是相应的度;为第层以各节点特征为行向量的矩阵(为输入);为权重矩阵,每层不同,是训练最终要得到的参数;是激活函数。

图卷积的来龙

我看到卷积公式之后,内心是崩溃的:为什么是这样一个公式,有什么道理吗?总不能是试来的吧?
抱着为什么的疑问,我对其来龙进行了简要的学习,这个过程还是蛮有意思的。下面是一个简要介绍,省略了数学的性质和推导,主要看中心思想。 众所周知,卷积是信号处理中的概念,与Fourier transform息息相关。GCN的概念也是从此推广而来。

图上的傅立叶变换

首先,图的Laplacian matrix 是半正定对称矩阵,利用其性质,可以进行矩阵分解

其中,个特征值组成的对角阵,是列向量为单位特征向量的矩阵。

因为是正交矩阵,有,所以有:

如何利用包含图结构的,和代表其特性的的推导出图卷积的过程?

故事要从Fourier transform说起。傅立叶正变换:

公式很复杂,这里只说它的思想。傅立叶变换用形象一些的图表示为:

傅立叶逆变换,就是上图的逆向过程:

从物理角度理解傅里叶变换是以一组特殊的函数为正交基,对原函数进行线性变换,物理意义便是原函数在各组基函数的投影。这跟拉普拉斯矩阵的特征值分解有相同的本质。
如果将看成时间信号,就可以套用傅里叶变换了。

类推Topological Graph上的傅立叶变换:

矩阵形式为

具体来说,就是

其中,是拓扑图中第n个节点的特征,是在特征值的域上的特征。
相应的逆变换为:

图上的卷积

傅里叶卷积:

推广到图卷积:

矩阵形式

设计核函数

则有

  • 可以看出,最终的计算公式具有Spatial Localization

再结合是拉普拉斯矩阵的一种变形。所以,就不难理解了。

图卷积的应用

原文例:聚类

上图是一个社交网络(空手道俱乐部),节点表示成员的特征,边表示有社交关系,颜色代表了他们所属的小团体。不依靠节点的特征,只通过图,在随机初始化权重之后,经过两次前向传播,可以大致将成员分对。

原文例:半监督学习

每类只只标记一个样本(图例是四类),将网络最终的输出做训练,即只对这四个样本做训练。剩下的样本在训练完成之后的输出即是预测。

视频动作识别

Wang, Xiaolong, and Abhinav Gupta. “Videos as Space-Time Region Graphs.” ECCV, 2018).

在前向传播的过程中,插入GCN模块。如图例,对连续四帧监测到的目标,建立图。可以将目标之间的关联信息加以利用,增强目标识别的效果。