图卷积网络(Graph Convolutional Network,GCN)是近年来逐渐流行的一种神经网络结构。不同于只能用于网格结构(grid-based)数据的传统网络模型 LSTM 和 CNN,图卷积网络能够处理具有广义拓扑图结构的数据,并深入发掘其特征和规律,例如 PageRank 引用网络、社交网络、通信网络、蛋白质分子结构等一系列具有空间拓扑图结构的不规则数据。相比于一般的拓扑图而言,人体骨骼拓扑图具有更加良好的稳定性和不变性,因此从2018年开始,就有许多学者尝试将图卷积网络应用到基于人体骨骼的行为识别领域来,也取得了不错的成果。下面就让我们来深入了解一下什么是图卷积网络,以及它在行为识别领域的最新工作进展吧!

什么是图(graph)?为什么要研究GCN?

我们知道,CNN 在处理图像数据时具有很强的特征抽取能力和整合能力,这得益于卷积核(kernel ,or filter)的参数共享机制和加权平均机制。卷积本质上就是一种加权求和的过程,而卷积核的参数就是不同像素点对应的权重,并且不同的图片都共享同一个卷积核,这使得CNN能够通过对卷积核参数的迭代更新来隐式的学习图像中具有的像素排列规律,进而学习到不同的形状特征和空间特征。

但值得注意的一点是,CNN 所处理的数据都具有规则的网格结构,也就是排列很整齐的矩阵,具有 Euclidean Structure,例如 RGB 图片(图1)。如果要将CNN应用于非图像领域,就必须将数据组合为规整的网络结构,才能作为CNN的输入。例如在 18 年之前的行为识别研究中,常用的方法就是以一定的顺序将一个动作的关节坐标序列转换为一张 RGB 图片,从而将动作识别工作转化为图像识别工作。

图1 规则空间结构数据

然而现实生活和科学研究中有很多数据都不具备完整的矩阵结构,相反,更多的是以一定的连接关系聚合在一起,如图2所示。社交网络,通信网络,互联网络等都具有类似的结构。

图2 社交网络拓扑图

类似这样的网络结构就是图论中所定义的拓扑图。更一般的,图就是指图论中用顶点和边建立相应关系的拓扑图。我们可以用一个点和边的集合来表示图:G=(E,V);其中E表示边的集合,V表示顶点的集合。

那么对于这种具有拓扑图结构的数据而言,CNN 处理起来是非常困难的(但也不是没有办法哦),而且通常不能很好的抽取节点与节点之间的连接关系信息(是否相连),这也是我们研究 GCN 的重要原因。当然,根本的原因还是在于数据的多样性,广义上来讲,任何数据在赋范空间内都可以建立拓扑关联,谱聚类就是应用了这样的思想。所以说拓扑连接是一种广义的数据结构,GCN 有很大的应用空间。

图卷积操作如何进行呢?

目前有两种类型的图卷积操作,一种是基于空域的图卷积,另一种是基于谱域的图卷积,这里着重介绍第一种。

前面我们提到,卷积操作的本质意义就是对一个范围内的像素点进行加权求平均,这能有助于提取空间特征,那么如何将这种思想应用到拓扑图上呢?我们可以换一种方式来理解卷积操作,如图3,对于feature map(蓝色部分)中的一个点(红色),其特征值实际上是周围所有像素点将特征值传播到中心点后进行加权平均,这种操作等效于传统的卷积操作,只不过我们人为的为特征添加了一个传播方向(边),将每个像素点当成顶点,从而在图结构上再次定义了卷积操作。

图3 卷积操作的另一种理解

进一步的,对于广义拓扑图结构的数据,也可以按照这种思想来定义卷积操作,如图4所示,将每个节点的邻居节点的特征传播到该节点,再进行加权平均,就可以得到该点的聚合特征值,只不过在 CNN 中,我们将这个聚合特征值当做了 feature map 中的一个点,而在 GCN 中没有 feature map 的概念,我们直接将这个聚合特征值作为传播到下一层的特征值。蓝色部分就是图卷积操作对应的 kernel,这里是为了理解才画出这个蓝色区域,在 GCN 中也没有 kernel 的概念,这也是因为图是不规则的。

类似于 CNN,图卷积也采用共享权重,不过不同于 CNN 中每个 kernel 的权重都是规则的矩阵,按照对应位置分配,图卷积中的权重通常是一个集合。在对一个节点计算聚合特征值时,按一定规律将参与聚合的所有点分配为多个不同的子集,同一个子集内的节点采用相同的权重,从而实现权重共享。例如对于图4,我们可以规定和红色点距离为 1 的点为 1 邻域子集,距离为 2 的点为 2 邻域子集。当然,也可以采用更加复杂的策略,例如按照距离图重心的远近来分配权重。权重的分配策略有时也称为 label 策略,对邻接节点分配 label,label 相同节点的共享一个权重。

