同学你好!本文章于2021年末编写,获得广泛的好评!
故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现,
Pytorch深度学习·理论篇(2023版)目录地址为:
CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!https://v9999.blog.csdn.net/article/details/127587345欢迎大家订阅(2023版)理论篇
以下为2021版原文~~~~
图卷积模型在每个全连接网络层的结果中加入了样本间的特征计算。其述质是依赖深度学特征与缺陷。
1.1 全连接网络的特征与缺陷
多层全连接神经网络被称为万能的拟合神经网络。先在单个网络层中用多个神经元节点实现低维的数据拟合,再通过多层叠加的方式对低维拟合能力进行综合,从而在理论上实现对任意数据的特征拟合。
图10-12左侧的两幅图表示前一层的两个神经元节点将数据在各自的直角坐标系中分成了两类。
图10-12中右侧的图表示后一层神经元将前一层的两个神经元结果融合到一起,实现最终的分类结果。
1.1.1 缺陷①:容易过拟合
从理论上来讲,如果全连接神经网络的层数和节点足够多,那么可以对任意数据进行拟合。然而,这一问题又会带来模型的过拟合问题。全连接神经网络不但会对正常的数据进行拟合,而且会对训练中的批次、样本中的噪声、样本中的非主要特征属性等进行拟合。这会使模型仅能使用在训练数据集上,无法用在类似于训练数据集的其他数据集上。
1.1.2 缺陷②:模型过大且不容易训练
目前,训练模型的主要方法都是反向链式求导,这使得全连接神经网络一旦拥有过多层数,就很难训练出来(一般只能支持6层以内)。即使使用BN分布式逐层训练等方式保证了多层训练的可行性,也无法承受模型中过多的参数带来的计算压力和对模型运行时的算力需求。
1.2 图卷积模型的缺陷(依赖于全连接网络的图模型的通病)
图卷积只是按照具有顶点关系信息的卷积核在每层的全连接网络上额外做一次过滤。
因为在图卷积模型中,也使用反向链式求导的方式进行训练,对图卷积模型深度的支持一般也只能到6层。
图卷积模型在层数受限的同时,也会存在参数过多且容易过拟合的问题。该问题也存在于GAT模型中。
1.3 弥补图卷积模型缺陷的方法(与全连接网络相同)
1.3.1 图卷积模型的层数受限
使用BN、分布式逐层训练等方法
1.3.2 图卷积模型容易出现过拟合
可以使用Dropout、正则化等方法,BN也有提高泛化能力的功能。
1.3.3 参数过多
使用卷积操作代替全连接的特征计算部分,使用参数共享来减小权重。
1.3.4 使用更好的模型
在图神经网络领域,还有一些更好的模型(例如SGC、GfNN和DGl等模型)。它们利用图的特性,从结构上对图卷积模型进行了进一步的优化,在修复图卷积模型原有缺陷的同时,又表现出了更好的性能。
1.4 从图结构角度理解图卷积原理及缺陷
图卷积模型的缺陷,其思路是将图结构数据当作矩阵数据,在规整的矩阵数据基础之上融合深度学习的计算方法。
在DGL库中实现的图卷积方法是基于图结构(空间域)的方式进行处理的。从效率角度来看,这样做有更大的优势,也更符合图计算的特点。
从基于图顶点传播的角度来看,图神经网络的过程可以理解为:基于顶点的局部邻居信息对顶点进行特征聚合,即将每个顶点及其周围顶点的信息聚合到一起以覆盖原顶点。
1.4.1 图神经网络的计算过程
如下图所示,描述目标顶点A在图神经网络中的计算过程:对于每一次计算,目标顶点A都对周围顶点特征执行一次聚合操作(任意深度)。
1.4.2 图卷积神经网络无法搭建过多层的原因
图卷积神经网络可以理解为每次执行聚合操作时都要对特征进行一次全连接的变换,并对聚合后的结果取平均值。层数过深会导致每个顶点对周围邻居的聚合次数过多。这种做法会导致所有顶点的值越来越相似,最终会收敛到同一个值,无法区分每个顶点的个性特征。
1.4.3 图注意力机制也存在无法搭建过多层的情况
图注意力机制中与图卷积的结构几乎一致,只不过是在顶点聚合的过程中对邻居顶点加入了一个权重比例。