DeepGCNs: Can GCNs Go as Deep as CNNs?

DeepGCNs: Can GCNs Go as Deep as CNNs?

基本信息

这是一篇由KAUST的Guohao Li于2019年发表在ICCV会议上的论文。文章主要在解决传统GCN网络的梯度消失问题,以及训练更深的GCN网络上做出了贡献。

博客创建者

武松

博客贡献人

武松

作者

Guohao Li, Matthias M¨uller, Ali Thabet, Bernard Ghanem

标签

GCN, gradiant vanishing, dynamic edge convolution, residual/dense connection, dilated convolutions, k-NN

摘要

文章指出,图卷积网络(Graph Convolution Networks, GCN)在对图数据的表征学习领域中表现出强大的潜力,但同早期的CNN遇到的问题一样,不能堆叠过多的卷积层,否则会导致梯度消失问题。模型层数太浅限制了对图数据的表示能力,但过深的模型引起的梯度消失又不可忽视。因此作者为解决这个问题,借鉴了CNN的方法,将CCNs中的残差连接(residual connections)、密集连接(dense connections)和扩张卷积(dilated convolutions)的方法迁移到GCN中,使得GCN可以训练的深度大大提升,达到了56层,在点云语义分割任务上超越了当前最佳性能方法。

问题定义

  • 图卷积网络(Graph Convolution Networks, GCN)

受CNN启发,卷积操作通过聚合函数聚合各个节点的邻居节点的信息来获得当前节点的表征,用更新函数来更新该层的图表示(即各个节点表示的集合)。图卷积操作的一般公式如下:

1.图卷积操作的一般公式

其中,$g_{l+1}$表示更新后的该层图表示,Aggregate函数对该层图表示中的每一个节点向量与其邻居节点进行聚合,Update函数将聚合后的节点表示进行非线性转换来更新。Aggregate函数通常使用各种池化操作、注意力聚合或LSTM来实现,Update函数通常使用多层感知机或门控网络来实现。
  • 3D点云语义分割任务(3D point cloud semantic segmentation)

这篇文章在改进GCN的任务基础上,将其在3D点云语义分割任务上进行验证。点云是一个数据集,数据集中的每个点代表一组X、Y、Z几何坐标和一个强度值,这个强度值根据物体表面反射率记录返回信号的强度。当这些点组合在一起时,就会形成一个点云,即空间中代表3D形状或对象的数据点集合。3D点云语义分割是指对点云中的每个点赋予特定的语义标签和分类,也可以说是对每个物体进行分割,赋予每个物体特定的含义。GCNs最近被应用到三维点云处理中。

  • 动态边卷积(dynamic edge convolution)

EdgeConv出自模型DGCNN,将GCNs用于点云处理任务,其中提出一种动态边卷积算法,动态边卷积通过k-NN算法针对每一层来动态构建每层每个节点的k个最近邻节点并连接边,从而动态构建点云中的边关系,使得GNNs得以解决点云问题。并且,动态边卷积还可以解决模型过平滑的问题以及获得更大的感受野,因此这篇文章的GCN部分都使用了EdgeConv层来构建,并引入扩张卷积的思想,在动态边卷积的同时以一定的扩张率对更远的近邻节点进行聚合。

方法

2.DeepGcns
整体架构

模型整体由3个部分组成:GCN Backbone Block、Fusion Block和MLP Prediction Block。GCN Backbone Block有3种实现来进行对比,分别是:PlainGCN、ResGCN和DenseGcn。PlainGCN使用现有的普通GCN实现来实现对点云数据的特征提取,后两者分别加入了残差连接和密集连接,都加入了动态边卷积和扩张卷积。在Fusion Block模块对全局特征和局部特征进行融合考虑,通过一层卷积层和一层全局最大池化组成的网络来实现对各层输出连接后的特征融合成全局特征向量,全局特征向量再与各层输出进行连接,形成融合后的具有全局和多尺度局部特征的融合特征。然后送入MLP对每个点进行分类。在点云数据的处理上,作者使用类似DGCNN中EdgeConv的方法来运用GCN,都使用k-NN方法建立节点与邻近节点的边关系。但在第一层使用3D坐标来计算欧式距离,后续层在特征空间中计算向量的 l 2 l_2 l2距离。

GCN残差连接

残差连接也称跳连接(skip connection),一般是指Resnet残差网络中的一个技巧,用于解决神经网络层数过深,梯度在反向传播过程中消失的问题。如下图所示,当神经网络学习一个函数 F ( x ) F(x) F(x)时,可以额外加上一个输入x,直观地理解就是在输入与输出之间建立一个输入的直接连接。至于残差连接为什么能解决梯度消失和让模型拟合效果更好,有不同的解释,可以参考相关论文

残差连接图示

在这篇文章中具体的将残差连接用在GCN中,就得到如下公式:

3.GCN残差连接公式

作者将其引入到GCN的各个层中,即在学习聚合更新该层输出的函数 F ( x ) {F(x)} F(x)时,要同时加上该层图表示 x x x本身,此时实际上该层的网络所学习函数为 H = F ( g l , w l ) + g l {H = F(g_l, w_l) + g_l} H=F(gl,wl)+gl,即从该层输入建立一个跳连接到输出,此时学习得到的 F F F函数所产生的输出 g l + 1 r e s g^{res}_{l+1} gl+1res将进入下一层,从而得到作者所说的ResGCN模块。

