草庐IT

图谱论学习—拉普拉斯矩阵背后的含义

GallopZhang 2024-05-23 原文

目录

一、为什么学习拉普拉斯矩阵

    早期,很多图神经网络的概念是基于图信号分析或图扩散的,而这些都需要与图谱论相关的知识。并且在图网络深度学习中(graph deep learning)中,拉普拉斯矩阵是很常用的概念,深入理解其物理含义非常有助于加深对GNN模型的理解。博主最近在学习GCN,想要在拉普拉斯矩阵方面有个更加深入的了解,看了不少文献资料与网上的解读,受益匪浅。

二、拉普拉斯矩阵的定义与性质

    对于一个有n个顶点的图G,它的拉普拉斯矩阵(Laplacian Matrix)定义为: L = D − A L=D-A L=DA    其中,D是图G的度矩阵,A是图G的邻接矩阵。L中的元素可定义为:
L i j = { d ( v i ) 如 果 i = j − A i j 如 果 i   ≠   j 并 且 v i 与 v j 之 间 有 边 0 其 他 L_{ij}= \begin{cases} d(v_i)& 如果i=j \\ -A_{ij}& 如果i\ {\neq}\ j并且v_i与v_j之间有边 \\ 0& 其他 \end{cases} Lij=d(vi)Aij0i=ji = jvivj    通常, 我们需要将拉普拉斯矩阵进行归一化。常用的有两种方式。
    (1) 对称归一化的拉普拉斯矩阵(Symmetric Normalized Laplacian Matrix) L s y m = D − 1 2 L D − 1 2 = I − D − 1 2 A D − 1 2 L^{sym}=D^{-\frac{1}{2}}LD^{-\frac{1}{2}}=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2}} Lsym=D21LD21=ID21AD21    (2) 随机游走归一化的拉普拉斯矩阵(Random Walk Normalized Laplacian Matrix) L r w = D − 1 L = I − D − 1 A L^{rw}=D^{-{1}}L=I-D^{-{1}}A Lrw=D1L=ID1A    以下面这个图为例,假设每条边权重为1,得到这个图的邻接矩阵、度矩阵和拉普拉斯矩阵。

    从这个L矩阵中可以观察到拉普拉斯矩阵的以下几条性质。
    ○ L是对称的
    ○ L是半正定矩阵(每个特征值 λ i ≥ 0 \lambda_i{\geq}0 λi0
    ○ L的每一行每一列的和为0
    ○ L的最小特征值为0。给定一个特征向量 v 0 = ( 1 , 1 , ⋯   , 1 ) T v_0=(1,1,\cdots,1)^T v0=(1,1,,1)T,根据上一条性质,L的每一行之和为0,所以 L v 0 = 0 Lv_0=0 Lv0=0

三、拉普拉斯矩阵的推导与意义

3.1 梯度、散度与拉普拉斯算子

    图拉普拉斯矩阵,如果把它看作线性变换的话,它起的作用与分析中的拉普拉斯算子是一样的。我们将在下面详细讨论,这里需要补充一些基础知识:

梯度定义
梯度 “ ∇ \nabla ” 是一个矢量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该方向处沿着此梯度方向变化最快,变化率最大(梯度的模)。

    假设一个三元函数 u = f ( x , y , z ) u=f(x,y,z) u=f(x,y,z)在空间区域 G G G内具有一阶连续偏导数,点 P ( x , y , z ) ∈ G P(x,y,z){\in}G P(x,y,z)G,则称以下向量表示为点 P P P处的梯度:
{ ∂ f ∂ x , ∂ f ∂ y , ∂ f ∂ z } = ∂ f ∂ x i ⃗ + ∂ f ∂ y j ⃗ + ∂ f ∂ z k ⃗ \{\frac{{\partial}f}{{\partial}x},\frac{{\partial}f}{{\partial}y},\frac{{\partial}f}{{\partial}z}\}=\frac{{\partial}f}{{\partial}x}\vec{i}+\frac{{\partial}f}{{\partial}y}\vec{j}+\frac{{\partial}f}{{\partial}z}\vec{k} {xf,yf,zf}=xfi +yfj +zfk     该式可记为 g r a d f ( x , y , z ) gradf(x,y,z) gradf(x,y,z) ∇ f ( x , y , z ) {\nabla}f(x,y,z) f(x,y,z),其中:
∇ = ∂ ∂ x i ⃗ + ∂ ∂ y j ⃗ + ∂ ∂ z k ⃗ \nabla=\frac{{\partial}}{{\partial}x}\vec{i}+\frac{{\partial}}{{\partial}y}\vec{j}+\frac{{\partial}}{{\partial}z}\vec{k} =xi +yj +zk     称为向量的微分算子或者Nabla算子

散度定义
散度 “ ∇ ⋅ {\nabla}{\cdot} ” (divergence)是一个标量,用于表示空间中各点矢量场发散的强弱程度,物理上,散度的意义是场的有源性。当 d i v ( F ) > 0 div(F)>0 div(F)>0,表示该点有散发通量的正源(发散源);当 d i v ( F ) < 0 div(F)<0 div(F)<0,表示该点有吸收能量的负源(洞或汇);当 d i v ( F ) = 0 div(F)=0 div(F)=0,表示该点无源

    散度是作用在向量场上的一个算子。用三维空间举例,向量场就是在空间中每一点处都对应一个三维向量的向量函数:
F ( x , y , z ) = ( v 1 ( x , y , z ) , v 2 ( x , y , z ) , v 3 ( x , y , z ) ) T d i v ( F ) = ∂ v 1 ∂ x + ∂ v 2 ∂ y + ∂ v 3 ∂ z F(x,y,z)=(v_1(x,y,z),v_2(x,y,z),v_3(x,y,z))^T\\ div(F)=\frac{{\partial}v_1}{{\partial}x}+\frac{{\partial}v_2}{{\partial}y}+\frac{{\partial}v_3}{{\partial}z} F(x,y,z)=(v1(x,y,z),v2(x,y,z),v3(x,y,z))Tdiv(F)=xv1+yv2+zv3    它是一个标量函数(场),也就是说,在定义空间中每一点的散度是一个值。矢量 V V V的散度在笛卡尔坐标(直角坐标系)下的表达式如下所示:
∇ ⋅ V = ∂ V x ∂ x + ∂ V y ∂ y + ∂ V z ∂ z \nabla{\cdot}V=\frac{{\partial}V_x}{{\partial}x}+\frac{{\partial}V_y}{{\partial}y}+\frac{{\partial}V_z}{{\partial}z} V=xVx+yVy+zVz

拉普拉斯算子定义
拉普拉斯算子“ △ \triangle ”(Laplace Operator)是n维欧几里得空间中的一个二阶微分算子,定义为梯度( ∇ f {\nabla}f f)的散度( ∇ ⋅ {\nabla}\cdot
△ f = ∇ 2 f = ∇ ⋅ ∇ f = d i v ( g r a d f ) {\triangle}f={\nabla}^2f={\nabla}{\cdot}{\nabla}f=div(gradf) f=2f=f=div(gradf)

    在笛卡尔坐标表示下:
△ f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 + ∂ 2 f ∂ z 2 {\triangle}f=\frac{{\partial}^2f}{{\partial}x^2}+\frac{{\partial}^2f}{{\partial}y^2}+\frac{{\partial}^2f}{{\partial}z^2} f=x22f+y22f+z22f    n维形式如下:
△ = ∑ i ∂ 2 ∂ x i 2 {\triangle}=\sum_i\frac{\partial^2}{{\partial}x_i^2} =ixi22    然后推导离散形式的导数:
∂ f ∂ x = f ( x + 1 ) − f ( x ) ∂ 2 f ∂ x 2 = f ′ ′ ( x ) = f ′ ( x ) − f ′ ( x − 1 ) = f ( x + 1 ) + f ( x − 1 ) − 2 f ( x ) \frac{{\partial}f}{{\partial}x}=f(x+1)-f(x)\\ \frac{{\partial}^2f}{{\partial}x^2}=f''(x)=f'(x)-f'(x-1)=f(x+1)+f(x-1)-2f(x) xf=f(x+1)f(x)x22f=f(x)=f(x)f(x1)=f(x+1)+f(x1)2f(x)    以二维坐标为例,将拉普拉斯算子转化为离散形式:
△ f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 = f ( x + 1 , y ) + f ( x − 1 , y ) − 2 f ( x , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 2 f ( x , y ) = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) {\triangle}f=\frac{{\partial}^2f}{{\partial}x^2}+\frac{{\partial}^2f}{{\partial}y^2}\\=f(x+1,y)+f(x-1,y)-2f(x,y)+f(x,y+1)+f(x,y-1)-2f(x,y)\\=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y) f=x22f+y22f=f(x+1,y)+f(x1,y)2f(x,y)+f(x,y+1)+f(x,y1)2f(x,y)=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y)    下面用散度 △ f {\triangle}f f的概念进一步分析:
    1. △ f > 0 {\triangle}f>0 f>0时,表示该点为发散源,是散发通量的正源,比如下图中的点 q 1 , q 2 , q 4 q_1,q_2,q_4 q1,q2,q4
    2. △ f < 0 {\triangle}f<0 f<0时,表示该点为洞或穴,是吸收通量的负源,比如下图中的点 q 3 q_3 q3
    3. △ f = 0 {\triangle}f=0 f=0时,表示该点无源
    我们将上面的式子用矩阵进行表示如下:
