GCN和CNN的区别(个人理解)
前言因毕设需要对卷积神经网络和图卷积神经网络有所涉及但是遇到些许疑惑在网上搜罗后未找到满意的答案故写此篇。首先需要知道图的结构一般来说是十分不规则的可以认为是无限维的一种数据所以它没有平移不变性。每一个节点的周围结构可能都是独一无二的这种结构的数据就让传统的CNN、RNN瞬间失效。如下图取自图神经网络之CNN与GCN的联系_cnn和gcn-CSDN博客但是GCN图卷积神经网络实际上跟CNN的作用一样就是一个特征提取器只不过它的对象是图数据。从这里也可以看出来具体图和抽象图的区别。前者已经算是一个有结构的矩阵了已经可以进行其他操作但是后者仅仅停留在人能看懂的层面想要其能够交给计算机处理还要转化成像前者一样的数据结构。误区:1.主观认为GCN和CNN都是卷积操作GCN应该和CNN一样起码应该有一个可以移动的卷积核这样才能提取特征信息到高纬度。2.将GCN的抽象图转化成邻接矩阵后里面代表两个节点相连的线被换成邻接矩阵的1。图取自无向图的邻接矩阵与邻接表详细实现_无向图的邻接矩阵和邻接表怎么画-CSDN博客。想像CNN一样直接用卷积核卷积操作。但是忽略了他们位置关系。思考一下是不是见到的CNN矩阵它自带的就有拓扑关系但是GCN并不自带所以需要先处理出来拓扑关系再进行特征提取。数据结构的差异思考和解惑在经过细致的学习后发现所有的答案都藏在GCN的公式中$$H^{(l 1)} \sigma(\tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2} H^{(l)} W^{(l)})$$1、$\tilde{A}$是经过处理后的抽象图其是单位矩阵加上邻接关系的矩阵。而加单位矩阵的原因是因为自己这个节点和自己是强相关的后面就算处理邻里关系也要把自己算在内。2、$\tilde{D}$是度矩阵(在这里我理解成权重关系因为一个节点的度越大受其相连的单个节点的影响应该更小在这里表现为取$\tilde{D}^{-1/2}$比如一个富豪认识非常多人你不能只凭借其中个别穷的就判断他也是个穷人)。注度矩阵就是一个节点连了几条边其数据都集中在对角线上比如下图的Actor2他的度就是3。 但是在这里因为把自己也算在内其基础上加1也就是放到矩阵内是4。3、其\tilde{A}左乘和右乘是因为需要对其进行行列双处理可以自己尝试一下矩阵运算这个时候就把位置关系集中在处理好的矩阵中了这个时候再乘以$\H^{(l)}$就是把特征投射到相应的位置上了。$\H^{(l)}$是记录特征的矩阵记录每个节点的信息类似于在CNN中矩阵中每个点的数据4、在经过前面一部分处理后就把相关的拓扑关系给聚合起来了,在我的理解里这样相当于把杂乱无章的图化成有拓扑关系的矩阵的矩阵了。然后的处理就应该和普通的卷积神经网络差不多了。5、在我看来普通的卷积核有滑动窗口的原因就是要聚合拓扑关系然后提取特征.现在GCN已经把拓扑关系处理好了。那么就不需要滑动窗口了。由此看来只需要在前面处理好的矩阵后乘上特征矩阵。再乘上权重(就是CNN里面的卷积核)。这样就算完成正向传播了。而正向传播有公式反向传播也就不在话下了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2441609.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!