加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

图卷积网络到底怎么做,这是一份极简的Numpy实现

发布时间:2019-02-23 06:13:34 所属栏目:经验 来源:机器之心编译
导读:由于图结构非常复杂且信息量很大,因此对于图的机器学习是一项艰巨的任务。本文介绍了如何使用图卷积网络(GCN)对图进行深度学习,GCN 是一种可直接作用于图并利用其结构信息的强大神经网络。 本文将介绍 GCN,并使用代码示例说明信息是如何通过 GCN 的隐藏

首先要做的是应用权重。请注意,这里的 D_hat 是 A_hat = A + I 对应的度矩阵,即具有强制自环的矩阵 A 的度矩阵。

  1. In [45]: W = np.matrix([ 
  2.              [1, -1], 
  3.              [-1, 1] 
  4.          ]) 
  5.          D_hat**-1 * A_hat * X * W 
  6. Out[45]: matrix([ 
  7.             [ 1., -1.], 
  8.             [ 4., -4.], 
  9.             [ 2., -2.], 
  10.             [ 5., -5.] 
  11.         ]) 

如果我们想要减小输出特征表征的维度,我们可以减小权重矩阵 W 的规模:

  1. In [46]: W = np.matrix([ 
  2.              [1], 
  3.              [-1] 
  4.          ]) 
  5.          D_hat**-1 * A_hat * X * W 
  6. Out[46]: matrix([[1.], 
  7.         [4.], 
  8.         [2.], 
  9.         [5.]] 

2. 添加激活函数

本文选择保持特征表征的维度,并应用 ReLU 激活函数。

  1. In [51]: W = np.matrix([ 
  2.              [1, -1], 
  3.              [-1, 1] 
  4.          ]) 
  5.          relu(D_hat**-1 * A_hat * X * W) 
  6. Out[51]: matrix([[1., 0.], 
  7.         [4., 0.], 
  8.         [2., 0.], 
  9.         [5., 0.]]) 

这就是一个带有邻接矩阵、输入特征、权重和激活函数的完整隐藏层!

在真实场景下的应用

最后,我们将图卷积网络应用到一个真实的图上。本文将向读者展示如何生成上文提到的特征表征。

1. Zachary 空手道俱乐部

Zachary 空手道俱乐部是一个被广泛使用的社交网络,其中的节点代表空手道俱乐部的成员,边代表成员之间的相互关系。当年,Zachary 在研究空手道俱乐部的时候,管理员和教员发生了冲突,导致俱乐部一分为二。下图显示了该网络的图表征,其中的节点标注是根据节点属于俱乐部的哪个部分而得到的,「A」和「I」分别表示属于管理员和教员阵营的节点。

Zachary 空手道俱乐部图网络

2. 构建 GCN

接下来,我们将构建一个图卷积网络。我们并不会真正训练该网络,但是会对其进行简单的随机初始化,从而生成我们在本文开头看到的特征表征。我们将使用 networkx,它有一个可以很容易实现的 Zachary 空手道俱乐部的图表征。然后,我们将计算 A_hat 和 D_hat 矩阵。

  1. from networkx import to_numpy_matrix 
  2. zkc = karate_club_graph() 
  3. order = sorted(list(zkc.nodes())) 
  4. A = to_numpy_matrix(zkc, nodelist=order) 
  5. I = np.eye(zkc.number_of_nodes()) 
  6. AA_hat = A + I 
  7. D_hat = np.array(np.sum(A_hat, axis=0))[0] 
  8. D_hat = np.matrix(np.diag(D_hat)) 

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读