扩展
拉普拉斯算子处理的对象一般是在欧氏空间中的,而图上的拉普拉斯则是将其拓展到了非欧氏空间上,并且其处理的数据不在是规则区域,而是具有一定拓扑结构的图。
先从离散的拉普拉斯说起: [ − 1 − 1 − 1 − 1 8 − 1 − 1 − 1 − 1 ] \left[ \begin{matrix}-1 & -1 & -1 \\-1 & 8 & -1 \\-1 & -1 & -1\end{matrix} \right] ⎣⎡−1−1−1−18−1−1−1−1⎦⎤或者 [ 1 1 1 1 − 8 1 1 1 1 ] \left[ \begin{matrix}1 & 1 & 1 \\1 & -8 & 1 \\1 & 1 & 1\end{matrix} \right] ⎣⎡1111−81111⎦⎤
这里算子的操作主要是对中心点的周围点进行运算,如果类比到图上的话就是对应顶点的邻接点。同样我们也需要定义一个关于顶点的函数来与之前的多元函数对应,并且还要相应的定义偏导与散度。
形式
邻接矩阵 W W W:对应描述了各顶点之间与边的关系,对应的 W i j W_{ij} Wij表示 i , j i,j i,j之间存在边(有向或无向),对应值为1(无权)或相应权值(有权),其余的元素为0。
度矩阵 D D D:该矩阵是一个对角矩阵,如果是无向图就对应为每个点的度,分布到对角的相应区域,如果是有向图就是取顶点的出度或者入度作为元素。
拉普拉斯矩阵: D − W D-W D−W,度矩阵减去邻接矩阵。
拉普拉斯矩阵为一个实对称矩阵,并且由于其各行各列的元素和为0,所以其不是一个正定矩阵,而是一个半正定矩阵。于是其特征值有 0 = λ 1 ⩽ λ 2 ⩽ λ 3 ⩽ λ 4 ⩽ λ 5 . . . . ⩽ λ n 0=\lambda_1\leqslant\lambda_2\leqslant\lambda_3\leqslant\lambda_4\leqslant\lambda_5....\leqslant\lambda_n 0=λ1⩽λ2⩽λ3⩽λ4⩽λ5....⩽λn特征值均为非负的。
拉普拉斯矩阵还有其他的形式,比如将其标准化,也就是对角上的数值为1:
D − 1 2 L D − 1 2 = I − D − 1 2 W D − 1 2 D^{-\frac12}LD^{-\frac12}=I-D^{-\frac12}WD^{-\frac12} D−21LD−21=I−D−21WD−21
其中的 I I I为单位矩阵。
关联
以一个图为例子:
其关联矩阵为 C = [ 1 1 0 0 0 0 0 0 0 − 1 1 0 0 − 1 0 1 − 1 0 0 − 1 1 0 0 0 0 0 − 1 1 0 0 1 0 0 0 0 0 − 1 1 − 1 0 0 0 0 0 0 0 0 − 1 ] C=\left[ \begin{matrix}1 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\0 & -1 & 1 & 0 & 0 & -1 & 0 & 1\\-1 & 0 & 0 & -1 & 1 & 0 & 0 & 0\\0 & 0 & -1 & 1 & 0 & 0 & 1 & 0\\0 & 0 & 0 & 0 & -1 & 1 & -1 & 0\\0 & 0 & 0 & 0 & 0 & 0 & 0 & -1\end{matrix} \right] C=⎣⎢⎢⎢⎢⎢⎢⎡10−10001−10000010−10000−11000010−100−100100001−1001000−1⎦⎥⎥⎥⎥⎥⎥⎤
其对应的行为顶点 V 1 − V 6 V_1-V_6 V1−V6,其对应的列为边 e 1 − e 8 e_1-e_8 e1−e8
进行一个转置相乘 C C T = [ 1 1 0 0 0 0 0 0 0 − 1 1 0 0 − 1 0 1 − 1 0 0 − 1 1 0 0 0 0 0 − 1 1 0 0 1 0 0 0 0 0 − 1 1 − 1 0 0 0 0 0 0 0 0 − 1 ] [ 1 0 − 1 0 0 0 1 − 1 0 0 0 0 0 1 0 − 1 0 0 0 0 − 1 1 0 0 0 0 1 0 − 1 0 0 − 1 0 0 1 0 0 0 0 1 − 1 0 0 1 0 0 0 − 1 ] CC^T=\left[ \begin{matrix}1 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\0 & -1 & 1 & 0 & 0 & -1 & 0 & 1\\-1 & 0 & 0 & -1 & 1 & 0 & 0 & 0\\0 & 0 & -1 & 1 & 0 & 0 & 1 & 0\\0 & 0 & 0 & 0 & -1 & 1 & -1 & 0\\0 & 0 & 0 & 0 & 0 & 0 & 0 & -1\end{matrix} \right] \left[ \begin{matrix}1 & 0 & -1 & 0 & 0 & 0 \\1 & -1 & 0 & 0 & 0 & 0 \\0 & 1 & 0 & -1 & 0 & 0\\0 & 0 & -1 & 1 & 0 & 0\\0 & 0 & 1 & 0 & -1 & 0\\0 & -1 & 0 & 0 & 1 & 0 \\0 & 0 & 0 & 1 & -1 & 0 \\0 & 1 & 0 & 0 & 0 & -1\end{matrix} \right] CCT=⎣⎢⎢⎢⎢⎢⎢⎡10−10001−10000010−100