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

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

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

目录

  • 第五章 图信号处理与图卷积神经网络
    • 1. 图信号
    • 2. 拉普拉斯算子 & 拉普拉斯矩阵
      • 2.1 拉普拉斯算子
      • 2.2 拉普拉斯矩阵
        • 2.2.1 算子 & 矩阵的基本理解
        • 2.2.2 拉普拉斯矩阵二次型
    • 3. 傅里叶变换
      • 3.1 基本概念和计算
      • 3.2 傅里叶变换 & 频率
    • 4. 图滤波器
    • 5. 图卷积神经网络

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

1. 图信号

读书笔记《深入浅出图神经网络》 Part 2_第1张图片

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

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

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

2.1 拉普拉斯算子

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

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

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

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

2.2 拉普拉斯矩阵

2.2.1 算子 & 矩阵的基本理解

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

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

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

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

2.2.2 拉普拉斯矩阵二次型

通过拉普拉斯矩阵,我们来定义一个二次型: T V ( x ) = x T L x = ∑ v i ∑ v j ∈ N ( v i ) x i ( x i − x j ) = ∑ e i j ∈ E ( x i − x j ) 2 TV(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)=xTLx=vivjN(vi)xi(xixj)=eijE(xixj)2
T V ( x ) TV(x) TV(x) 为图信号的总变差(标量),通过这个二次型来刻画信号的平滑程度。这个值越小,代表信号 x x x 越平滑。

3. 傅里叶变换

3.1 基本概念和计算

【1】什么叫时域和频域?
【2】万字长文带你入门 GCN

  • 傅里叶变换作用:将信号从时域空间(横轴时间,纵轴信号变化)转换到频域空间(横轴频率,纵轴频率信号的幅度),那为什么我们要从频域视角研究呢?这是因为,围绕傅里叶变换,信号的滤波、卷积等操作都有了完备的理论定义,因此频域视角的转换利于图信号处理理论体系的建立。
    读书笔记《深入浅出图神经网络》 Part 2_第4张图片
  • 在讲傅里叶变换如果计算之前,先来说说拉普拉斯矩阵,上文提到拉普拉斯矩阵 L L L 是个实对称矩阵,那么它就可以被正交对角化: L = V Λ V T = [ . . . . v 1 v 2 . . . v N . . . . ] [ λ 1 λ 2 . . . λ N ] [ . . . . v 1 v 2 . . . v N . . . . ] L=V\Lambda V^T=\begin{bmatrix}.& .& .&. \\ v_1 &v_2 &... &v_N \\ .& .& .& .\end{bmatrix}\begin{bmatrix} \lambda _1& & & & & \\ & \lambda _2 & & & & \\ & & . & & & \\ & & & . & & \\ & & & & . & \\ & & & & &\lambda _N \end{bmatrix}\begin{bmatrix}.& .& .&. \\ v_1 &v_2 &... &v_N \\ .& .& .& .\end{bmatrix} L=VΛVT=.v1..v2.......vN.λ1λ2...λN.v1..v2.......vN.
    其中, V V V 是实对称矩阵 L L L 的一组特征向量 而且它是正交矩阵, Λ \Lambda Λ 是由特征值组成的对角矩阵,并且我们对特征值进行升序排列 λ 1 ⩽ λ 2 . . . ⩽ λ N \lambda _1\leqslant \lambda _2...\leqslant \lambda _N λ1λ2...λN
  • 接下来看傅里叶变换是如何计算的(关于傅里叶变换更详细内容,请看上方参考链接【2】),在这里直接给出结论,书中作者称,对于任意一个在图上的信号 x x x,其图傅里叶变换为: x ~ k = ∑ i = 1 N V k i T x i = ⟨ v k , x ⟩ \tilde{x}_k=\sum_{i=1}^{N}V_{ki}^Tx_i=\left \langle v_k,x\right \rangle x~k=i=1NVkiTxi=vk,x
    其中的 v v v 就是上文提到的特征向量,我们也将该特征向量称为傅里叶基 x ~ k \tilde{x}_k x~k 称为信号 x x x 在第 k k k 个傅里叶基上的傅里叶系数,根据公式可以看到:傅里叶系数 x ~ \tilde{x} x~ 就是图信号 x x x 在傅里叶基(特征向量)上的投影。
  • 至此,对傅里叶系数、傅里叶基等有了初步概念,接着将这个公式以矩阵形式表示:
    x ~ = V T x , x ∈ R N x = V x ~ = [ . . . . v 1 v 2 . . . v N . . . . ] [ x ~ 1 x ~ 2 . . . x ~ N ] = x ~ 1 v 1 + x ~ 2 v 2 + . . . + x ~ N v N = ∑ k = 1 N x ~ k v k \tilde{x}=V^Tx, x\in R^N \\ x=V\tilde{x}=\begin{bmatrix}.& .& .&. \\ v_1 &v_2 &... &v_N \\ .& .& .& .\end{bmatrix}\begin{bmatrix} \tilde{x}_1\\ \tilde{x}_2\\ .\\ .\\ .\\ \tilde{x}_N\\ \end{bmatrix} =\tilde{x}_1v_1+\tilde{x}_2v_2+...+\tilde{x}_Nv_N=\sum_{k=1}^{N}\tilde{x}_kv_k x~=VTx,xRNx=Vx~=.v1..v2.......vN.x~1x~2...x~N=x~1v1+x~2v2+...+x~NvN=k=1Nx~kvk
    第二个公式就是左乘 V V V ,上文有提到这个特征向量矩阵 V V V 是正交的,即 V V T = E VV^T=E VVT=E。这个公式的结果就是逆图傅里叶变换

