[GNN] 图神经网络入门

news2025/1/12 8:50:49

GNN和GCN的入门公式

  • 一、GNN的计算
  • 二、GCN的计算

跟随B站课程【GNN图神经网络最牛教程】学不会up直接下跪!图神经网络快速入门教程(GNN/GCN)的笔记

一、GNN的计算

在这里插入图片描述

对于一个图来说,要更新它自身的特征,也要更新它邻接节点的特征

m i = G ( { W j h j } : j ∈ N i ) m_{i}=G(\{W_{j}h_{j}\}: j \in N_{i}) mi=G({Wjhj}:jNi)

其中 W j W_{j} Wj表示节点间的权重, h j h_{j} hj表示节点的特征值

总的更新公式就是

h i = σ ( W 1 h i + ∑ j ∈ N i W j h j ) h_{i}=\sigma(W_{1}h_{i}+\sum_{j\in N_{i}} W_{j}h_{j}) hi=σ(W1hi+jNiWjhj)

其中后半部分的求和部分还可以根据需求进行替换

在这里插入图片描述

二、GCN的计算

在这里插入图片描述

一个图计算的时候需要节点特征,邻接矩阵以及度矩阵。

因为邻接矩阵还要考虑自身节点,所以带上对角线变为1(就是节点自己和自己相连,一起引入计算)

A ~ = A + λ I N \tilde A=A+\lambda I_{N} A~=A+λIN

在这里插入图片描述

其中度矩阵是用来做归一化scale的(或者说求平均),这时候就需要用度来分化自身的权重。

D ~ − 1 A ~ \tilde D^{-1} \tilde A D~1A~

在这里插入图片描述
D ~ − 1 A ~ X \tilde D^{-1} \tilde AX D~1A~X
在这里插入图片描述

然后再乘特征矩阵X,但是这只是对行向量进行了平均,还要考虑对列向量平均

D ~ − 1 A ~ D ~ − 1 X \tilde D^{-1} \tilde A \tilde D^{-1} X D~1A~D~1X

但是这等于对行列进行了两次归一化,所以最终的形式是

A ^ = D ~ − 1 2 A ~ D ~ − 1 2 X \hat A= \tilde D^{-\frac{1}{2}} \tilde A \tilde D^{-\frac{1}{2}} X A^=D~21A~D~21X

整个两层神经网络的计算公式就是

Z = f ( X , A ) = s o f t m a x ( A ^ R e L U ( A ^ X W ( 0 ) ) W ( 1 ) ) Z=f(X, A)=softmax(\hat A ReLU(\hat AXW^{(0)})W^{(1)}) Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))

然后GNN的层数一般比较少,一般两三层比较合适。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/182115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端websocket劫持漏洞(CSWSH)

0x00 什么是ws劫持 在Websocket的业务中,其中常见的漏洞是ws劫持,全称为跨站点CSWSH(Cross-Site WebSocket Hijacking)跨站WebSocket劫持漏洞。 WebSocket概念 WebSocket是通过HTTP启动的双向、全双工通信协议。它们通常用于流式传输数据和其他异步流量…

深度卷积神经网络、池化层、为什么使用卷积

目录1.深度卷积神经网络(a deep convolutional neural network)输入图像的维度是,如果,计算输出图像维度公式:。s表示步幅,p表示填充的层数。filters的通道数是和输入图像的通道数保持一致的。分析上图案例:第一层卷积…

MySQL基本查询案例练习

目录 一.案例1 需求 解决代码 二.案例2 需求 解决代码 一.案例1 创建一个学生表,插入以下数据 insert into student values(1,张明,男,89,78,90), (2,李静,男,77,73,60), …

golang map原理

简介本文主要通过探究在golang 中map的数据结构及源码实现来学习和了解map的特性,共包含map的模型探究、存取、扩容等内容。欢迎大家共同讨论。Map 的底层内存模型在 goland 的源码中表示 map 的底层 struct 是 hmap,其是 hashmap 的缩写type hmap struc…

“华为杯”研究生数学建模竞赛2005年-【华为杯】A题:交通网络的通行时间预测与最优路径决策(附获奖论文)

赛题描述 A: Highway Traveling time Estimate and Optimal Routing Ⅰ Highway traveling time estimate is crucial to travelers. Hence, detectors are mounted on some of the US highways. For instance, detectors are mounted on every two-way six-lane highways o…

树与二叉树深度剖析(一)

一. 树简介 1. 定义 (1) 树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。 (2) 树(Tree)是n(n≥0)个节点(Node)的有限集合。在任意一颗非空树中,有且仅有一个特定的成为根(Root)…

【快速幂】876. 快速幂求逆元

