1 前言
本文为自己学习的记录,内容多有参考其他博主的资料,相关资料一并在参考文献中给出。
谱图理论目的是研究图的邻接矩阵,而其中最重要的概念就是拉普拉斯矩阵。拉普拉斯矩阵之所以在图神经网络中如此重要,是因为如果要把传统的傅里叶变换以及卷积迁移到Graph上来,核心工作其实就是把拉普拉斯算子的特征函数
e
−
i
w
t
e^{-iwt}
e−iwt,变为Graph对应的拉普拉斯矩阵的特征向量。
通过拉普拉斯算子与拉普拉斯矩阵进行类比。
2 拉普拉斯算子
拉普拉斯算子和散度算子、梯度算子、求导算子一样,都是一种多元函数的计算操作。例如对函数
f
(
x
)
f(x)
f(x)求导,对其求梯度,求拉普拉斯,都是对函数的一种操作。
拉普拉斯算子的定义:拉普拉斯算子(Laplace Operator)是 维欧几里得空间中的一个二阶微分算子,定义为梯度(
∇
f
\nabla f
∇f)的散度(
∇
⋅
\nabla \cdot
∇⋅),即,
Δ
f
=
∇
2
f
=
∇
⋅
∇
f
=
d
i
v
(
g
r
a
d
(
f
)
)
\Delta f=\nabla^{2} f=\nabla \cdot \nabla f=d i v(g r a d (f))
Δf=∇2f=∇⋅∇f=div(grad(f))
梯度的定义(矢量):梯度(
∇
\nabla
∇),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该方向处沿着该方向(此梯度方向)变化最快,变化率最大(为该梯度的模)。
散度的定义:可用于表针空间中各点矢量场发散的强弱程度,物理上,散度的意义是场的有源性。当
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,表示该点无源。
从拉普拉斯算子的定义看(梯度散度),梯度散度较大的点对应函数的最小值,该点周围的值都要大于该点,梯度散度较小的点对应函数的最大值,周围的点值都比该点小。可以想像一座山,根据梯度的定义,在山峰周围,所有的梯度向量向此汇聚,所以每个山峰处的拉普拉斯算子为负;而在山谷周围,所有梯度从此发散,所以每个山谷处的拉普拉斯算子为正。所以说,对于一个函数,拉普拉斯算子实际上衡量了在空间中的每一点处,该函数梯度是倾向于增加还是减少
如下图中绿圈所示,即为散度大于0的点,其附近的矢量场情况。下图中红圈所示,即为散度小于0的点,其附近的矢量场情况。
从计算的角度讲,拉普拉斯算子可以类比普通二元函数的二阶导数。
在笛卡尔坐标下
Δ
f
=
∂
2
f
∂
x
2
+
∂
2
f
∂
y
2
+
∂
2
f
∂
z
2
\Delta f=\frac{\partial^{2} f}{\partial x^{2}}+\frac{\partial^{2} f}{\partial y^{2}}+\frac{\partial^{2} f}{\partial z^{2}}
Δf=∂x2∂2f+∂y2∂2f+∂z2∂2f
n维形式下:
Δ
=
∑
i
∂
2
∂
x
i
2
\Delta=\sum_{i} \frac{\partial^{2}}{\partial x_{i}^{2}}
Δ=i∑∂xi2∂2
下面推导离散函数的导数:
∂
f
∂
x
=
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
)
\begin{array}{l} \frac{\partial f}{\partial x}=f^{\prime}(x)=f(x+1)-f(x) \\[5mm] \frac{\partial^{2} f}{\partial x^{2}}=f^{\prime \prime}(x) \approx f^{\prime}(x)-f^{\prime}(x-1) \\[5mm] =f(x+1)+f(x-1)-2 f(x) \end{array}
∂x∂f=f′(x)=f(x+1)−f(x)∂x2∂2f=f′′(x)≈f′(x)−f′(x−1)=f(x+1)+f(x−1)−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
)
\begin{array}{l} \Delta f=\frac{\partial^{2} f}{\partial x^{2}}+\frac{\partial^{2} f}{\partial y^{2}} \\[5mm] =f(x+1, y)+f(x-1, y)-2 f(x, y)+f(x, y+1)+f(x, y-1)-2 f(x, y) \\[5mm] =f(x+1, y)+f(x-1, y)+f(x, y+1)+f(x, y-1)-4 f(x, y) \end{array}
Δf=∂x2∂2f+∂y2∂2f=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)
3 拉普拉斯矩阵
定义一个图:一个图由节点与节点之间的边组成。每个节点是有值的,用
f
f
f来表示节点的值:
f
=
[
f
1
,
f
2
,
.
.
.
.
.
.
f
n
]
T
f=[f_1, f_2, ......f_n]^T
f=[f1,f2,......fn]T
这里的
f
f
f是一个向量,
f
i
f_{i}
fi表示网络中节点
i
i
i的值,也就是函数
f
f
f在节点
i
i
i处的值,类比
f
(
x
,
y
)
f(x, y)
f(x,y) 在
(
x
,
y
)
(x, y)
(x,y)处的值。
从另一个角度看,拉普拉斯算子计算了周围点与中心点的梯度差。当
f
(
x
,
y
)
f(x, y)
f(x,y)收到扰动之后,其可能变为相邻的
f
(
x
+
1
,
y
)
,
f
(
x
−
1
,
y
)
−
2
f
(
x
,
y
)
,
f
(
x
,
y
+
1
)
,
f
(
x
,
y
−
1
)
f(x+1, y),f(x-1, y)-2 f(x, y),f(x, y+1),f(x, y-1)
f(x+1,y),f(x−1,y)−2f(x,y),f(x,y+1),f(x,y−1)之一,拉普拉斯算子得到的是对该点进行微小扰动后可能获得的总增益 (或者说是总变化)。
上面已经知道拉普拉斯算子可以计算一个点到它所有自由度上微小扰动的增益,则通过图来表示就是任意一个节点
i
i
i变化到节点
j
j
j所带来的增益,考虑图中边的权值相等(简单说就是1)则有:
Δ f i = ∑ j ∈ N i ( f i − f j ) \Delta f_{i}=\sum_{j \in N_{i}}\left(f_{i}-f_{j}\right) Δfi=∑j∈Ni(fi−fj)
而如果边 E i j E_{ij} Eij具有权重 W i j W_{ij} Wij时:
Δ f i = ∑ j ∈ N i W i j ( f i − f j ) \Delta f_{i}=\sum_{j \in N_{i}} W_{i j}\left(f_{i}-f_{j}\right) Δfi=∑j∈NiWij(fi−fj)
当 W i j = 0 W_{ij}=0 Wij=0时表示节点 i , j i, j i,j不相连,所以上式可以简化为
Δ f i = ∑ j ∈ N W i j ( f i − f j ) \Delta f_{i}=\sum_{j \in N} W_{i j}\left(f_{i}-f_{j}\right) Δfi=∑j∈NWij(fi−fj)继续推导则如下:
Δ
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
\begin{array}{l} \Delta f_{i}=\sum_{j \in N} w_{i j}\left(f_{i}-f_{j}\right) \\[3mm] =\sum_{j \in N} w_{i j} f_{i}-\sum_{j \in N} w_{i j} f_{j} \\[3mm] =d_{i} f_{i}-w_{i:} f \end{array}
Δfi=∑j∈Nwij(fi−fj)=∑j∈Nwijfi−∑j∈Nwijfj=difi−wi:f
其中
d
i
=
∑
j
∈
N
w
i
j
d_{i}=\sum_{j \in N} w_{i j}
di=∑j∈Nwij是顶点
i
i
i的度。
w
i
:
=
(
w
i
1
,
…
,
w
i
N
)
w_{i:}=\left(w_{i 1}, \ldots, w_{i N}\right)
wi:=(wi1,…,wiN) 是
N
N
N维的行向量,
f
=
(
f
1
⋮
f
N
)
f=\left(\begin{array}{c} f_{1} \\ \vdots \\ f_{N} \end{array}\right)
f=⎝
⎛f1⋮fN⎠
⎞是
N
N
N维列向量。
w
i
:
f
w_{i:} f
wi:f表示两个向量的内积。
对于所有的
N
N
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
=
diag
(
d
i
)
f
−
W
f
=
(
D
−
W
)
f
=
L
f
\begin{array}{l} \Delta f=\left(\begin{array}{c} \Delta f_{1} \\ \vdots \\ \Delta f_{N} \end{array}\right)=\left(\begin{array}{c} d_{1} f_{1}-w_{1:} f \\ \vdots \\ d_{N} f_{N}-w_{N:} f\end{array}\right) \\ =\left(\begin{array}{ccc} d_{1} & \cdots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \cdots & d_{N} \end{array}\right) f-\left(\begin{array}{c} w_{1:} \\ \vdots \\ w_{N:} \end{array}\right) f \\[3mm] =\operatorname{diag}\left(d_{i}\right) f-W f \\[3mm] =(D-W) f \\[3mm] =L f \end{array}
Δf=⎝
⎛Δf1⋮ΔfN⎠
⎞=⎝
⎛d1f1−w1:f⋮dNfN−wN:f⎠
⎞=⎝
⎛d1⋮0⋯⋱⋯0⋮dN⎠
⎞f−⎝
⎛w1:⋮wN:⎠
⎞f=diag(di)f−Wf=(D−W)f=Lf
以上的解释来自参考文献【1】
这里的就是拉普拉斯矩阵
(
D
−
W
)
(D-W)
(D−W)根据前面所述,拉普拉斯矩阵中的第 行实际上反应了第
i
i
i个节点在对其他所有节点产生扰动时所产生的增益累积。直观上来讲,图拉普拉斯反映了当我们在节点
i
i
i上施加一个势,这个势以哪个方向能够多顺畅的流向其他节点。谱聚类中的拉普拉斯矩阵可以理解为是对图的一种矩阵表示形式。
重要结论:拉普拉斯矩阵是图上的一种拉普拉斯算子。
4 拉普拉斯矩阵的重要性质
① 对称性,由于其对称性,则它的所有特征值都是实数。且拉普拉斯矩阵的
n
n
n个特征值
0
≤
λ
1
≤
λ
2
≤
…
≤
λ
n
0 \leq \lambda_{1} \leq \lambda_{2} \leq \ldots \leq \lambda_{n}
0≤λ1≤λ2≤…≤λn
②引入关于矩阵
L
L
L和
h
h
h的瑞丽熵的概念
R
(
L
,
h
)
=
h
∗
L
h
h
∗
h
R(L, h)=\frac{h^{*} L h}{h^{*} h}
R(L,h)=h∗hh∗Lh
其中 h ∗ h^{*} h∗ 为 h h h 的共轭矩阵,对于 h h h 为实数矩阵的情况下 h ∗ = h T h^{*}=h^{T} h∗=hT ,而通过拉格朗日乘子法可以得出,瑞利嫡的一个非常重要的特点就是:瑞丽樀的最大值,等于 L L L的最大特征值,瑞利樀的最小值,等于 L L L的最小特征值。
③对于任意向量 f f f,有 f T L f = 1 2 ∑ i = 1 N ∑ j = 1 N w i j ( f i − f j ) 2 f^{T} L f=\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} w_{i j}\left(f_{i}-f_{j}\right)^{2} fTLf=21∑i=1N∑j=1Nwij(fi−fj)2
证明:
f
T
L
f
=
f
T
D
f
−
f
T
W
f
=
∑
i
=
1
N
d
i
f
i
2
−
∑
i
=
1
N
∑
j
=
1
N
w
i
j
f
i
f
j
=
1
2
(
∑
i
=
1
N
d
i
f
i
2
−
2
∑
i
=
1
N
∑
j
=
1
N
w
i
j
f
i
f
j
+
∑
j
=
1
N
d
j
f
j
2
)
=
1
2
(
∑
i
=
1
N
∑
j
=
1
N
w
i
j
f
i
2
−
2
∑
i
=
1
N
∑
j
=
1
N
w
i
j
f
i
f
j
+
∑
i
=
1
N
∑
j
=
1
N
w
i
j
f
j
2
)
=
1
2
∑
i
=
1
N
∑
j
=
1
N
w
i
j
(
f
i
−
f
j
)
2
\begin{array}{l} f^{T} L f=f^{T} D f-f^{T} W f \\[3mm] =\sum_{i=1}^{N} d_{i} f_{i}^{2}-\sum_{i=1}^{N} \sum_{j=1}^{N} w_{i j} f_{i} f_{j} \\[3mm] =\frac{1}{2}\left(\sum_{i=1}^{N} d_{i} f_{i}^{2}-2 \sum_{i=1}^{N} \sum_{j=1}^{N} w_{i j} f_{i} f_{j}+\sum_{j=1}^{N} d_{j} f_{j}^{2}\right) \\[3mm] =\frac{1}{2}\left(\sum_{i=1}^{N} \sum_{j=1}^{N} w_{i j} f_{i}^{2}-2 \sum_{i=1}^{N} \sum_{j=1}^{N} w_{i j} f_{i} f_{j}+\sum_{i=1}^{N} \sum_{j=1}^{N} w_{i j} f_{j}^{2}\right) \\[3mm] =\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} w_{i j}\left(f_{i}-f_{j}\right)^{2} \end{array}
fTLf=fTDf−fTWf=∑i=1Ndifi2−∑i=1N∑j=1Nwijfifj=21(∑i=1Ndifi2−2∑i=1N∑j=1Nwijfifj+∑j=1Ndjfj2)=21(∑i=1N∑j=1Nwijfi2−2∑i=1N∑j=1Nwijfifj+∑i=1N∑j=1Nwijfj2)=21∑i=1N∑j=1Nwij(fi−fj)2
对于上面的性质③,如果
f
f
f为网络中信号的值的向量,那么
f
T
L
f
f^{T} L f
fTLf称为图信号的总变差 (Total Variation),可以刻画图信号整体的平滑度 (Smoothness)。
那么为什么
f
T
L
f
f^{T} L f
fTLf可以刻画图的平滑度呢? 这里我们可以直观地来看一下,从(3的式子中可以看 出如果相邻节点的值
f
i
f_{i}
fi和
f
j
f_{j}
fj差异很大,那么
f
T
L
f
f^{T} L f
fTLf这个值就会很大,也就会不平滑。举例来 说,
f
i
f_{i}
fi可以看做节点
x
i
x_{i}
xi的标签
y
i
y_{i}
yi,这里将
f
T
L
f
f^{T} L f
fTLf记作
S
S
S。如果一个图比较平滑的话,那么图中相邻节点的标签应该是尽可能一致的,如果相邻节点的标签差异很大,那么这个图就不是很平滑。如下图:
这一点可以用在半监督学习中,大概的思路是构建有标签和无标签数据的无向图,节点就是每一个数据样本,边是节点间的相似度(使用径向基函数等来度量的相似度),为了使模型为无标签数据标注的标签更平滑,可以将
S
S
S作为训练模型的一个正则项。
参考文献【10】
5 参考文献
[1]拉普拉斯矩阵与拉普拉斯算子的关系
[2]【其实贼简单】拉普拉斯算子和拉普拉斯矩阵
[3]图拉普拉斯算子为何定义为D-W
[4]图傅里叶变换
[5]拉普拉斯矩阵的谱分解,谱图卷积,图卷积演变过程
[6]图像二阶导数的推导
[7]图(Graph)上的Laplacian矩阵
[8]视频-拉普拉斯方程
[9]图卷积神经网络系列:1. | 谱域卷积与拉普拉斯
[10]图神经网络中的谱图理论基础