到这里想必你已经发现了,其实图卷积操作就是传统的卷积操作在拓扑图上的概念延伸和转移,通过对比二者,你能更好的学习到图卷积网络的精髓。

图4 拓扑图上的卷积操作

特征在层与层之间的传播方式可以用公式表示如下:

其中 Hi 是第 i 层的特征矩阵,当 i=0时,H0 就表示输入图的节点特征矩阵。A是输入图的邻接矩阵,Wi表示第i层的权重矩阵。σ表示激活函数。通过邻接矩阵左乘特征矩阵,可以实现特征的聚合操作,然后再右乘权重矩阵,可以实现加权操作。权重矩阵W和邻接矩阵H是用图卷积做行为识别工作时的重点研究对象。邻接矩阵的示例如下图:

图5 邻接矩阵示例

如果两个节点相邻,那么在矩阵中对应位置为1,否则为0。这是一种非常基础的定义,不同的行为识别工作会在此基础上设计不同的变体定义。

概括的来说,图卷积操作就是将每个节点的特征与其邻居节点的特征加权平均后传播到下一层。这种图卷积操作称为在空域上的图卷积,有如下几个特点:

1. 随着层数的加深,每个节点能聚合到的特征越远,也就是感受野越大。

2. 权重是共享的,不会具体到每个节点,这和传统CNN相同。(直观的理解,如果权重是因节点而不同的,那么一旦图结构发生变化,权重就会立刻失效)

3.每个顶点的邻居节点数可能不同,这导致邻居节点多的顶点的特征值更显著。

4.邻接矩阵在计算时无法将节点自身的特征包含到聚合特征值中。

此外,为了克服空域图卷积的缺点,学者们提出了谱域上的图卷积,大概思想是利用图的拉普拉斯矩阵和傅里叶变换来进行卷积操作。基于谱域的图卷积目前在行为识别中应用较少,并且原理非常复杂,这里不做详细介绍,有兴趣的同学可以阅读相关文章。

其他:

图卷积网络GCN理解

2019年06月12日 17:31:23 山水之间2018 阅读数 304更多

分类专栏: 卷积神经网络 Action Detection

图卷积网络(Graph Convolutional Network,GCN)是近年来逐渐流行的一种神经网络结构。不同于只能用于网格结构(grid-based)数据的传统网络模型 LSTM 和 CNN,图卷积网络能够处理具有广义拓扑图结构的数据,并深入发掘其特征和规律,例如 PageRank 引用网络、社交网络、通信网络、蛋白质分子结构等一系列具有空间拓扑图结构的不规则数据。相比于一般的拓扑图而言,人体骨骼拓扑图具有更加良好的稳定性和不变性,因此从2018年开始,就有许多学者尝试将图卷积网络应用到基于人体骨骼的行为识别领域来,也取得了不错的成果。下面就让我们来深入了解一下什么是图卷积网络,以及它在行为识别领域的最新工作进展吧!

什么是图(graph)?为什么要研究GCN?

我们知道,CNN 在处理图像数据时具有很强的特征抽取能力和整合能力,这得益于卷积核(kernel ,or filter)的参数共享机制和加权平均机制。卷积本质上就是一种加权求和的过程,而卷积核的参数就是不同像素点对应的权重,并且不同的图片都共享同一个卷积核,这使得CNN能够通过对卷积核参数的迭代更新来隐式的学习图像中具有的像素排列规律,进而学习到不同的形状特征和空间特征。

但值得注意的一点是,CNN 所处理的数据都具有规则的网格结构,也就是排列很整齐的矩阵,具有 Euclidean Structure,例如 RGB 图片(图1)。如果要将CNN应用于非图像领域,就必须将数据组合为规整的网络结构,才能作为CNN的输入。例如在 18 年之前的行为识别研究中,常用的方法就是以一定的顺序将一个动作的关节坐标序列转换为一张 RGB 图片,从而将动作识别工作转化为图像识别工作。

图1 规则空间结构数据

然而现实生活和科学研究中有很多数据都不具备完整的矩阵结构,相反,更多的是以一定的连接关系聚合在一起,如图2所示。社交网络,通信网络,互联网络等都具有类似的结构。

图2 社交网络拓扑图

类似这样的网络结构就是图论中所定义的拓扑图。更一般的,图就是指图论中用顶点和边建立相应关系的拓扑图。我们可以用一个点和边的集合来表示图:G=(E,V);其中E表示边的集合,V表示顶点的集合。

