读书笔记《深入浅出图神经网络》 Part 2

笔记终于写到了本书的核心部分,内容多且杂,每一部分都不太好理解,而且比单独理解某一部分更难理解的是这些知识点之间是如何串联的??拉普拉斯算子和拉普拉斯矩阵什么关系,怎么就从拉普拉斯矩阵讲到了图傅里叶变换,这些和卷积又有什么关系?种种问题都是理解图卷积的一个又一个拦路虎。

本文意在梳理出书中比较关键的内容,结合各类博客的分享,做一个主要内容的抽取和梳理工作~

第五章 图信号处理与图卷积神经网络

1. 图信号

读书笔记《深入浅出图神经网络》 Part 2

  • 图信号:定义在节点上的信号,而节点之间有自己固有的关联结构。如用x=[x1,x2,...,xN]Tx=[x_1, x_2,...,x_N]^T,其中 xix_i 表示的是节点 viv_i 上的信号强度。
  • 所以,在研究图信号性质时,既要考虑图的拓扑结构,又要考虑信号强度。不同图上的同一强度的信号,具有截然不同的性质。

2. 拉普拉斯算子 & 拉普拉斯矩阵

下文内容部分参考于:拉普拉斯矩阵与拉普拉斯算子的关系

2.1 拉普拉斯算子

  • 拉普拉斯算子是 nn 维欧式空间中的一个二阶微分算子:Δf=i=1n2fxi2\Delta f=\sum_{i=1}^{n}\frac{\partial^2f}{\partial x_i^2}
  • 我们需要知道的是:在图信号中,使用拉普拉斯算子描述中心节点邻居节点之间的信号差异

怎么理解:拉普拉斯算子可以用来描述信号差异?

举个例子,如果该算子作用域退化到离散的二维图像空间,它就变成了熟悉的边缘检测算子,它是这样工作的:

  • 离散函数的一阶导数:fx=f(x)=f(x+1)f(x)\frac{\partial f}{\partial x}=f'(x)=f(x+1)-f(x)
  • 离散函数的二阶导数:2fx2=f(x)f(x)f(x1)=f(x+1)+f(x1)2f(x)\frac{\partial^2 f}{\partial x^2}=f''(x)\approx f'(x)-f'(x-1)= f(x+1)+f(x-1)-2f(x)
  • 我们将拉普拉斯算子转化为离散形式(以二维为例),导数结果就是这样的,就是刚刚提到的边缘检测算子
    读书笔记《深入浅出图神经网络》 Part 2
    所以,拉普拉斯算子 Δf\Delta f 计算了周围点与中心点的梯度差,当中心点 f(x,y)f(x,y) 受到扰动时,其可变为相邻的四个点之一,拉普拉斯算子得到的是对该点进行微小扰动后可能获得的总增益。
    因此,拉普拉斯算子可以用来描述中心节点与邻居节点之间的信号差异。

2.2 拉普拉斯矩阵

2.2.1 算子 & 矩阵的基本理解

  • 回忆下刚刚说的拉普拉斯算子,如果 ff 是欧式空间中的二阶可维实函数,那么拉普拉斯算子 Δf\Delta f 就是欧式空间中求其二阶微分的结果。
  • 对比拉普拉斯算子,如果 ff 是图上定义的一组高维向量,那么拉普拉斯矩阵 LfLf 就是图空间中求其二阶微分的结果。公式是这样的:Lx=(DA)x=[...,vjN(vi)(xixj),...]Lx=(D-A)x=\left [ ...,{\sum_{v_j\in N(v_i)} (x_i-x_j),...}^{}\right ]

别忘了上文提到的 xix_i 表示的是节点 viv_i 上的信号强度,那么通过这个公式我们可以知道,拉普拉斯矩阵是一个反映图信号局部平滑度的算子。我们需要记住的是:拉普拉斯矩阵就是图上的拉普拉斯算子

举个计算的例子:拉普拉斯矩阵 L=DAL = D - ADD 是度矩阵,AA 是邻接矩阵
读书笔记《深入浅出图神经网络》 Part 2
这样的拉普拉斯矩阵具有以下性质:

  • 拉普拉斯矩阵是实对称矩阵
  • 拉普拉斯矩阵是半正定的
  • 拉普拉斯矩阵至少有一个特征值为0

2.2.2 拉普拉斯矩阵二次型

通过拉普拉斯矩阵,我们来定义一个二次型:TV(x)=xTLx=vivjN(vi)xi(xixj)=eijE(xixj)2TV(x)=x^TLx=\sum_{v_i}\sum_{v_j\in N(v_i)}x_i(x_i-x_j)=\sum_{e_{ij}\in E}(x_i-x_j)^2
TV(x)TV(x) 为图信号的总变差(标量),通过这个二次型来刻画信号的平滑程度。这个值越小,代表信号 xx 越平滑。

3. 傅里叶变换

(待更新)