当前位置: 首页 > news >正文

GCN(Graph Convolutional Netwok)公式推导

文章目录

    • 推导中用到的一些基础知识
    • Graph
        • 无向图的定义
        • 拉普拉斯矩阵
          • 拉普拉斯矩阵的性质
    • 卷积(Convolutional)
      • 傅里叶变换
      • Graph上的傅里叶变换
      • Graph上的卷积
    • GCN公式
      • 第二代GCN
      • 采用切比雪夫多项式替代L^n^

理解GCN理论图卷积神经网络推导的主要资料(文章中很多内容都是出自以下文章):
文章:https://www.zhihu.com/question/54504471/answer/332657604
https://blog.csdn.net/SperNijia/article/details/106724939
视频:https://www.youtube.com/watch?v=M9ht8vsVEw8&t=1913s
https://www.bilibili.com/video/BV1Vw411R7Fj/?spm_id_from=333.880.my_history.page.click

推导中用到的一些基础知识

特征值与特征向量:Aμ=λμ \qquad (μ为A的特征值,λ为A的特征向量)
实对称矩阵有性质:UUT=E \qquad 则上式转化为(右边同乘UT)得到:A=U∧UT \qquad (U为A的特征向量组成的特征矩阵,∧为A的特征值组成的对角矩阵)
半正定矩阵性质:半正定矩阵的特征值君大于等于0
二次型:XTAX
瑞利商:XTAX/XTX \qquad (A的二次型与单阵的比值)
瑞利商与特征值之间的关系:
在这里插入图片描述

########

Graph

GCN中的图(如下),是指数学中的用定点及边建立关系的拓扑图,用来处理非欧式距离的数据。
拓扑图

无向图的定义

无向图表示:G=(V,E)
V为无向图的顶点集合
E为无向图边的集合

邻接矩阵(adjacency matrix)A:
A∈RN×N
A中矩阵元素,若两点之间存在相邻的边,则不为0(为1或者权重)
若两点之间没有相连的边,则为0

拉普拉斯矩阵

拉普拉斯矩阵:L=D-A
D为度矩阵(对角矩阵),对角矩阵上的元素 λ i λ_i λi对应第i个结点的度。
A为邻接矩阵。
计算样例如下图:
在这里插入图片描述
在推导中还会用到的矩阵:
L s y m {sym} sym=D-1\2LD-1\2,是对L的对称规范化(归一化)

拉普拉斯矩阵的性质
  1. L以及L s y m {sym} sym都是实对称矩阵,于是有:L=U∧UT
  2. L以及L s y m {sym} sym都是半正定矩阵(下图第一张)
  3. L s y m {sym} sym特征值范围为[0,2](下图第二张,切比雪夫多项式做卷积函数时会用到)
    在这里插入图片描述
    在这里插入图片描述

卷积(Convolutional)

图卷积学习链接:
https://www.zhihu.com/question/22298352#!
离散卷积:翻转再加权求和。但是在GCN中,参数本来就是未知的,所以不反转也是一样的。
连续卷积:先翻转,再求乘积的积分。

傅里叶变换

傅里叶分析之掐死教程(完整版)链接:https://zhuanlan.zhihu.com/p/19763358
以下是个人理解,如有不对请留言指出来:
傅里叶变换(简单的理解):同一个事物在不同域里的视角是怎样的
在这里插入图片描述
左边黑色的线经傅里叶变化为右边四条线
右边四条线经傅里叶逆变换成为左边的黑线

Graph上的傅里叶变换

f:是图上的点到信号量的一种映射。f(i)表示为图上第i个结点对应的信号量。
以拉普拉斯矩阵的特征矩阵U作为傅里叶变换的基:拉普拉斯为是对称矩阵,特征向量线性无关且相互正交。可以作为基。基就相当于搞了新的坐标系一样。

将空间维度转换为图谱维度:
给定图节点的信号量x(是信号量!),经过傅里叶变换转到频域上: x ^ \widehat{x} x =UTx
U为单位阵,所已某一个方向的基与x的乘积就代表了x在该基上的大小。

在这里插入图片描述
频域转换到空域:傅里叶逆变换:x=U x ^ \widehat{x} x
在这里插入图片描述

Graph上的卷积

先看下LX是什么:
LX=U∧UTX。他其实已经实现了从空域转到频域,做卷积,再转回到空域。(从右往左看)

为什么还要用卷积核函数而不直接用拉皮拉斯矩阵呢?
应为当卷积核函数是关于∧的多项式时,就不能用一个拉普拉斯矩阵表示了

定义卷积核函数为 g θ g_\theta gθ(∧),(频域中的,函数形式任意)

则图上的卷积为:
信号量变换到频域中:UTx
卷积核函数与数据相乘: g θ g_\theta gθ(∧)UTx
转换到空域中,求出卷积:U g θ g_\theta gθ(∧)UTx

GCN公式

Hl+1= σ \sigma σ(U g θ g_\theta gθ(∧)UTx)
对卷积核设计的不同,最后的通式也不相同。

第二代GCN

在这里插入图片描述

k等于1时,根据一阶邻居更新
在这里插入图片描述

L2代表着与结点距离为2的邻居结点的信息
k等于2时,根据一阶邻居和二姐邻居更新
在这里插入图片描述

Ln则代表着距离为n。
如果当n越来越大,那么图中的每一个结点会和其他的所有结点相关,这个就违反了局部性 localized。

采用切比雪夫多项式替代Ln

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Docker打包深度学习项目
  • 常见十大排序算法(动图剖析)
  • 串口数据流抓包监控监视侦听监测获取PC软件和串口设备
  • 基于MAX-SUM算法的大规模信息系统的协调问题matlab仿真——详细版
  • 【九天·毕昇】一个免费获得GPU的算力平台
  • Java秒杀系统设计
  • 【C语言】自定义类型(构造类型)——结构体、枚举和联合体
  • 《SpringBoot篇》19.SpringBoot整合Quart
  • 一把搞懂线程中stop、sleep、supend、yield、wait、notify
  • 初阶数据结构 栈
  • Redis实战 - 08 Redis 的 BitMaps 位图命令
  • 改进YOLOv5系列:首发结合最新CSPNeXt主干结构(适用YOLOv7),高性能,低延时的单阶段目标检测器主干,通过COCO数据集验证高效涨点
  • 基于导频的信道估计实现
  • 小满Vue3第四十五章(Vue3 Web Components)
  • Linux 内核页表管理
  • chrome扩展demo1-小时钟
  • golang中接口赋值与方法集
  • HTTP--网络协议分层,http历史(二)
  • maven工程打包jar以及java jar命令的classpath使用
  • Netty源码解析1-Buffer
  • Odoo domain写法及运用
  • Redis中的lru算法实现
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Vue 重置组件到初始状态
  • 从零开始学习部署
  • 分类模型——Logistics Regression
  • 基于axios的vue插件,让http请求更简单
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • ​2020 年大前端技术趋势解读
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $GOPATH/go.mod exists but should not goland
  • (70min)字节暑假实习二面(已挂)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (poj1.2.1)1970(筛选法模拟)
  • (编译到47%失败)to be deleted
  • (二十六)Java 数据结构
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (六)vue-router+UI组件库
  • (一一四)第九章编程练习
  • (转)ABI是什么
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转载)Linux 多线程条件变量同步
  • ..回顾17,展望18
  • .JPG图片,各种压缩率下的文件尺寸
  • .net core开源商城系统源码,支持可视化布局小程序
  • .Net 垃圾回收机制原理(二)
  • .Net 路由处理厉害了