| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> GNN动手实践(一):手把手带你实现GCN -> 正文阅读 |
|
[人工智能]GNN动手实践(一):手把手带你实现GCN |
参考论文:Semi-Supervised Classification with Graph Convolutional Networks 一.前言GCN(Graph Convolutional Network)即在图上进行卷积运算,与传统卷积的操作对象不同,GCN的卷积对象图是不规则的,例如每个结点周围的邻居结点数都是不定的。此外,图中各结点间不是互相独立的。图卷积通常需要借助图的结构信息来指导图中的消息聚合。GCN经过多年来的发展有了很多变体,今天要介绍的是 二.模型简介首先强调一点,作者提出的GCN模型有效的前提是图是同构的。 在该前提下,我们再来看他们的模型,先给出符号表如下:
对于一个GNN模型,我们一般比较关注的是它是如何进行消息(message)传播以及消息是如何聚合(Aggerate)的。先来看作者定义的卷积公式: 而
D
~
?
1
/
2
A
~
D
~
?
1
/
2
\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}
D~?1/2A~D~?1/2实际就是对
A
~
\tilde{A}
A~进行规范化,对于
A
~
\tilde{A}
A~中的某个元素
A
~
i
j
\tilde{A}_{ij}
A~ij?,其规范化的计算公式为: 最后摆出模型的前向传播公式: 三.具体复现模型的实现采用的是 3.1 GCN层的实现先给出GCN层的实现代码:
其中
在DGL中我们只需要定义好消息函数 3.2 基于GCN层的模型实现基于3.1节实现的GCN层,我们就可以定义任意层数GCN的模型,下面给出使用两层GCN的模型源码:
四.复现模型上的实验基于复现的 4.1 数据集简介Cora是一个论文引用网络数据集,其中包含了2708篇论文,每篇论文都由1433维的词向量表示,词向量的每个元素只能取0或1,0表示论文中包含该词,1表示论文中不包含该词。Cora数据集中的论文被分为7种类型:Case_Based、Theory、Genetic_Algorithms、 Neural_Networks、Probabilistic_Methods、Reinforcement_Learning、Rule_Learning。 DGL库中实际就已经包含了该数据集,通过
从上述信息可以看出,DGL还把数据集分为训练集、验证集和测试集。 4.2 实验结果展示由于时间原因,实验的过程中并未完全参照论文中的做法,本次实验的配置如下:
某次实验过程的运行过程截图如下: 其所对应的训练集、验证集与测试集的准确率变化曲线如下: 五.结语源码开源地址:Semi-GCN |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 18:50:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |