GCN网络简介

160 阅读1分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路。

GCN,图卷积神经网络。 定义GCN:G=(V,A)

其中V表示各个顶点的集合,V={v1,v2,...,vn},A是一个n*n的矩阵表示邻接矩阵,aij表示vi和vj两个点连接边的权重,或者说是距离。定义一个度量degree矩阵D= = diag(d1, . . . , dn) ,D是一个对角矩阵,表示一个行的和也就是一个点与其他连接点之间的距离和, 公式如下所示:

di=jaijdi=\sum {_j}{aij}

每一个点都有一个d维度的特征向量x,所以整个矩阵的特征向量X是Rn*d维。

X=[x1, . . . , xn]T。一共有C类,每个点属于C类中一个类,使用one-hot编码,yi为1或者为0。

网络

GCN网络与CNN网络类似,同样都是经过多个层学习对输入进行特征学习,最后通过将学习到的特征输入到线性层中进行分类。区别?:每个节点的隐藏含义是和邻居取平均在每一层的开始。

GCN每一层主要步骤:feature propagation, linear transformation, and a pointwise nonlinear activation。

每一个点的vi的特征hi和他周围邻居做平均。我的理解是和进行归一化,特征除以距离再求和,公式见下图:

QQ截图20220807121210.png

推演到整个图,也就是所有点可以用一共矩阵S来表示归一化后的邻接矩阵,公式如下:

QQ截图20220807163605.png

其中 A^表示A+I,I是单位矩阵;D^表示A^的度量矩阵。H(k)=SH(k-1)。

矩阵Hk与权重矩阵θ\theta相乘,将得到的结果输入到一个非线性激活函数,详细公式如下:

QQ截图20220807162115.png