26

长文回顾 | 阿卜杜拉国王科技大学博士生李国豪: 加深图卷积神经网络的可能性探索

 4 years ago
source link: https://flashgene.com/archives/86075.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

4502f077f2502659384807428ca707ec.gif

本文为 将门技术社群线上直播第175期 的文字内容整理

分享嘉宾:阿卜杜拉国王科技大学博士生 李国豪

感谢整理人:Datafun社区

:christmas_tree:  祝 大 家 平 安 夜 快 乐 :apple:

导读

目前图卷积神经网络(GCN)的使用过程中的深度通常在3-4层,按对神经网络的理解,随着深度的加深,网络参数增加,模型表达能力会增强,但是在图卷积神经网络,能否允许如普通卷积网络(CNN)一样加得很深,本次进行一些可能性的探索。

本文将围绕下面几点展开:

GCN简介

GCN加深探索

实验结果及结论

后续工作

▌ GCN简介

面对图像、视频、音频、文本等数据的处理,常规的卷积网络已经能够较好的处理,并且目前也已经取得不错的效果;为什幺我们还会需要GCN呢?主要原因是现实生活中,除了像图像这种规整的网格结构数据外,还有图结构而非成网格结构的数据,如社交网络、论文引用网络等。

3f174bc55898b1638c62ed31550dc4ad.png

为了能够在这类非网格结构的数据上进行卷积操作,我们需要借助GCN来完成处理。普通的CNN中的卷积操作和GCN中的卷积操作总体思路接近,只是具体处理过程中,由于数据结构的不同,处理有差异,如下图所示。

63fcf343916f55034544077ea3f3d7f8.png

总体来看,CNN的卷积过程和GCN的卷积操作本质上是实现逐层的信息传递,同时在传递的过程中,基于某些函数进行非线性变换进而完成信息的抽取和融合,如图中描述。

ad694daf2d88e7dc36814712922eca55.png

▌GCN加深探索

不同于CNN常见结构,如ResNet、DenseNet等,通常层数达100至1000,甚至更深,并且验证随着CNN的深度加深,模型效果会有提升;目前对GCN的使用过程中,其中的神经网络的深度通常都在3-4层。

07fbf82ccf7aaf74250f601b01762317.png

同时,如下图所示,如果调整网络结构,加深GCN中神经网络的层数,结果会导致模型不能收敛。

f9bf9b7e740b51b4a00de8657a9f2b24.png

针对这种现象,目前通常认为有三个原因,如下图所示。首先随着网络深度的加深,在样本数据不充分的情况下,模型可能会过拟合;其次是认为GCN在网络加深的过程中,会导致节点特征值过度平滑而没有区分度;最后一个是因为深度网络容易出现梯度消失问题。

55e3808978ddb974f78fcbff7bf7e8bb.png

面对这种情况,是否有一种方法能够加深GCN网络结构,同时确保模型收敛呢?对此以下进行了一些探索。

如图所示,设定普通的加深的GCN模型作为基线模型,称其为PlainGCN。首先,参考残差网络ResNet的结构,一般的神经网络中,基于残差的网络可以在网络层加深的情况下避免梯度的消失,所以在GCN中引入残差模块,构建ResGCN网络。

e9f3da2155ab1b88b16a1240db2eb5ec.png

其次,参考稠密网络DenseNet的结构,将输入部分和输出部分已Concat的方式组合在一起,以确保梯度可以回传,具体结构如下图所示。

92fc8376b4cec8cb681e1a721132f09e.png

最后,如图所示,借鉴空洞卷积网络的思路,在GCN中采用skip-neighbor的方式,确保空洞卷积可以执行,进而达到和更大的邻域做卷积,进而使得模型保持较大的卷积感受野。

7010e6ac5d89d3abc4ff9756bc3b7060.png

综合上述三点,最终设计可以加深层数的GCN框架,如下图所示主要有三部分构成:第一部分是执行GCN逻辑的骨架,第二部分负责特征的融合,其中包括了ResGCN和DenseGCN的特征处理逻辑,第三部分基于MLP实现将融合的特征分割成不同的类别;整体模型的是端到端方式完成训练。

e11cf567a20f908c0a1755db90e726cd.png

▌实验结果

在实验中使用的是28层的ResGCN。如图所示,从和其它模型的对比结果看,经过改造的ResGCN在模型不断加深的情况下可以取得较好的结果。

3dbd6f2f96c2b5e908ea9f585ef4376a.png

0c030b0f1b91cebd850771608a6c63ff.png

同时,不同层数下,所带来的收益。加深与不加深的GCN二者之间的gap随着层数不断加深而逐渐变大,进一步说明加深可以取得较好的收益,并且普通的GCN随着层数不断加深,模型甚至会发散不再收敛。

85425be33d57b6a2bbe7872747d6345f.png

▌实验结论

从实验结果看,通过在GCN中加入skip-connection,可以使得在加深GCN中网络的深度的时候模型训练变得容易一些。并且在GCN中加入空洞卷积,使得其具有更好的感受野,模型获得更多收益,总结如下:

a982ac34ce164ecabc702f7ac2b398fe.png

▌后续工作

在实验中只是组合了CNN的残差网络、稠密网络和空洞网络的思路,构建能够加深的GCN框架,后续的工作中可以借鉴更多的CNN相关的优化思路,如pooling、normalization以及特征融合方式等。

fb8c529d9e50a65256b4061d58f88b2f.png

除此之外,在构建的GCN框架中,计算k-nn的时候,使用的距离计算方式是L2距离,后续可以考虑其他距离计算方式;同时需要进一步探索是否有更好的控制卷积核大小的方法以及设置空洞卷积率的方法。

▌一些工具

实验开发过程中使用的一些GCN相关的工具,列表如下可以参考使用:

3c078496481a192a6f0910d7ba9b0cd1.png

c2a3e7bfd6b2d18170ebae3ea2fbf0c5.gif


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK