图神经网络学习笔记:拉普拉斯矩阵

拉普拉斯矩阵定义为:

L = D − A L = D - A L=DA

其中, A A A表示邻接矩阵, D D D表示度矩阵。

拉普拉斯矩阵的元素级别定义

L ij ⁡ = { deg ⁡ ( v i ) if ⁡ i = j − 1 if ⁡ e ij ⁡ ∈ E 0 otherwise ⁡ L_{{\operatorname{ij}}} = \left\{\begin{array}{ll} \deg (v_i) & {\operatorname{if}}i = j\\ - 1 & {\operatorname{if}}e_{{\operatorname{ij}}} \in E\\ 0 & {\operatorname{otherwise}} \end{array}\right. Lij=deg(vi)10ifi=jifeijEotherwise

拉普拉斯矩阵正则化形式(symmetric normalized
laplacian): L sym ⁡ = D − 1 2 L D − 1 2 L_{{\operatorname{sym}}} = D^{- \frac{1}{2}} LD^{- \frac{1}{2}} Lsym=D21LD21

L sym ⁡ = [ i , j ] = { 1 if ⁡ i = j − 1 deg ⁡ ( v 1 ) deg ⁡ ( v 2 ) if ⁡ e ij ⁡ ∈ E 0 otherwise ⁡ L_{{\operatorname{sym}}} = [i, j] = \left\{\begin{array}{ll} 1 & {\operatorname{if}}i = j\\ \frac{- 1}{\sqrt{\deg (v_1) \deg (v_2)}} & {\operatorname{if}}e_{{\operatorname{ij}}} \in E\\ 0 & {\operatorname{otherwise}} \end{array}\right. Lsym=[i,j]=1deg(v1)deg(v2) 10ifi=jifeijEotherwise

  • 是对称矩阵
  • 有实特征值
  • 有实正交特征矩阵(意味着 V V T = E VV^T = E VVT=E,即 V − 1 = V T V^{- 1} = V^T V1=VT

这意味着可以被正交对角化,即 L = V Λ V − 1 L = V \Lambda V^{- 1} L=VΛV1,又 V V V是正交矩阵,则 L = V Λ V T L = V \Lambda V^T L=VΛVT

拉普拉斯算子矩阵的定义来源于拉普拉斯算子,拉普拉斯算子是n维欧式空间中的一个二阶微分算子: Δ f = ∑ i = 1 n ∂ 2 f ∂ x i 2 \Delta f = \sum_{i = 1}^n \frac{\partial^2 f}{\partial x_i^2} Δf=i=1nxi22f

把拉普拉斯算子用于图像,就变成了边缘检测算子: [ ˙ 0 1 0 ˙ 1 − 4 1 ˙ 0 1 0 ˙ ] \left[\begin{array}{ccc}˙ 0 & 1 & 0\\˙ 1 & - 4 & 1\\˙ 0 & 1 & 0˙\end{array}\right] ˙0˙1˙0141010˙

Δ f = ∂ 2 f ( x , y ) ∂ x 2 + ∂ 2 f ( x , y ) ∂ y 2 = [ f ( x + 1 , y ) − f ( x , y ) − f ( x − 1 , y ) ] + [ ( f ( x , y + 1 ) − f ( x , y ) ) − ( f ( x , y ) − f ( x , y − 1 ) ] = [ f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) ] − 4 f ( x , y ) \begin{array}{rcl} \Delta f & = & \frac{\partial^2 f (x, y)}{\partial x^2} + \frac{\partial^2 f (x, y)}{\partial y^2}\\ & = & [f (x + 1, y) - f (x, y) - f (x - 1, y)] + [( f (x, y + 1) - f (x, y)) - (f (x, y) - f (x, y - 1)]\\ & = & [f (x + 1, y) + f (x - 1, y) + f (x, y + 1) + f (x, y - 1)] - 4 f (x, y) \end{array} Δf===x22f(x,y)+y22f(x,y)[f(x+1,y)f(x,y)f(x1,y)]+[(f(x,y+1)f(x,y))(f(x,y)f(x,y1)][f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)]4f(x,y)

为什么拉普拉斯矩阵的定义为: L = D − A L = D - A L=DA?

思考,既然拉普拉斯算子是二阶微分,那么

  • 图上的函数是什么?
  • 图上的函数梯度是什么?

我在b站看到这两个问题的时候,对拉普拉斯矩阵的理解就突然有感觉了。

注:下面的解释是从b站看的,我还没看到其他的参考资料。所以这里只做理解用。频域、谱域以及拉普拉斯算子在图上的应用 ,参考:https://b23.tv/av51204684/p7

第一种定义

  1. 图上的函数是什么?
    对任一结点i, f ( i ) = 结 点 的 出 度 f (i) =结点的出度 f(i)=
  2. 图上的函数梯度是什么?
    f ( ⋅ ) f (\cdot) f()在结点i处沿着结点j方向的导数 = f ( i ) − f ( j ) = f (i) - f (j) =f(i)f(j)
    f ( ⋅ ) f (\cdot) f()在结点i处的梯度变化率 = = =结点i出度方向上的导数和 − - 结点i入度方向上的导数和

考虑下图
图神经网络学习笔记:拉普拉斯矩阵_第1张图片
可得

f = [ 3 0 1 0 ] T f ′ = [ e 1 e 2 e 3 e 4 ] T / / 只 考 虑 存 在 的 边 = [ f ( 1 ) − f ( 2 ) f ( 1 ) − f ( 3 ) f ( 1 ) − f ( 4 ) f ( 3 ) − f ( 4 ) ] / / 方 向 是 边 的 方 向 , 完 整 的 [ 0 3 2 3 − 3 0 − 1 0 − 2 1 0 1 − 3 0 − 1 0 ] = [ 3 2 3 1 ] T f ′ 变 化 率 = [ e 1 + e 2 + e 3 − e 1 e 4 − e 2 − e 3 − e 4 ] = [ 8 − 3 − 1 − 4 ] T \begin{array}{rcl} f & = & \left[\begin{array}{cccc} 3 & 0 & 1 & 0 \end{array}\right]^T\\ f' & = & \left[\begin{array}{cccc} e_1 & e_2 & e_3 & e_4 \end{array}\right]^T / /只考虑存在的边\\ & = & \left[\begin{array}{c} f (1) - f (2)\\ f (1) - f (3)\\ f (1) - f (4)\\ f (3) - f (4) \end{array}\right] / /方向是边的方向,完整的 \left[\begin{array}{cccc} 0 & 3 & 2 & 3\\ - 3 & 0 & - 1 & 0\\ - 2 & 1 & 0 & 1\\ - 3 & 0 & - 1 & 0 \end{array}\right]\\ & = & \left[\begin{array}{cccc} 3 & 2 & 3 & 1 \end{array}\right]^T\\ f' 变化率 & = & \left[\begin{array}{c} e_1 + e_2 + e_3\\ - e_1\\ e_4 - e_2\\ - e_3 - e_4 \end{array}\right]\\ & = & \left[\begin{array}{cccc} 8 & - 3 & - 1 & - 4 \end{array}\right]^T \end{array} fff======[3010]T[e1e2e3e4]T//f(1)f(2)f(1)f(3)f(1)f(4)f(3)f(4)//0323301021013010[3231]Te1+e2+e3e1e4e2e3e4[8314]T

第二种定义

  1. 图上的函数是什么?
    对任一结点i, f ( i ) = 结 点 的 出 度 f (i) =结点的出度 f(i)=
  2. 图上的函数梯度是什么?
    K K K为关联矩阵
    f ( ⋅ ) f (\cdot) f()的梯度 = K T f = K^T f =KTf
    梯度变化率 = K K T f ​ = KK^T f​ =KKTf

f = [ 3 0 1 0 ] T K = [ 1 1 1 0 − 1 0 0 0 0 − 1 0 1 0 0 − 1 − 1 ] K T f = [ 3 2 3 1 ] T K K T f = [ 8 − 3 − 1 − 4 ] T \begin{array}{rcl} f & = & \left[\begin{array}{cccc} 3 & 0 & 1 & 0 \end{array}\right]^T\\ K & = & \left[\begin{array}{cccc} 1 & 1 & 1 & 0\\ - 1 & 0 & 0 & 0\\ 0 & - 1 & 0 & 1\\ 0 & 0 & - 1 & - 1 \end{array}\right]\\ K^T f & = & \left[\begin{array}{cccc} 3 & 2 & 3 & 1 \end{array}\right]^T\\ KK^T f & = & \left[\begin{array}{cccc} 8 & - 3 & - 1 & - 4 \end{array}\right]^T \end{array} fKKTfKKTf====[3010]T1100101010010011[3231]T[8314]T

注意 K K T = [ ˙ 3 − 1 − 1 − 1 ˙ − 1 1 0 0 ˙ − 1 0 2 − 1 ˙ − 1 0 − 1 2 ˙ ] KK^T = \left[\begin{array}{cccc}˙ 3 & - 1 & - 1 & - 1\\˙ - 1 & 1 & 0 & 0\\˙ - 1 & 0 & 2 & - 1\\˙ - 1 & 0 & - 1 & 2˙\end{array}\right] KKT=˙3˙1˙1˙1110010211012˙为对应无向图的拉普拉斯矩阵

验证

L = D − A = diag ⁡ ( [ 3 , 1 , 2 , 2 ] ) − [ 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 ] = [ 3 − 1 − 1 − 1 − 1 1 0 0 − 1 0 2 − 1 − 1 0 − 1 2 ] \begin{array}{rcl} L & = & D - A\\ & = & {\operatorname{diag}} ([3, 1, 2, 2]) - \left[\begin{array}{cccc} 0 & 1 & 1 & 1\\ 1 & 0 & 0 & 0\\ 1 & 0 & 0 & 1\\ 1 & 0 & 1 & 0 \end{array}\right]\\ & = & \left[\begin{array}{cccc} 3 & - 1 & - 1 & - 1\\ - 1 & 1 & 0 & 0\\ - 1 & 0 & 2 & - 1\\ - 1 & 0 & - 1 & 2 \end{array}\right] \end{array} L===DAdiag([3,1,2,2])01111000100110103111110010211012

你可能感兴趣的:(机器学习)