876. 快速幂求逆元 文章目录题目描述输入格式:输出格式:数据范围输入样例输出样例方法:快速幂解题思路代码复杂度分析:题目描述 给定 n 组 ai,pia_i,p_iai​,pi​,其中 pip_ipi​ 是质数,求 aia_iai​ 模 …

MySQL 8.0.31中使用MySQL Workbench提示配置文件错误信息

MySQL 8.0.31中使用MySQL Workbench提示配置文件错误信息 Error opening configuration file UnicodeDecodeError:‘gbk’ coded can’t decode byte 0x92 in position 5004: illegal multibyte sequence 配置文件之前安装MySQL Server的时候编码格式好像改了, 才使的MySQL W…

高级通讯录(C语言)

目录 前言 为何要实现高级通讯录 高级通讯录实现: 创建通讯录 打印菜单 初始化通讯录 实现加载功能 实现添加功能 实现增容功能 实现删除功能 实现查询功能 实现修改功能 实现查询所有联系人功能 实现排序功能 实现清空功能 实现保存功能 实现退出功能 通讯录总代码…

基于stm32G431RBT6蓝桥杯嵌入式—新建工程和点灯

目录 cube新建工程 GPIO输出与LED模块 推挽输出模式push-pull 开漏输出模式open-drain LED原理 程序 cube新建工程 时钟树配置:一般使用内部时钟。 GPIO输出与LED模块 输入0,输出GND;输入1,输出3.3V。 P-MOS管高电平导通&a…

2023年新手卖家怎么做好跨境电商?

随着互联网时代的高速发展,跨境电商成为我国经济发展中不可忽视的重要力量,在国内优惠政策大力扶持以及线上消费习惯的加持下,跨境电商行业迎来了发展的黄金机遇期。但是随之而来的是各大资本的涌入,跨境电商中小卖家们也面对越发…

第五章 程序控制结构

一、程序流程控制介绍 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。 (1)顺序控制 (2)分支控制 (3)循环控制顺序控制&am…

c++11 标准模板(STL)(std::forward_list)(十二)

定义于头文件 <forward_list> template< class T, class Allocator std::allocator<T> > class forward_list;(1)(C11 起)namespace pmr { template <class T> using forward_list std::forward_list<T, std::pmr::polymorphic_…

数据库管理-第五十四期 春节俩故障(20230128)

数据库管理 2023-01-28第五十四期 春节俩故障1 19.13 bug 320763052 19.15 CSS总结第五十四期 春节俩故障 虽然春节期间除了年三十的现场值班和远程值班&#xff0c;没啥事的&#xff0c;结果还是处理了俩故障&#xff0c;今天上工&#xff0c;分析一下。 1 19.13 bug 320763…

了解3dmax面片建模方式

首先在模式里面选中面片栅格&#xff0c;Patch Grids&#xff1b; 选择四边形面片&#xff1b; 在顶视图中画一个面片&#xff0c;之后如下&#xff1b;面片从前和左看到的是一条线&#xff1b; 调整面片参数&#xff0c;长度分段和宽度分段分别为2和3&#xff1b; 工具栏选中修…

信息论复习—线性分组码的基本性质

目录 线性分组码&#xff1a; 非线性码示例&#xff1a; 线性码示例: 许用码字间的距离&#xff0d;&#xff0d;码距&#xff1a; 码距与码的检错纠错能力之间的关系&#xff1a; 线性分组码的基本性质&#xff1a; 线性分组码的最小码距与最小码重的关系&#xff1a; …

最详细的华为VRP操作指南

第二章&#xff1a;华为VRP系统 通用路由平台VRP&#xff08;Versatile Routing Platform&#xff09;是华为公司数据通信产品的通用操作系统平台。它以IP业务为核心&#xff0c;采用组件化的体系结构&#xff0c;在实现丰富功能特性的同时&#xff0c;还提供了基于应用的可裁…

Android深入系统完全讲解(43)

为什么要编码&#xff1f;这里主要是因为信息有甬余需要压缩&#xff0c;所以会出现各类算法。如果存储原始 数据&#xff0c;那就很大。 举例来说&#xff0c;BMP&#xff0c;压缩算法有 jpg&#xff0c;png 等等。 比如 PCM&#xff0c;压缩的 mp3 H.264 相关 这里我们看一下…

剑指 Offer 09. 用两个栈实现队列(力扣)

一&#xff1a;题目用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead 操作返回 -1 )示例 1&#xff1a;输入&…

小米万兆路由器里的Docker安装Alist

小米2022年12月份发布了万兆路由器&#xff0c;里面可以使用Docker。 今天尝试在小米的万兆路由器里安装Alist v3.9.2。 准备工作 请参考https://engchina.blog.csdn.net/article/details/128515422的准备工作。 创建存储 在第三方管理(SimpleDocker)&#xff0c;单击"…