理解GCN(三):以某一种逐层传播的规则为例

本文深入探讨了图卷积网络GCN的逐层传播规则,基于Semi-Supervised Classification with Graph Convolutional Networks论文,介绍了如何构建图模型,包括图的对称邻接矩阵归一化处理,以及2层GCN网络的前向传播过程。同时,文章通过Cora数据集展示了GCN的代码实现,包括特征矩阵和邻接矩阵的处理,以及模型构建和训练过程。
摘要由CSDN通过智能技术生成

根据@superbrother的相关回答,参考了Semi-Supervised Classification with Graph Convolutional Networks文章提出的逐层传播规则建立的图卷积模型,结合tkipfTensorFlow版本的GCN代码更加系统的了解了“卷积”这一过程。

1 Fast approximate convolution on Graph的数学模型

作者利用图的对称的邻接矩阵 A A A和图上每个顶点的特征向量 X X X,使用一个神经网络模型 f ( X , A ) f(X,A) f(X,A)来建立一个图的模型,通过2层GCN网络对该图上节点进行半监督分类任务。
作者提出构建图模型的具体方法,可以先对添加闭环的邻接矩阵 A ~ \tilde A A~进行归一化处理: A ^ = D ~ − 1 2 A ~ D ~ − 1 2 \hat A= \tilde{D}^{-\frac{1}{2}}\tilde A\tilde{D}^{-\frac{1}{2}} A^=D~21A~D~21,提出了图模型的前向传播方式:
在这里插入图片描述
进而建立如下图的模型 Z = f ( X , A ) = s o f t m a x ( A ^ ⋅ R e L U ( A ^ X W ( 0 ) ) ⋅ W ( 1 ) ) Z=f(X,A)=softmax(\hat A \cdot ReLU(\hat AXW^{(0)})\cdot W^{(1)}) Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))其中

  • D i i ~ = ∑ j A ~ i j \tilde {D_{ii}}=\sum{_j}{\tilde A_{ij}} Dii~=jA~ij D ~ \tilde D D~是一个对角矩阵,对角线上每个元素表示图中节点对应的度。
  • W ( 0 ) ∈ R C × H W^{(0)}\in R^{C \times H} W(0)RC×H, W ( 1 ) ∈ R H × F W^{(1)}\in R^{H \times F} W(1)RH×F C , H , F C,H,F C,H,F分别是input,hidden和output的维度。
  • W l W^{l} Wl相当于一个线性的全连接层,将feature进行一次映射,可以按照需要来修改feature的维度,其中的参数,根据loss函数通过反向传播梯度下降来迭代优化更新;

可以看出
第一层将feature的维度转成 H H H后,通过激活函数输出;
第二层将feature维度从 H H H转为 F F F,而 F F F正好是class的个数,后面没有接非线性的激活函数;
然后通过softmax计算出每个点属于每个类的概率。

结合@不知道叫什么好及个人的理解
上述变量中:

  • A ^ = A + I \hat A = A + I A^=A+I,表示对图中节点进行特征提取的过程中,不仅要提取邻点的信息( A A A),还要考虑到自身的特征信息(用 I I I表示),这是一个解决self-loop问题的一种方法。
  • D − 1 2 A ^ D − 1 2 D^{-\frac{1}{2}} \hat{A} D^{-\frac{1}{2}} D21A^D21是一种归一化的方法(对称归一化)。将邻接矩阵里的值归一化后,可以看成是每一条边的权重,将节点信息转化成直观的值( A g g r e g a t i o n Aggregation Aggregation)。当然可以采用其他的归一化方法如 A g g r e g a t i o n = D − 1 A Aggregation = D^{-1}A Aggregation=D1A
  • 权重矩阵 D − 1 2 A ^ D − 1 2 D^{-\frac{1}{2}} \hat{A} D^{-\frac{1}{2}} D21A^D21乘以 H l H^{l} Hl,相当于把当前每个点代表的feature,按照临接矩阵中包含的权重重新加权求和,为每个点计算出一个新的feature;
    在这里插入图片描述
    注意观察上面三条中的第二点,是不是拉普拉斯矩阵的思想?当 D i i ~ = ∑ j A ~ i j \tilde {D_{ii}}=\sum{_j}{\tilde A_{ij}}
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值