简单总结下上文,就是说:图 G G G 上的任意一个图信号 x x x 都可以被表征为一些基向量(拉普拉斯特征向量)的线性加权(权重是傅里叶系数),用图表示的话,是这样的:
读书笔记《深入浅出图神经网络》 Part 2_第5张图片

3.2 傅里叶变换 & 频率

上文简要讨论了傅里叶变换的作用和计算,回忆一下:傅里叶变换就是将信号从时域空间(横轴时间,纵轴信号变化)转换到频域空间(横轴频率,纵轴频率信号的幅度),那如何解读频域下的信号呢?上文 2.2.2 小节中,提到了总变差 T V ( x ) TV(x) TV(x),目的是通过二次型来刻画信号的平滑程度,这个值越小,代表信号 x x x 越平滑。下面,我们将总变差 T V ( x ) TV(x) TV(x) 改写下(公式太难打了,直接上书中的图):
读书笔记《深入浅出图神经网络》 Part 2_第6张图片

  • 从上面的公式,我们知道图信号的总变差与图的特征值有着线性关系,权重是图信号相对应的傅里叶系数的平方。因为总变差刻画图信号整理的平滑度,那么是不是可以这样想,将特征值等价为频率特征值越小,频率越小,对应傅里叶基(特征向量)变化越慢,总变差越小,整个信号更平滑,相邻节点上的信号值趋于一致。反之亦然。
  • 有了频率,傅里叶系数就可以等价为图信号在对应频率分量上的幅值,反映了图信号在该频率分量上的强度。图信号在低频分量上的强度越大,该信号的平滑度越高。反之亦然。

4. 图滤波器

作者将图滤波器定义为:对给定图信号的频谱中各个频率分量的强度进行增强或衰减的操作。表示为: y = H x = ∑ k = 1 N ( h ( λ k ) x ~ k ) v k y=Hx=\sum_{k=1}^{N}(h(\lambda _k){\widetilde{x}}_k)v_k y=Hx=k=1N(h(λk)x k)vk,其中 x ~ k {\widetilde{x}}_k x k 表示傅里叶系数, v k v_k vk 表示特征向量,我们可以看到频率分量的增强还是衰减是通过 h ( λ ) h(\lambda) h(λ) 控制的,进一步变换:

  • Λ h \Lambda _h Λh 为图滤波器 H H H 的频率响应矩阵
  • h ( λ ) h(\lambda) h(λ) H H H 的频率响应函数,不同的频率响应函数可以实现不同的滤波效果。为了实现任意类型函数曲线的频率响应函数,使用泰勒展开——多项式逼近函数去近似任意函数: H = h 0 L 0 + h 1 L 1 + h 2 L 2 + . . . + h K L K = ∑ k = 0 K h k L k H=h_0L^0+h_1L^1+h_2L^2+...+h_KL^K=\sum_{k=0}^{K}h_kL^k H=h0L0+h1L1+h2L2+...+hKLK=k=0KhkLk

5. 图卷积神经网络

在图滤波器定义的基础上,我们可以进一步定义图卷积的运算,因为时域中的卷积运算等价于频域中的乘法运算,所以可以得到:
x 1 ∗ x 2 = V ( ( V T x 1 ) ⊙ ( V T x 2 ) ) = V ( x ~ 1 ⊙ ( V T x 2 ) ) = V ( d i a g ( x ~ 1 ) ( V T x 2 ) ) = ( V d i a g ( x ~ 1 ) V T ) x 2 x_1 \ast x_2 =V((V^Tx_1)\odot(V^Tx_2) ) = V({\widetilde {x}_1}\odot (V^Tx_2) ) = V(diag({\widetilde x}_1)(V^Tx_2))=(Vdiag({\widetilde x}_1)V^T)x_2 x1x2=V((VTx1)(VTx2))=V(x 1(VTx2))=V(diag(x 1)(VTx2))=(Vdiag(x 1)VT)x2
令, H x ~ 1 = V d i a g ( x ~ 1 ) V T H_{{\widetilde {x}_1}}=Vdiag({\widetilde x_1})V^T Hx 1=Vdiag(x 1)VT,因此得到 x 1 ∗ x 2 = H x ~ 1 x 2 x_1 \ast x_2=H_{{\widetilde {x}_1}}x_2 x1x2=Hx 1x2,可以看到两组图信号的卷积运算可以转化为对应形式的图滤波运算。

接下来,列举将上述定义的图卷积运算推广到图数据的学习中的一些代表性工作:

  • 参数化对频率响应矩阵
  • 参数化多项式系数
  • 设计固定的图滤波器

小总结

  • 对于只能从频域出发进行矩阵特征分解,从而执行图卷积计算的模型,称为频域图卷积模型
  • 对于图卷积计算不需要进行矩阵特征分解,能在空域视角执行矩阵乘法计算的模型,称为空域图卷积模型

你可能感兴趣的:(模型原理笔记)