图卷积网络GCN(Graph Convolution Network)(一)研究背景和空域卷积
文章首发于个人站点: 图卷积网络GCN(Graph Convolution Network)(一)研究背景和空域图卷积 | 隐舍
公众号:【DreamHub】
由于文章篇幅较长,因此将其分解为三部分:
- 图卷积网络GCN(Graph Convolution Network)(一)研究背景和空域图卷积
- 图卷积网络GCN(Graph Convolution Network)(二)图上的傅里叶变换和逆变换
- 图卷积网络GCN(Graph Convolution Network)(三)详解三代图卷积网络理论
研究背景
首先,为什么需要研究图卷积网络GCN(Graph Convolution Network)
呢?
目前算法研究处理的数据主要分为两种:
Euclidean
结构数据:主要有图片、语音、文本等数据结构,例如图像、视频中像素点是排列整齐的矩阵,可以被CNN(Convolution Neural Network)
高效地处理。
Non-Euclidean
结构数据:主要有图(graph)和三维几何等数据,CNN无法直接处理在这些数据。
因此,研究GCN的原因可以分为以下三点:
- CNN无法直接处理Non-Euclidean数据。学术表达是传统离散卷积无法在Non-Euclidean的结构数据上无法保持平移不变性;简而言之就是在图结构数据中每个顶点的邻居节点数据不同,无法使用相同大小的卷积核来进行卷积运算。
- 由于CNN无法直接处理Non-Euclidean 结构数据,而卷积操作可以有效地提取数据的特征。因此,如何在图数据中利用卷积来提取空间特征来进行机器学习是一个亟待解决的问题,也是GCN研究的重点内容。
- 如果研究的问题本身不具备拓扑图结构,是否可以使用GCN?广义上来说任何数据在其空间内都可以建立拓扑关联,例如谱聚类方法(谱聚类原理总结),因此拓扑图结构是一种广义的数据结构,GCN可以应用在多个领域当中。
回顾CNN
CNN 比 FC 有效且在在图像识别等任务中取得显著的成效,主要是因为 CNN 的以下特性:
- 局部平移不变性(Local Translational Invariance)
- 卷积核特性(Convolution Kernels)
- 参数共享(Parameter Sharing)
- 局部连接性(Local Connection)
- 层次化表达(Hierarchical Expression)
局部平移不变性
对于 CNN 而言,其核心在于使用了基于卷积核的卷积操作来提取图像的特征,即计算区域内的中心节点和相邻节点进行加权求和。
CNN 在图像领域取得显著效果的原因是图片(RGB)是规则化的数据结构,可存储在三维矩阵中,无论卷积核平移到图片中的哪个位置都可以保证其运算结果的一致性,这就是局部平移不变性。如下图所示:
CNN 的卷积本质就是利用这种平移不变性来对扫描的区域进行卷积操作,从而实现图像特征的提取。
拓扑图结构是不规则的数据结构,所以其不存在平移不变形(每个顶点的周围邻居数不固定),如下图所示,无法使用固定大小的卷积核来进行卷积操作,使得传统的 CNN 方法无法直接应用于网络中。
卷积核特性
CNN 一个核心的思想是卷积核参数共享(Parameter Sharing),卷积核在图像上的卷积操作如下:
此时模型的参数大小仅与卷积核大小有关,而如果不进行参数共享的话,参数的大小则与图像的像素矩阵保持一致,如下图所示:
CNN 另一核心思想是卷积核的局部连接性(Locally Connection),局部连接是指卷积操作仅在与卷积核大小对应的区域进行,卷积操作的输入和输出是局部连接的,全局连接则会导致模型参数量巨大,与FC(Full Connection)网络类似:
PS:卷积核还有另一特性,每个卷积核都是`O(1)O(1)O(1)复杂度,与输入大小无关。这样可以提高模型的泛化能力。
层次化表达
CNN 的层次化表达是指神经网络通过多个卷积层对图片进行特征提取,包括池化(Pooling)操作。每一个卷积层在前一层的基础上进行处理操作,那么随着网络深度的增加,其提取到的特征越高级,趋于语义特征。比如说:第一层可能是一些线条,第二层可能会是一些纹理,第三层可能是一些抽象图案,如下图所示:
如何使用卷积操作提取图的空间特征?
现在常用的图卷积可以被分成两类:
- 空间域卷积(vertex domain、spatial convolution)
- 频域卷积/谱图卷积(spectral domain)
空域图卷积直接在原空间图上做卷积运算。频域图卷积是先把信号转换到傅立叶空间,然后做卷积运算后再转换到原始空间。
空域卷积
上述谈到 CNN 难以应用在图上的问题在于顶点的邻域无法确定,空域卷积是以最直观的方式选择特定数量的领域并在每个节点及其领域组成的矩阵中进行卷积运算。经典空域卷积文章推荐阅读:Learning Convolutional Neural Networks for Graphs
这篇文章针对图分类任务,过程如下图所示:
算法步骤如下:
- 根据中心性的方法选择www个可以代表graph的顶点——即计算顶点与其它所有节点的距离和,和值越小说明该顶点的中心性越大。
- 为每个顶点找到KKK个邻域顶点。先从一阶邻域中选择,如果顶点数大于KKK那么删除中心性值小的顶点;如果顶点数小于KKK那么接着从二阶邻域中选择或者补充0向量。
- 选出的KKK个节点,每个节点和其它节点可以构成(K+1)×F(K+1)\times F(K+1)×F的矩阵,所有的边也可以构成(K+1)×(K+1)×F(K+1)\times (K+1)\times F(K+1)×(K+1)×F的张量,然后在这些张量中做卷积操作。
这种方法的缺点如下:
- 每个顶点的邻域顶点都不相同,使得计算处理必须针对每个节点;
- 图的空间特征提取效果不好;
以上简单阐述了空间域图卷积的方法,如果对该思路有兴趣可以查阅相关资料。
但是小编讨论问重点,本系列文章主要阐述的内容是谱图卷积的理论基础及其实践。
接下来准备介绍谱图理论和图上的傅里叶变换、逆变换!!!
图卷积网络GCN(Graph Convolution Network)(一)研究背景和空域卷积相关推荐
- 图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导
文章目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral domai ...
- 异构图注意力网络Heterogeneous Graph Attention Network ( HAN )
文章目录 前言 一.基础知识 1.异构图(Heterogeneous Graph) 2.元路径 3.异构图注意力网络 二.异构图注意力网络 1.结点级别注意力(Node-level Attention ...
- 异构图注意力网络 Heterogeneous Graph Attention Network
# Heterogeneous Graph Attention Network 文章目录 ABSTRACT KEYWORDS INTRODUCTION RELATED WORK G ...
- 图卷积网络GCN简介
翻译自GRAPH CONVOLUTIONAL NETWORKS, THOMAS KIPF, 30 SEPTEMBER 2016,原文作者是semi-Supervised Classification ...
- 深入理解图注意力机制(Graph Attention Network)
参考来源:https://mp.weixin.qq.com/s/Ry8R6FmiAGSq5RBC7UqcAQ 1.介绍 图神经网络已经成为深度学习领域最炽手可热的方向之一.作为一种代表性的图卷积网络, ...
- 论文翻译 SGCN:Sparse Graph Convolution Network for Pedestrian Trajectory Prediction 用于行人轨迹预测的稀疏图卷积网络
SGCN:Sparse Graph Convolution Network for Pedestrian Trajectory Prediction 用于行人轨迹预测的稀疏图卷积网络 行人轨迹预测是自 ...
- Graph Convolution Network图卷积网络(二)数据加载与网络结构定义
背景 : 弄懂Graph Convolution Network的pytorch代码如何加载数据并且如何定义网络结构的. 代码地址:https://github.com/tkipf/pygcn 论文地 ...
- 一文读懂简化的图卷积网络GCN(SGC)| ICML 2019
作者 | yyl424525 来源 | CSDN博客 文章目录 1 相关介绍 1.1 Simple Graph Convolution (SGC)提出的背景 1.2 SGC效果 2 Simple Gr ...
- 卷积-CNN-GCN-LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation论文笔记
参考博客:https://www.zhihu.com/question/54504471/answer/332657604 1. 卷积 连续: ( f ∗ g ) ( n ) = ∫ − ∞ + ∞ ...
最新文章
- django两个服务器之间的通讯
- pyqt 获取 UI 中组件_初级UI需注意10个移动端的关键原则
- Python:两个队列实现栈,两个栈实现队列
- Intel Realsense D435 将深度图的灰度图映射为彩色图,打印输出灰度图或彩色图
- 化学反应工程 第一章 均相单一反应动力学和理想反应器
- 呵呵!Function构造函数
- kubernetes-Deployment部署无状态服务的原理详解(七)
- Spring AOP与拦截器的区别
- 达摩院成立XG实验室!阿里官宣进军5G
- tp5可以请求到linux根目录么,TP5 获取项目根目录路径
- C#中使用反射遍历一个对象属性和值以及百分数
- vue要求更新3.0-》使用axios的时候出现错误
- anaconda自带的python是什么版本_anaconda怎么查看python版本
- 基于STC89C52的小车制作上篇,用电机将小车驱动起来之对L298N逻辑输入N1~N4详解
- php养老院管理系统论文,养老院一卡通管理
- cdr三角形转化为圆角,CDR实现圆角多边形的三种方法
- 切图常说的@1X@2X@3X是什么意思?
- 网络适配器感叹号(代码56)
- allegro 问题
- pvpgn mysql d2gs_pvpgn战网命令集