[ 0 1 0 1 − 4 1 0 1 0 ] \begin{bmatrix} 0&1&0\\ 1&-4&1\\ 0&1&0\\ \end{bmatrix} 010141010    实际上,拉普拉斯算子计算了周围点与中心点的梯度差。当 f ( x , y ) f(x,y) f(x,y)受到扰动之后,其可能变为相邻的 f ( x − 1 , y ) , f ( x + 1 , y ) , f ( x , y − 1 ) , f ( x , y + 1 ) f(x-1,y),f(x+1,y),f(x,y-1),f(x,y+1) f(x1,y),f(x+1,y),f(x,y1),f(x,y+1)之一,拉普拉斯算子得到的是对该点进行微小扰动后可能获得的总增益 (或者说是总变化)。
    形象地说,假设上图五个圆点都是人,四条黑线分别牵着两个人,所有人同时用力拉绳子,每个人的力气大小分别为: f ( x , y ) , f ( x − 1 , y ) , f ( x + 1 , y ) , f ( x , y − 1 ) , f ( x , y + 1 ) f(x,y),f(x-1,y),f(x+1,y),f(x,y-1),f(x,y+1) f(x,y),f(x1,y),f(x+1,y),f(x,y1),f(x,y+1)。而 △ f {\triangle}f f的值就表示了中间那位可怜的仁兄会被拉跑还是把其他人拉过来以及拉过来和被拉跑的程度。 △ f > 0 {\triangle}f>0 f>0时表示他会被拉跑, △ f < 0 {\triangle}f<0 f<0表示这家伙大力出奇迹把人全拉过来了, △ f = 0 {\triangle}f=0 f=0表示这五个人正在僵持状态,谁都拉不动中间那位同志。