GCN密集连接

在论文DenseNet中提出的密集连接Dense connection,即将残差连接进行了拓展,利用层间的密集连通性,改善了网络中的信息流,使层间特征得到了有效重用。原本的残差连接仅在层与下一层之间进行连接,Dense connection将这种连接拓展到每一层之间都进行。

4.GCN密集连接

在这篇文章中,作者将每一层的图表示与前面所有层都建立连接,从而获得了denseGCN模块

GCN扩张卷积

扩张卷积是CNN卷积神经网络的一个变体,与传统卷积操作不同,它以一定的扩张率增加卷积核的大小,从而增大图像卷积过程中的感受野,提取到更丰富的信息。作者认为,扩张卷积也有助于处理深层GCN的感受野,因此在gcn中引入了扩张聚集。作者使用一个扩张k-NN策略在每一个GCN层后寻找扩张的邻居节点,构造一个扩张的图。下面的公式展示了作者在GCN中对扩张卷积的迁移运用:

5.GCN扩张卷积

对于输入图 G = ( V , E ) G = (V,E) G=(VE),聚合以v为中心的节点的邻居节点的操作即GCN中的卷积操作。本文此处的工作主要是在已经采用了动态边卷积基础上引入了扩张卷积,即以d为扩张率逐层选取k个k-NN邻近节点(跳过d个最近),产生由k个邻居节点组成的扩张图,过程如下图所示。

6.CNN和GCN扩张卷积图示

实验设置

数据集
  • S3DIS:大场景室内点云标注数据集,用于点云语义分割任务。S3DIS数据集是斯坦福大学提供的大场景室内3D点云数据集,包含6个教学和办公Area,总共有 695,878,620个带有色彩信息以及语义标签的3D点。
评估指标
  • OA(overall accuracy):总体精度是在分类问题上常用的指标,通常都是使用基于sk-learn的api来计算模型最终在测试数据集上的总体精度,总体精度(OA)与平均精度(AA)不同,总体精度是模型在所有测试集上预测正确的与总体数量之间的比值,平均精度是每一类预测正确的与每一类总体数量之间的比值,最终再取每一类的精度的平均值。
  • mIoU(mean intersection over union):语义分割的标准度量,计算所有类别交集和并集之比的平均值。如下图所示,k表示类别,对每一类计算预测情况的占比值。
7.mIOU计算公式
Baselines
实验效果对比
8.实验结果

实验在S3DIS数据集上进行,与多个基准模型进行对比,以全局准确率OA和点云语义分割标准均交并比mIOU作为评价指标。实验结果表明本文所提出的具有残差连接和扩张卷积的GCN取得了超越SOTA的效果。

消融研究

9.消融研究

文章进行了较为详细的消融实验,以本文主要提出的ResGCN的28层模型为基准,分别验证了扩张卷积、动态边卷积、残差连接、邻居节点聚合数量、模型深度和宽度对结果的影响,验证了本文所提出各个模块的重要性。

总结

亮点
  • 将CV领域解决问题的办法(残差连接、密集连接、扩张卷积)引入graph领域,借鉴其他领域的方法来改进类似的问题(模型训练深度问题)。
不足
  • 在当时达到了较好的性能,可以有更好的方法来训练更深的网络。

相关知识链接

下载

论文链接

源代码资源

deepgcns的pytorch实现
deepgcns的tensorflow实现

基准实验涉及的论文

[1] Charles R Qi, Hao Su, Kaichun Mo, and Leonidas J Guibas.
Pointnet: Deep learning on point sets for 3d classification and segmentation. Proc. Computer Vision and Pattern
Recognition (CVPR), IEEE, 1(2):4, 2017.
[2] Francis Engelmann, Theodora Kontogianni, Alexander Hermans, and Bastian Leibe. Exploring spatial context for 3d semantic segmentation of point clouds. In IEEE International
Conference on Computer Vision, 3DRMS Workshop, ICCV,
2017.
[3] Charles Ruizhongtai Qi, Li Yi, Hao Su, and Leonidas J
Guibas. Pointnet++: Deep hierarchical feature learning on
point sets in a metric space. In Advances in Neural Information Processing Systems, pages 5099–5108, 2017.
[4] Rex Ying, Ruining He, Kaifeng Chen, Pong Eksombatchai,
William L Hamilton, and Jure Leskovec. Graph convolutional neural networks for web-scale recommender systems. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining,
pages 974–983. ACM, 2018.
[5] Yue Wang, Yongbin Sun, Ziwei Liu, Sanjay E Sarma,
Michael M Bronstein, and Justin M Solomon. Dynamic
graph cnn for learning on point clouds. arXiv preprint
arXiv:1801.07829, 2018.

BibTex

@article{Li2019CanGG,
  title={Can GCNs Go as Deep as CNNs?},
  author={Guohao Li and Matthias M{\"u}ller and Ali K. Thabet and Bernard Ghanem},
  journal={ArXiv},
  year={2019},
  volume={abs/1904.03751}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值