同学你好!本文章于2021年末编写,获得广泛的好评!
故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现,
Pytorch深度学习·理论篇(2023版)目录地址为:
CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录
本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!
https://v9999.blog.csdn.net/article/details/127587345
欢迎大家订阅(2023版)理论篇
以下为2021版原文~~~~
图卷积网络(Graph Convolutional Network,GCN)是一种能对图数据进行深度学习的方法。图卷积中的“图”是指数学(图论)中用顶点和边建立的有相关联系的拓扑图,而积指的是“离散卷积”,其本质就是一种加权求和,加权系数就是卷积核的权重系数。
图结构数据是具有无限维的一种不规则数据,每一个顶点周围的结构可能都是独一无二的,没有平移不变性使得传统的CNN、PNN无法在上面工作。
1 GCN
如果说CNN是图像的特征提取器,那么GCN便是图数据的特征提取器。
CNN可以直接对矩阵数据进行操作,而GCN操作方式有两种:谱域和顶点域。
1.1 基于谱域的图处理
谱域是谱图论中的术语。谱图论源于天文学,在天体观测中,可通过观察光谱的方式来观察距离遥远的天体。同样,图谱也是描述图的重要工具。
谱图论研究如何通过几个容易计算的定量来描述图的性质。通常的方法是将图结构数据编码成一个矩阵,然后计算矩阵的特征值。这个特征值也称为图的谱。被编码后的矩阵可以理解成图的谱域。
谱是方阵特有的性质,对于任意非欧氏空间数据,必须先通过计算其定量的描述生成方阵,才可以进一步求得谱。
GCN使用图结构中的度矩阵和邻接矩阵来表示图的谱域,这就是基于谱域实现。
GCN对矩阵的拉普拉斯变换,则是对图结构提取特征(谱)的一种方法。
1.2 基于定点域/空间域的图处理
指由图的本身结构所形成的空间,直接按照图的结构,根据相邻顶点间的关系以及每个顶点自己的属性,逐个顶点地进行计算。
1.3 基于顶点域的图卷积
基于顶点域的图卷积处理会比谱域的方式更加直观,也容易理解。
1.3.1 图卷积公式
1.3.2 图卷积的操作步骤(从顶点的角度)
图卷积的操作就是在整个图上对每个顶点都按照上式(10-1)的描述执行一遍。从顶点的角度来看,主要可以分成以下3个步骤:
1、发射(send):每一个顶点将自身的特征信息经过变换后发送给邻居顶点。这一步是对顶点的特征信息进行抽取变换,如图10-2所示。
2、接收(receive):每个顶点将邻居顶点的特征信息聚合。这一步是对顶点的局部结构信息进行融合,如图10-3所示。
3、变换(transform):将前面的信息聚合之后进行非线性变换,增加模型的表达能力,如图10-4所示。
使用GCN从图数据中提取的特征可以用于对图数据执行多种任务,如顶点分类、图分类(graph classification)和边预测(Iinkprediction),还可以顺便得到图的垂入表示。
1.3.4 图卷积的特性
1.局部参数共享:算子是适用于每个顶点(圆圈代表算子)的,处处共享。
2.感受域与层数成正比:最开始的时候,每个顶点包含直接邻居的信息,在计算第二层时,就能把邻居顶点的信息包含进来,这样参与运算的信息就更多、更充分。层数受域就更广,参与运算的信息就更多(特征一层层地抽取,每多一层就会更抽象、更高级)。