那么对于这种具有拓扑图结构的数据而言,CNN 处理起来是非常困难的(但也不是没有办法哦),而且通常不能很好的抽取节点与节点之间的连接关系信息(是否相连),这也是我们研究 GCN 的重要原因。当然,根本的原因还是在于数据的多样性,广义上来讲,任何数据在赋范空间内都可以建立拓扑关联,谱聚类就是应用了这样的思想。所以说拓扑连接是一种广义的数据结构,GCN 有很大的应用空间。

图卷积操作如何进行呢?

目前有两种类型的图卷积操作,一种是基于空域的图卷积,另一种是基于谱域的图卷积,这里着重介绍第一种。

前面我们提到,卷积操作的本质意义就是对一个范围内的像素点进行加权求平均,这能有助于提取空间特征,那么如何将这种思想应用到拓扑图上呢?我们可以换一种方式来理解卷积操作,如图3,对于feature map(蓝色部分)中的一个点(红色),其特征值实际上是周围所有像素点将特征值传播到中心点后进行加权平均,这种操作等效于传统的卷积操作,只不过我们人为的为特征添加了一个传播方向(边),将每个像素点当成顶点,从而在图结构上再次定义了卷积操作。

图3 卷积操作的另一种理解

进一步的,对于广义拓扑图结构的数据,也可以按照这种思想来定义卷积操作,如图4所示,将每个节点的邻居节点的特征传播到该节点,再进行加权平均,就可以得到该点的聚合特征值,只不过在 CNN 中,我们将这个聚合特征值当做了 feature map 中的一个点,而在 GCN 中没有 feature map 的概念,我们直接将这个聚合特征值作为传播到下一层的特征值。蓝色部分就是图卷积操作对应的 kernel,这里是为了理解才画出这个蓝色区域,在 GCN 中也没有 kernel 的概念,这也是因为图是不规则的。

类似于 CNN,图卷积也采用共享权重,不过不同于 CNN 中每个 kernel 的权重都是规则的矩阵,按照对应位置分配,图卷积中的权重通常是一个集合。在对一个节点计算聚合特征值时,按一定规律将参与聚合的所有点分配为多个不同的子集,同一个子集内的节点采用相同的权重,从而实现权重共享。例如对于图4,我们可以规定和红色点距离为 1 的点为 1 邻域子集,距离为 2 的点为 2 邻域子集。当然,也可以采用更加复杂的策略,例如按照距离图重心的远近来分配权重。权重的分配策略有时也称为 label 策略,对邻接节点分配 label,label 相同节点的共享一个权重。

到这里想必你已经发现了,其实图卷积操作就是传统的卷积操作在拓扑图上的概念延伸和转移,通过对比二者,你能更好的学习到图卷积网络的精髓。

图4 拓扑图上的卷积操作

特征在层与层之间的传播方式可以用公式表示如下:

其中 Hi 是第 i 层的特征矩阵,当 i=0时,H0 就表示输入图的节点特征矩阵。A是输入图的邻接矩阵,Wi表示第i层的权重矩阵。σ表示激活函数。通过邻接矩阵左乘特征矩阵,可以实现特征的聚合操作,然后再右乘权重矩阵,可以实现加权操作。权重矩阵W和邻接矩阵H是用图卷积做行为识别工作时的重点研究对象。邻接矩阵的示例如下图:

图5 邻接矩阵示例

如果两个节点相邻,那么在矩阵中对应位置为1,否则为0。这是一种非常基础的定义,不同的行为识别工作会在此基础上设计不同的变体定义。

概括的来说,图卷积操作就是将每个节点的特征与其邻居节点的特征加权平均后传播到下一层。这种图卷积操作称为在空域上的图卷积,有如下几个特点:

1. 随着层数的加深,每个节点能聚合到的特征越远,也就是感受野越大。

2. 权重是共享的,不会具体到每个节点,这和传统CNN相同。(直观的理解,如果权重是因节点而不同的,那么一旦图结构发生变化,权重就会立刻失效)

3.每个顶点的邻居节点数可能不同,这导致邻居节点多的顶点的特征值更显著。

4.邻接矩阵在计算时无法将节点自身的特征包含到聚合特征值中。

此外,为了克服空域图卷积的缺点,学者们提出了谱域上的图卷积,大概思想是利用图的拉普拉斯矩阵和傅里叶变换来进行卷积操作。基于谱域的图卷积目前在行为识别中应用较少,并且原理非常复杂,这里不做详细介绍,有兴趣的同学可以阅读相关文章。

其他:

如何理解 Graph Convolutional Network(GCN)?(一定要看)

图卷积网络GCN理解相关推荐

  1. 图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导

    文章目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral domai ...

  2. 图神经网络之图卷积网络——GCN

    图卷积网络--GCN 一.前置基础知识回顾 图的基本概念 构造图神经网络的目的 训练方式 二.回顾卷积神经网络在图像及文本上的发展 图像上的卷积网络 文本上的卷积网络 图卷积网络的必要性 三.图卷积网 ...

  3. 一文读懂简化的图卷积网络GCN(SGC)| ICML 2019

    作者 | yyl424525 来源 | CSDN博客 文章目录 1 相关介绍 1.1 Simple Graph Convolution (SGC)提出的背景 1.2 SGC效果 2 Simple Gr ...

  4. 图卷积网络GCN(Graph Convolution Network)(一)研究背景和空域卷积

    文章首发于个人站点: 图卷积网络GCN(Graph Convolution Network)(一)研究背景和空域图卷积 | 隐舍 公众号:[DreamHub] 由于文章篇幅较长,因此将其分解为三部分: ...

  5. 图卷积网络GCN的简单理解

    GCN ( Graph Convolutional Networks ),图卷积网络 Hl+1=σ(D~−12A~D~−12Hlwl)(1)H^{l+1}=\sigma\left(\widetilde ...

  6. 图卷积网络(GCN)简单理解

    1. 预备知识 1.1 图网络的种类.区别和联系 Graph Embedding Graph Embedding指图嵌入,属于表示学习的范畴,也可以称为网络嵌入.图表示学习.网络表示学习等等. 具体可 ...

  7. 图卷积网络GCN简介

    翻译自GRAPH CONVOLUTIONAL NETWORKS, THOMAS KIPF, 30 SEPTEMBER 2016,原文作者是semi-Supervised Classification ...

  8. 解读:CVPR1903_图卷积网络GCN无监督人脸聚类

    Linkage Based Face Clustering via Graph Convolution Network https://arxiv.org/pdf/1903.11306.pdf 1简述 ...

  9. 图卷积神经网络(GCN)理解与tensorflow2.0代码实现

    图(Graph),一般用 G=(V,E)G=(V,E)G=(V,E) 表示,这里的VVV是图中节点的集合,EEE 为边的集合,节点的个数用NNN表示.在一个图中,有三个比较重要的矩阵: 特征矩阵XXX ...

  10. 图卷积网络GCN数学原理

    Math of GCN 参考视频 目录 Math of GCN 1 Basic of GCN 2 Spectral Graph Theory 2.1 Properties of matrixes re ...

最新文章

  1. RESTful之异常处理 Exceptions
  2. Pytorch+LSTM+AI自动写诗实战
  3. [转]php curl 设置host curl_setopt CURLOPT_HTTPHEADER 指定host
  4. 【MATLAB】数据类型 ( 元胞数组 | 单位阵 | 幻方 | 结构体 | 元胞数组值获取 )
  5. springmvc二十:数据绑定
  6. html5效果源码,10款web前端值得学习的 HTML5 效果附源码
  7. Android 开发笔记___初级控件之实战__计算器
  8. Hadoop MapReduce编程 API入门系列之wordcount版本3(七)
  9. Android中需要了解的数据结构(一)
  10. DEVC中的for编译出错问题解决办法
  11. QQ游戏连连看自动化脚本(仅限学习交流)
  12. vue使用高德地图关键字搜索功能的实例代码(踩坑经验)
  13. python文献翻译_英文学术文献翻译软件有哪些推荐?
  14. win7安装后无声音怎么办
  15. Flash Builder常见菊紧问题集锦
  16. 10款手机网页模板_手机wap网站模板_html5手机网站模板源码下载(三)
  17. 亚马逊运营选品时的几个小技巧,爆款日出千单
  18. shellcode免杀;CS上线;获取微信聊天记录
  19. 【Node.js】深度解析搭建后台服务器-http模块
  20. 【新书推荐】头脑聪明,思维活跃,但极有可能是一名低质量学习者!

热门文章

  1. 对Javascript“闭包”的简单理解
  2. 从dist到es:发一个NPM库,我蜕了一层皮
  3. 第35课 函数对象分析(函数操作符()重载)
  4. 实验报告四201521460014
  5. 【cluvfy】集群验证工具cluvfy使用方法——stage
  6. Android开发里的自定义View的实现
  7. 【转】一步一步学Linq to sql(十):分层构架的例子
  8. Linux 远程登录telnet和ssh
  9. MySQL不能插入中文字段的解决办法
  10. JavaWeb项目服务端获取客户端的IP地址