3.2 从拉普拉斯算子到拉普拉斯矩阵

    我们现在将3.1节的结论推广到图:
    假设具有 N N N个节点的图 G G G,节点 i i i的邻域为 N i N_i Ni,图上定义一个函数 f = ( f 1 , f 2 , ⋯   , f n ) f=(f_1,f_2,\cdots,f_n) f=(f1,f2,,fn) f i f_i fi表示函数 f f f在节点 i i i处的函数值,则对其中一个节点 i i i进行微扰,它可能变为图中任意一个与它相邻的节点 j ∈ N i j{\in}N_i jNi N i N_i Ni表示节点 i i i的一阶邻域。

    我们已经知道通过拉普拉斯算子可以计算一个点在它所有自由度上微小扰动的增益,则通过图来表示就是任意一个节点 i i i变化到节点 j j j所带来的增益,设节点 i i i与节点 j j j之间连边 e i j e_{ij} eij的权值为 w i j w_{ij} wij,考虑图中边的权值则有:
△ f i = ∑ j ∈ N i w i j ( f i − f j ) {\triangle}f_i=\sum_{j{\in}N_i}w_{ij}(f_i-f_j) fi=jNiwij(fifj)    如果假设节点 i i i与节点 j j j不相邻时 w i j = 0 w_{ij}=0 wij=0,并将上面的式子进行简化:
△ f i = ∑ j ∈ N w i j ( f i − f j ) = ∑ j ∈ N w i j f i − ∑ j ∈ N w i j f j = d i f i − w i : f d i = ∑ j ∈ N i w i j 表 示 顶 点 的 度 w i : = ( w i 1 , ⋯   , w i N ) 表 示 N 维 的 行 向 量 f = ( f 1 ⋮ f N ) 表 示 N 维 的 列 向 量 {\triangle}f_i=\sum_{j{\in}N}w_{ij}(f_i-f_j)\\=\sum_{j{\in}N}w_{ij}f_i-\sum_{j{\in}N}w_{ij}f_j\\=d_if_i-w_{i:}f\\d_i=\sum_{j{\in}N_i}w_{ij}表示顶点的度\\w_{i:}=(w_{i1},\cdots,w_{iN})表示N维的行向量\\f=\begin{pmatrix} f_1\\ {\vdots}\\ f_N\\ \end{pmatrix}表示N维的列向量 fi=jNwij(fifj)=jNwijfijNwijfj=difiwi:fdi=jNiwijwi:=(wi1,,wiN)Nf=f1fNN    对于所有的N个节点来说:
△ f = ( △ f 1 ⋮ △ f N ) = ( d 1 f 1 − w 1 : f ⋮ d N f N − w N : f ) = ( d 1 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ d N ) f − ( w 1 : ⋮ w N : ) f = d i a g ( d i ) f − W f = ( D − W ) f = L f {\triangle}f=\begin{pmatrix} {\triangle}f_1\\ {\vdots}\\ {\triangle}f_N\\ \end{pmatrix}=\begin{pmatrix} d_1f_1-w_{1:}f\\ {\vdots}\\ d_Nf_N-w_{N:}f\\ \end{pmatrix}\\=\begin{pmatrix} d_1&{\cdots}&0\\ {\vdots}&{\ddots}&{\vdots}\\ 0&{\cdots}&d_N\\ \end{pmatrix}f-\begin{pmatrix} w_{1:}\\ {\vdots}\\ w_{N:}\\ \end{pmatrix}f\\=diag(d_i)f-Wf\\=(D-W)f\\=Lf f=f1fN=d1f1w1:fdNfNwN:f=d100dNfw1:wN:f=diag(di)fWf=(DW)f=Lf    这里的 ( D − W ) (D-W) (DW)实际上就是拉普拉斯矩阵 L L L
    根据前面所述,拉普拉斯矩阵中的第 i i i行实际上反应了第 i i i个节点在对其他所有节点产生扰动时所产生的增益累积。直观上来讲,图拉普拉斯反映了当我们在节点 i i i上施加一个势,这个势以哪个方向能够多顺畅的流向其他节点。谱聚类中的拉普拉斯矩阵可以理解为是对图的一种矩阵表示形式。
    形象点说,我们可以把 N N N个节点想象为 N N N座山峰, f i f_i fi为山峰 i i i的海拔高度,两个节点之间有连边则代表两座山峰之间有路径,拉普拉斯矩阵实际就是嵌入了某一个山峰对在其他山峰上的人的吸引程度,或者说是一种人口流动倾向。

    参考链接:
    1. https://zhuanlan.zhihu.com/p/81502804
    2. https://zhuanlan.zhihu.com/p/238644468
    3. https://zhuanlan.zhihu.com/p/85287578

