图网络的度矩阵D/邻接矩阵A/拉普拉斯矩阵L以及图中的节点如何各自保存更新节点特征

在开始前,我们明确几个概念度矩阵D/邻接矩阵A/拉普拉斯矩阵L分别是做什么的?

  • 度矩阵D:描述一个节点能连接多少其他节点;
  • 邻接矩阵A: 描述一个节点具体和其他哪个节点连接;
  • 拉普拉斯矩阵L:L=D-A描述一个节点的特征和其他节点特征有多不一样。
python 复制代码
For Example
一个简单的图结构:A ------ B ------ C
提取其度矩阵D=
				[ 1  0  0 ] # A只和一个节点B相连
				[ 0  2  0 ] # B和两个节点相连B和C
				[ 0  0  1 ] # C只和一个节点B相连
提取其邻接矩阵A=
				[ 0  1  0 ]  	[ 0  		A和B相连  0       ] 
				[ 1  0  1 ]  	[ B和A相连  0  		  B和C相连 ] 
				[ 0  1  0 ]  	[ 0  		C和B相连  0       ] 
计算其拉普拉斯矩阵L=D-A
				[ 1  0  0 ]   [ 0  1  0 ]   [  1  -1   0 ]
				[ 0  2  0 ] − [ 1  0  1 ] = [ -1   2  -1 ]
				[ 0  0  1 ]   [ 0  1  0 ]   [  0  -1   1 ]

之后我们就可以愉快的了解图节点如何保存与更新他们各自的节点特征

  • 每一个节点的节点特征并不是一个数,而是由许多数组成的一个行向量。所有节点的行向量都叠在一起,就获得了一个节点特征矩阵
  • 例如,某油田中存在一成熟井网,井网的这种网络关系就可以看作图。井网中的每一口井就可以看作图中的节点,那么这个井对应的节点就应具备一些必要的节点特征例如BHP,PERM和PORO.
  • 这些合在一起则有井对应的节点特征向量x_i=[BHP, Pro, PERM, PORO]
python 复制代码
For Example
一个简单的井网(图结构):A ------ B ------ C. 每个节点具有两个特征(一行 = 一个节点, 一列 = 一种特征)
 - F1: BHP
 - F2: Pro
X = [ 18   90 ]   ← A 
	[ 17   85 ]   ← B
	[ 18   95 ]   ← C
神经网络的基本操作是:节点的新信息=自己的旧信息+邻居的信息,也可以写成X'=AX.
计算X'=AX
A =				X =				AX =
[ 0  1  0 ]		[ 18  90 ]←A		[ 17  85 ]
[ 1  0  1 ]		[ 17  85 ]←B		[ 36  185]
[ 0  1  0 ]		[ 18  95 ]←C		[ 17  85 ]
 - A 只连着 B → 拿到 B 的特征
 - B 连着 A 和 C → 拿到 A + C 的特征
 - C 只连着 B → 拿到 B 的特征

后记:当了这么久调参侠和炼丹师不懂些算法还是有点立不住。

相关推荐
爱喝热水的呀哈喽4 小时前
py读取dat/plt
线性代数
Eloudy4 小时前
矩阵算子 A 与矩阵算子 B 的 相对熵
线性代数·矩阵·量子计算
Zaly.6 小时前
【Python刷题】LeetCode 3567 子矩阵的最小绝对差
python·leetcode·矩阵
sheeta19987 小时前
LeetCode 每日一题笔记 2025.03.20 3567.子矩阵的最小绝对差
笔记·leetcode·矩阵
qq_283720058 小时前
WebGL基础教程(十四):投影矩阵深度解析——正交 vs 透视,彻底搞懂3D视觉魔法
3d·矩阵·webgl
AI科技星9 小时前
基于空间光速螺旋归一化的动力学方程推导与数值验证
人工智能·线性代数·算法·机器学习·平面
Tisfy9 小时前
LeetCode 3567.子矩阵的最小绝对差:暴力模拟
leetcode·矩阵·题解·模拟·暴力
Frostnova丶10 小时前
LeetCode 3567.子矩阵的最小绝对差
算法·leetcode·矩阵
罗罗攀10 小时前
PyTorch学习笔记|张量的线性代数运算
人工智能·pytorch·笔记·学习·线性代数