用 Pytorch 实现一个简单的图卷积神经网络

本文介绍了如何使用Pytorch实现一个简单的图卷积神经网络(GCN),通过Zachary karate club数据集进行图分类。内容包括数据集介绍、GCN概念、拉普拉斯归一化操作、卷积层设计、网络训练等,旨在让读者体验GCN的实际应用。
摘要由CSDN通过智能技术生成

用 Pytorch 实现一个简单的图卷积神经网络

深度学习在序列化数据的处理上取得了良好的效果, 但对于非欧空间中的数据处理问题却长时间难以突破. 在 2017 年, Kipf 等人在图神经网络上利用信号处理中的谱方法成功实现了卷积操作, 将卷积神经网络成功应用在图上, 即图卷积神经网络 (Graph Convolutional Network) 开启了在图上进行深度学习的新时代.

本文通过利用 GCN 实现一个简单的图数据集的分类问题展示图神经网络的效果

本文不会涉及到任何 GCN 的理论知识, 仅适用于想体验 GCN 的效果的朋友们尝鲜.

数据集介绍

Zachary karate club 是一个美国大学空手道俱乐部的社会网络图, 网络中包含 34 34 34 个节点和 78 78 78 条边, 分别表示 34 34 34 位成员和他们之间的关系, 若两成员间有边存在, 则该两位成员存在友谊关系. 详细信息可以在这里看到. 在该网络中, 俱乐部的成员最终分化为由管理员和教练带头的两个组织.

本文使用 networkx 导入数据集.

import networkx as nx
G = nx.karate_club_graph()
print(G.number_of_nodes()) # 34
print(G.number_of_edges()) # 78

GCN 介绍

与普通的卷积神经网络一样, GCN 的原理也是利用堆叠一定卷积层来实现, 层与层之间同样有激活函数.

首先介绍拉普拉斯矩阵 (Laplacian matrix), 定义为
L = D − A L = D - A L=DA
其中, A A A 为图的邻阶矩阵, D D D 为图的度矩阵, D D D 的定义为
D = { 结 点 i 的 度 ,   i = j 0 ,   o t h e r w i s e \begin{aligned} D = \left\{\begin{matrix} 结点 i 的度 &, \space i=j\\ 0 &, \space otherwise \end{matrix}\right. \end{aligned} D={

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值