有关图谱论学习—拉普拉斯矩阵背后的含义的更多相关文章

  1. 旋转矩阵的几何意义 - 2

    点向量坐标矩阵的几何意义介绍旋转矩阵的几何含义之前,先介绍一下点向量坐标矩阵的几何含义点:在一维空间下就是一个标量,如同一条直线上,以任意某一个位置为0点,以一定的尺度间隔为1,2,3...,相反方向为-1,-2,-3...;如此就形成了一维坐标系,这时候任何一个点都可以用一个数值表示,如点p1=5,即即从原点出发沿着x轴正方向移动5个尺度;点p2=-3,负方向移动3个尺度;     在一维坐标系上过原点做垂直于一维坐标系的直线,则形成了二维坐标系,此时描述一个点需要两个数值来表示点p3=(3,2),即从原点出发沿着x轴正方向移动3个尺度,在此基础上沿着y轴正方向移动两个尺度的位置就是点p3。

  2. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  3. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  4. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  5. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  6. ruby - 变量赋值后的 if 语句 - 有多常见? - 2

    我最近与一位同事讨论了以下Ruby语法:value=ifa==0"foo"elsifa>42"bar"else"fizz"end我个人并没有看到太多这种逻辑,但我的同事指出,这实际上是一种相当普遍的Rubyism。我试着用谷歌搜索这个主题,但没有找到任何文章、页面或SO问题来讨论它,这让我相信这可能是一种非常实际的技术。然而,另一位同事发现语法令人困惑,而是将上面的逻辑写成这样:ifa==0value="foo"elsifa>42value="bar"elsevalue="fizz"end缺点是value=的重复声明和隐式elsenil的丢失,如果我们想使用它的话。这也感觉它与Ruby

  7. ruby - 我如何学习 ruby​​ 的正则表达式? - 2

    如何学习ruby​​的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby​​的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/

  8. ruby -\b 在 Ruby 正则表达式中的真正含义是什么? - 2

    我有一个文件,其中包含诸如“CanyonSt/27thWay”之类的短语,我正试图使用​​Ruby正则表达式将其转换为“CanyonStand27thWay”。我使用file=file.gsub(/(\b)\/(\b)/,"#{$1}and#{$2}")进行匹配,但我我对\b的真正含义以及为什么$1包含斜线之前的单词边界之前的所有字符以及为什么$2包含从下一个单词开始的单词边界之后的所有字符感到有点困惑。通常,我希望正则表达式括号中的任何内容都在$1和$2中,但我不确定单词边界周围的括号真正意味着什么,因为从单词字符到字符的转换之间确实没有任何内容一个空白字符。

  9. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

  10. 机器学习——时间序列ARIMA模型(四):自相关函数ACF和偏自相关函数PACF用于判断ARIMA模型中p、q参数取值 - 2

    文章目录1、自相关函数ACF2、偏自相关函数PACF3、ARIMA(p,d,q)的阶数判断4、代码实现1、引入所需依赖2、数据读取与处理3、一阶差分与绘图4、ACF5、PACF1、自相关函数ACF自相关函数反映了同一序列在不同时序的取值之间的相关性。公式:ACF(k)=ρk=Cov(yt,yt−k)Var(yt)ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})}ACF(k)=ρk​=Var(yt​)Cov(yt​,yt−k​)​其中分子用于求协方差矩阵,分母用于计算样本方差。求出的ACF值为[-1,1]。但对于一个平稳的AR模型,求出其滞

随机推荐