图卷积Graph Convolutional Networks

转自 https://blog.csdn.net/lemon759597/article/details/81104891

 

CNN已经在计算机视觉(CV)以及自然语言处理等领域取得了非常好的水平,其中的数据可以被称作是一种Euclidean Data,CNN正好能够高效的处理这种数据结构,探索出其中所存在的特征表示。所谓的欧氏(欧几里德)数据指的是类似于grids, sequences… 这样的数据,例如图像就可以看作是2D的grid数据,语音信号就可以看作是1D的grid数据。但是现实的处理问题当中还存在大量的 Non-Euclidean Data,如社交多媒体网络数据,化学成分结构数据,生物基因蛋白数据以及知识图谱数据等等,这类的数据属于图结构的数据(Graph-structured Data)。

图结构数据

 如果数据看起来像这样该怎样利用深度学习,

一个简单的方法:

•       求邻接矩阵A和特征矩阵X

•       串联Xin=[A,X]

•       输入全连接神经网络

缺点:

•参数数量过大

•图形变化需重新训练

为什么研究GCN

1.CNN无法处理Non Euclidean Structure的数据,学术上的表达是传统的离散卷积在Non Euclidean Structure的数据上无法保持平移不变性。也就是说在拓扑图中每个顶点的相邻顶点数目都可能不同,那么也就无法用一个同样的尺寸的卷积核来进行卷积运算。

2.CNN无法处理Non Euclidean Structure的数据,又希望在拓扑图上有效的提取空间特征来进行学习,所以GCN成为研究重点。

3.数据不是拓扑结构的网络时,也会用到GCN。广义上来讲任何数据在赋范空间内都可以建立拓扑关系,谱聚类就是这样的思想。

两种主流方式来提取拓扑图的空间特征:

  1. 基于空间域 :Learning Convolutional Neural Networks for Graphs  ——ICML 2016

 为了能够对任意结构的图进行卷积操作,这篇文章提出了PATCHY-SAN (Select-Assemble-Normalize)的方法,通过三个步骤构建卷积分片:1.从图中选择一个固定长度的节点序列;2.对序列中的每个节点,收集固定大小的邻域集合;3.对由当前节点及其对应的邻域构成的子图进行规范化,作为卷积结构的输入。通过上述三个步骤构建出所有的卷积片之后,利用卷积结构分别对每个分片进行操作。具体示意图如下图所示。

总体上讲,就是用w个固定size=k的子图来表示输入的graph,再将这w个子图正则化后,生成一个w*k维的向量,作为传统的CNN的输入,进行学习。其实就是做了一个从graph到向量的映射的一个预处理过程。

具体构建卷积分片的步骤:

1.节点序列选择:为对图中所有的节点进行标号排序,将图中的节点集合根据向心性(节点的度、中心度等)映射为有序的节点序列。从该序列中根据一定的间隔s隔段选取w个节点构成最终的节点序列。

2.邻域节点收集:对于上一步获得的节点序列中的每一个节点,利用广度优化搜索扩展邻域节点,和源节点一起构成一个k大小的邻域集合。

3.子图规范化:对邻域集合中的各节点标号排序,得到接受域。那么,对于节点的属性,k个节点属性值构成了一个输入通道,对于边的属性,k^2个属性值也构成了一个输入通道。我们可以分别用一维的卷积层来处理这两种输入通道(对于节点属性卷积层长度为k,对于边属性卷积层长度为k^2)。

香港中大-商汤科技联合实验室的最新 AAAI 会议论文“Spatial Temporal Graph Convolution Networks for Skeleton Based Action Recognition”提出了一种新的 ST-GCN,即时空图卷积网络模型,用于解决基于人体骨架关键点的人类动作识别问题。该方法除了思路新颖之外,在标准的动作识别数据集上也取得了较大的性能提升。

ST-GCN 的基础是时空图结构。大致步骤:

•构建时空图(包括相邻关键点的连接关系或身体部件等,如手-手肘-肩膀的连接关系)。

•图结构上的卷积网络

2. 基于频谱域 :借助图谱的理论来实现拓扑图上的卷积操作     Spectral Networks and Deep Locally Connected Networks on Graphs             ——NIPS 2014

对于图G=(V,E),其中Laplacian矩阵的定义为L=D-A,其中L是Laplacian矩阵,D是顶点的度矩阵(对角矩阵),对角线上的元素依次为各顶点的的度,A是图的邻接矩阵。

Symmetric normalized Laplacian: ,很多GCN的论文中应用的是这样的拉普拉斯矩阵。

对于拉普拉斯矩阵进行谱分解为:

所以特征分解可以写成:

特征分解最右边的特征矩阵的逆,只是拉普拉斯的性质可以写成特征矩阵的转置

卷积定理:函数卷积的傅里叶变化是函数傅里叶变化的乘积,即对于函数f(t)h(t)两者的卷积是其函数傅里叶变换乘积的逆变换:

类比到Graph上并把傅里叶变换的定义带入,f与卷积核h在Graph上的卷积可以由下面步骤得到:

f的傅里叶变换为

卷积核h的傅里叶变换写成对角矩阵的形式 

两者的傅里叶变换乘积即为

这种参数方法缺点:

  1. 每一次前向传播,都要计算U, diag(θl)以及UT三者的乘积,特别是对于大规模的graph,计算代价较高,也就是论文中的O(n2)的计算复杂度
  2. 卷积核需要n个参数

 

 

转自 https://blog.csdn.net/lemon759597/article/details/81104891

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值