图卷积网络GCN(Graph Convolution Network)(二)图上的傅里叶变换和逆变换

原文首发于个人站点 图卷积网络GCN(Graph Convolution Network)(二)图上的傅里叶变换和逆变换
公众号:【DreamHub】

由于文章篇幅较长,因此将其分解为三部分:

背景知识

如要了解谱图卷积,首先需要学习图理论基础和图中如何进行傅里叶变换。

对于傅里叶变换,本文不再赘述。详细内容可以参考:

图上的傅立叶变换

傅立叶变换是将时域的函数转换成频域上的函数,是对于同一个函数的不同视角,数学定义如下:
F ( w ) = F ( f ( t ) ) = ∫ f ( t ) e − i w t d t ( 1 ) \mathcal{F}(w)=\mathcal{F}(f(t))=\int{f(t)e^{-iwt}}dt \quad\quad\quad (1) F(w)=F(f(t))=f(t)eiwtdt(1)
公式(1)表示的意义是傅立叶变换是时域信号 f ( t ) f(t) f(t) 与基函数 e − i w t e^{-iwt} eiwt 的积分。

为什么选择 e − i w t e^{-iwt} eiwt作为基函数?原因有二:

  • e − i w t e^{-iwt} eiwt是正交函数系。
  • e − i w t e^{-iwt} eiwt是拉普拉斯算子 Δ \Delta Δ的特征函数。

至于 e − i w t e^{-iwt} eiwt由何种推导得来的请参考: 理解傅里叶变换 | 隐舍

先解释下拉普拉斯算子 Δ \Delta Δ的定义

在数学中,拉普拉斯算子(Laplacian)是由欧几里得空间中的一个函数的梯度的散度给出的微分算子,记为 Δ f = ∇ 2 f = ∇ ⋅ ∇ f \Delta f=\nabla^{2} f=\nabla \cdot \nabla f Δf=2f=f,表示 n n n维空间笛卡尔坐标系 x i x_i xi中所有非混合二阶偏导数之和,其数学定义为
Δ = ∑ i = 1 n ∂ 2 ∂ 2 x i ( 2 ) \Delta=\sum_{i=1}^n\frac{\partial^2}{\partial{^2x_{i}}} \quad\quad\quad(2) Δ=i=1n2xi2(2)
这表达式什么意思呢?以二维空间为例:
Δ f ( x , y ) = ∂ 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{aligned} \Delta f(x, y) &=\frac{\partial^{2} f}{\partial x^{2}}+\frac{\partial^{2} f}{\partial 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) \end{aligned} Δf(x,y)=x22f+y22f=[f(x+1,y)+f(x1,y)2f(x,y)]+[f(x,y+1)+f(x,y1)2f(x,y)]=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y)
上式中每一项的系数就是拉普拉斯在二维图像中的卷积核:

再解释下 e − i w t e^{-iwt} eiwt为何拉普拉斯算子 Δ \Delta Δ的特征函数

拉普拉斯算子的特征方程为:
Δ g = λ g ( 3 ) \Delta g=\lambda g \quad\quad\quad (3) Δg=λg(3)

代入函数 e − i w t e^{-iwt} eiwt可得:

Δ e − i w t = ∂ 2 ∂ 2 x i e − i w t = ∂ 2 ∂ 2 t e − i w t = − w 2 e − i w t ( 4 ) \Delta e^{-iwt}=\frac{\partial ^2}{\partial^2 x_i}e^{-iwt}=\frac{\partial ^2}{\partial^2 t}e^{-iwt}=-w^2e^{-iwt} \quad\quad\quad(4) Δeiwt=2xi2eiwt=2t2eiwt=w2eiwt(4)

其中特征值 λ = − w 2 \lambda=-w^2 λ=w2 ,即 w w w 和特征值 λ \lambda λ 密切相关。

由上述证明可得结论:傅立叶变换是时域信号与拉普拉斯算子特征函数的积分。

从整体推特殊,将以上的结论推广到(离散)图中可知:图上的傅立叶变换就是时域信号与图拉普拉斯算子特征函数的求和!

对于傅里叶变换式(1),将特征函数转换为特征向量(特征函数可以认为是无限维的特征向量),将积分转换为求和,那么 N N N个顶点图上的傅立叶变化表达式为:
F ( λ l ) = f ^ ( λ l ) = ∑ i = 1 N f ( i ) ∗ u l ( i ) ( 5 ) \mathcal{F}(\lambda_l)=\widehat f(\lambda_l)=\sum_{i=1}^N f(i)*u_l(i) \quad\quad\quad(5) F(λl)=f (λl)=i=1Nf(i)ul(i)(5)

其中, λ l \lambda_l λl 为图拉普拉斯算子第 l l l 个特征值, u l u_{l} ul 为第 l l l 个特征值对应的特征向量,公式(5)是
λ l \lambda_{l} λl 对应的傅立叶变换,对于图拉普拉斯算子,具有 N N N个特征值,将式 (5) 全部分量展开可得:
( f ^ ( λ 1 ) f ^ ( λ 2 ) ⋮ f ^ ( λ N ) ) = ( u 1 ( 1 ) u 1 ( 2 ) … u 1 ( N ) u 2 ( 1 ) u 2 ( 2 ) … u 2 ( N ) ⋮ ⋮ ⋱ ⋮ u N ( 1 ) u N ( 2 ) … u N ( N ) ) ( f ( 1 ) f ( 2 ) ⋮ f ( N ) ) ( 6 ) \left(\begin{array}{c} \hat{f}\left(\lambda_{1}\right) \\ \hat{f}\left(\lambda_{2}\right) \\ \vdots \\ \hat{f}\left(\lambda_{N}\right) \end{array}\right)=\left(\begin{array}{cccc} u_{1}(1) & u_{1}(2) & \dots & u_{1}(N) \\ u_{2}(1) & u_{2}(2) & \dots & u_{2}(N) \\ \vdots & \vdots & \ddots & \vdots \\ u_{N}(1) & u_{N}(2) & \dots & u_{N}(N) \end{array}\right)\left(\begin{array}{c} f(1) \\ f(2) \\ \vdots \\ f(N) \end{array}\right) \quad\quad\quad(6) f^(λ1)f^(λ2)f^(λN)=u1(1)u2(1)uN(1)u1(2)u2(2)uN(2)u1(N)u2(N)uN(N)f(1)f(2)f(N)(6)

将公式(6)写成矩阵形式即为:
f ^ = U T f ( 7 ) \widehat f=U^{T}f \quad\quad\quad (7) f =UTf(7)
此处 U U U为拉普拉斯谱分解的正交矩阵。

最后再来看看图中拉普拉斯算子的定义:
L = D − W ( 8 ) L=D-W \quad\quad\quad (8) L=DW(8)
其中 W W W是邻接矩阵, D D D是度矩阵, D i , i D_{i,i} Di,i等于 W W W矩阵的第 i i i行的和,非对角线上元素为0, D D D是个对角矩阵,这个图谱理论关于图拉普拉斯算子的的定义。详细推到过程参考:图拉普拉斯算子为何定义为D-W

拉普拉斯矩阵是实对称矩阵,实对称矩阵一定可以用正交矩阵进行正交相似对角化(特征分解):

L = U ( λ 1 ⋱ λ N ) U − 1 = U ( λ 1 ⋱ λ N ) U T ( 9 ) L=U\left(\begin{array}{ccc} \lambda_{1} & & \\ & \ddots & \\ & & \lambda_{N} \end{array}\right) U^{-1} =U\left(\begin{array}{ccc} \lambda_{1} & & \\ & \ddots & \\ & & \lambda_{N} \end{array}\right) U^{T} \quad\quad\quad (9) L=Uλ1λNU1=Uλ1λNUT(9)

U U U 为特征向量构成的正交矩阵,而正交矩阵的逆等于正交矩阵的转置: U − 1 = U T U^{-1}=U^T U1=UT

假定 λ 1 , ⋯   , λ n \lambda_{1},\cdots,\lambda_{n} λ1,,λn 从小到大排序,其对应的特征向量为 u 1 , ⋯   , u n u_1,\cdots, u_n u1,,un,特征值越小,对应的特征向量越平稳,这和傅立叶变换中频率的定义是类似的。下图是对 random sensor network 做特征值分解后的特征向量分布展示,可以看到特征值越小,对应的特征向量越平滑。

图上傅里叶逆变换

有了傅立叶变换,如何将频率函数变换为时域函数呢?这是傅立叶逆变换需要干的事情,公式如下:

F − 1 [ F ( w ) ] = 1 2 π ∫ F ( w ) e − i w t d w ( 10 ) \mathcal{F}^{-1}[\mathcal{F}(w)]=\frac{1}{2\pi}\int \mathcal{F}(w)e^{-iwt}dw \quad\quad\quad(10) F1[F(w)]=2π1F(w)eiwtdw(10)

公式(10)和公式(1)类似,差一个常数系数。公式(1)积分之后是一个关于 w w w 的函数,公式(10) 对 w w w 积分后是关于 t t t 的函数,从频域变换到了时域,图上傅立叶变换类似为:
( f ( λ 1 ) f ( λ 2 ) ⋯ f ( λ N ) ) = ( u 1 ( 1 ) u 1 ( 2 ) … u 1 ( N ) u 1 ( 1 ) u 1 ( 2 ) … u 1 ( N ) ⋯ … … u 1 ( 1 ) u 1 ( 2 ) … u 1 ( N ) ) ( f ^ ( λ 1 ) f ^ ( λ 2 ) … f ^ ( λ N ) ) ( 11 ) \left(\begin{array}{c} f\left(\lambda_{1}\right) \\ f\left(\lambda_{2}\right) \\ \cdots \\ f\left(\lambda_{N}\right) \end{array}\right)=\left(\begin{array}{cccc} u_{1}(1) & u_{1}(2) & \dots & u_{1}(N) \\ u_{1}(1) & u_{1}(2) & \dots & u_{1}(N) \\ \cdots & \dots & & \dots \\ u_{1}(1) & u_{1}(2) & \dots & u_{1}(N) \end{array}\right)\left(\begin{array}{c} \hat{f}\left(\lambda_{1}\right) \\ \hat{f}\left(\lambda_{2}\right) \\ \dots \\ \hat{f}\left(\lambda_{N}\right) \end{array}\right) \quad\quad\quad (11) f(λ1)f(λ2)f(λN)=u1(1)u1(1)u1(1)u1(2)u1(2)u1(2)u1(N)u1(N)u1(N)f^(λ1)f^(λ2)f^(λN)(11)

写成矩阵形式:
f = U U − 1 f = U U T f = U f ^ ( 12 ) f=\mathbf{U} \mathbf{U}^{-1} f=\mathbf{U} \mathbf{U}^{T} f=\mathbf{U} \hat{f}\quad\quad\quad (12) f=UU1f=UUTf=Uf^(12)

上述内容详述了如何在图中进行傅里叶变换和逆变换,下面就是主角图卷积网络GCN上场了!

下篇更新的文章将讲述三代图卷积网络的前世今生!

关注作者

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值