加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

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

发布时间:2019-02-23 09:18:07 所属栏目:建站 来源:机器之心编译
导读:因为图布局很是伟大且信息量很大,因此对付图的呆板进修是一项难题的使命。本文先容了怎样行使图卷积收集(GCN)对图举办深度进修,GCN 是一种可直接浸染于图并操作其布局信息的强盛神经收集。 本文将先容 GCN,并行使代码示例声名信息是怎样通过 GCN 的潜匿

接下来,我们将随机初始化权重。

  1. W_1 = np.random.normal( 
  2.     loc=0, scale=1, size=(zkc.number_of_nodes(), 4)) 
  3. W_2 = np.random.normal( 
  4.     loc=0, size=(W_1.shape[1], 2)) 

接着,我们会堆叠 GCN 层。这里,我们只行使单元矩阵作为特性表征,即每个节点被暗示为一个 one-hot 编码的种别变量。

  1. def gcn_layer(A_hat, D_hat, X, W): 
  2.     return relu(D_hat**-1 * A_hat * X * W) 
  3. H_1 = gcn_layer(A_hat, D_hat, I, W_1) 
  4. H_2 = gcn_layer(A_hat, D_hat, H_1, W_2) 
  5. output = H_2 

我们进一步抽取出特性表征。

  1. feature_representations = { 
  2.     node: np.array(output)[node]  
  3.     for node in zkc.nodes()} 

你看,这样的特性表征可以很好地将 Zachary 白手道俱乐部的两个社区分别隔来。至此,我们乃至都没有开始实习模子!

Zachary 白手道俱乐部图收集中节点的特性表征

我们应该留意到,在该示例中因为 ReLU 函数的浸染,在 x 轴或 y 轴上随机初始化的权重很也许为 0,因此必要重复举办屡次随机初始化才气天生上面的图。

结语

本文中对图卷积收集举办了居高临下的先容,并声名白 GCN 中每一层节点的特性表征是怎样基于其相邻节点的聚合构建的。读者可以从中相识到怎样行使 numpy 构建这些收集,以及它们的强盛:纵然是随机初始化的 GCN 也可以将 Zachary 白手道俱乐部收集中的社区分分开来。

参考文献

  • Blog post on graph convolutional networks by Thomas Kipf.
  • Paper called Semi-Supervised Classification with Graph Convolutional Networks by Thomas Kipf and Max Welling.

原文链接:

https://towardsdatascience.com/how-to-do-deep-learning-on-graphs-with-graph-convolutional-networks-7d2250723780

【本文是51CTO专栏机构“呆板之心”的原创译文,微信公家号“呆板之心( id: almosthuman2014)”】

戳这里,看该作者更多好文

【编辑保举】

  1. 神经收集的机密之优化器的妙用
  2. 嵌入式中的人工神经收集
  3. 不行使先验常识与伟大实习计策,从新实习二值神经收集!
  4. 手把手 | 神经收集的菜鸟入门秘笈
  5. 这种有序神经元,像你熟知的轮回神经收集吗?
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:河北网)

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

热点阅读