图傅里叶变换

图傅里叶变换简介

图的基本表示

图的基本表示

图是由节点(也称为顶点)和边组成的数据结构,用于表示实体及其之间的关系。

节点和边
  1. 节点(Vertices):图中的节点代表了系统中的各个实体。例如,在社交网络图中,每个节点可以表示一个用户。

  2. 边(Edges):图中的边表示节点之间的关系或连接。边可以是无向的,表示关系是双向的或无方向性的;也可以是有向的,表示关系是单向的。在社交网络图中,边可以表示用户之间的友谊关系。

图的类型
  1. 无向图:图中的每条边都没有方向,表示节点间关系是双向或无方向的。

  2. 有向图:图中的边具有方向,表示从一个节点指向另一个节点的关系。

  3. 加权图:图中的边被赋予权重,表示边的重要性或节点间连接的强度。

  4. 多图:在一个图中,两个节点之间可以有多条边,这样的图称为多图。

图的表示方法
  1. 邻接矩阵(Adjacency Matrix)

    • 邻接矩阵是一个 N × N N × N N×N的矩阵, 一般用 A A A 表示,其中 $N $ 是图中节点的数量。
    • 对于无向图,矩阵是对称的。矩阵中的元素 A i j A_{ij} Aij表示节点 i i i和节点 j j j之间是否有边。对于非加权图, A i j = 1 A_{ij} = 1 Aij=1表示节点之间有连接,而 A i j = 0 A_{ij} = 0 Aij=0 则表示没有。
    • 对于加权图, A i j A_{ij} Aij可以表示权重,对于不存在的边,可以用 0 0 0或者正无穷(表示无连接)。
  2. 度矩阵(Degree )

    • 度矩阵是一个 N × N N × N N×N 的对角矩阵。
    • 对角线上的元素 D i j D_{ij} Dij表示节点 i i i 的度,即与节点 i i i 相连的边的数量。对于加权图,度是节点所有连接的权重之和。
  3. 邻接列表(Adjacency List)

  • 邻接列表只用边表示图
  • 邻接列表存的是一个二元组,(source, target),其中source表示边的起始结点,target表示边的终止结点
  • 例如 [ [ 1 , 3 ] , [ 1 , 2 ] ] [[1, 3],[1, 2]] [[1,3][1,2]] 表示该图有两条边,一条边是从结点1出发到结点3,另一条边从结点1出发到结点2。

图信号与拉普拉斯矩阵

图信号

给定图 G = ( V , E ) G= (V,E) G=(VE) V V V表示图中的节点集合,假设其长度为 N N N(有N个结点),图信号是一种描述 V → R V → R VR的映射,表示成向量的形式: X = [ x 1 , x 2 , ⋯   , x N ] T \mathbf{X}=[x_1, x_2, \cdots, x_N ]^T X=[x1,x2,,xN]T,其中 x i x_i xi, 表示的是节点 v i v_i vi上的信号强度,如图所示,其中竖线长度表示节点上信号值的大小:

在这里插入图片描述

拉普拉斯矩阵

定义

拉普拉斯矩阵(Laplacian Matrix)是研究图的结构性质的一个非常核心的研究对象, 拉普拉斯矩阵的定义如下: L = D – A L=D–A L=DA,其中 D D D是度矩阵, A A A是邻接矩阵。

在元素级别的拉普拉斯矩阵定义是
L i j = {   deg ⁡ ( v i )   if   i = j − 1   if   e i j ∈ E 0   otherwise v L_{ij}=\begin{cases}\:\deg(v_i)&\:\text{if}\:i=j\\[2ex]-1&\:\text{if}\:e_{ij}\in E\\[2ex]0&\:\text{otherwise}\end{cases}v Lij= deg(vi)10ifi=jifeijEotherwisev

正则化形式

拉普拉斯矩阵还有一种正则化的形式(symmetric normalized laplacian), L s y m = D − 1 2 D − 1 2 L_{sym}=D^{-\frac{1}{2}} D^{-\frac{1}{2}} Lsym=D21D21
, 在元素级别上定义为
L s y m = [ i , j ] = { 1 if i = j − 1 deg ⁡ ( ν i ) deg ⁡ ( ν j ) if   e i j ∈ E 0 otherwise L_\mathrm{sym}=[i, j]=\begin{cases}1&\text{if}i=j\\\\\frac{-1}{\sqrt{\deg(\nu_i)\deg(\nu_j)}}&\text{if}\:e_{ij}\in E\\\\0&\text{otherwise}\end{cases} Lsym=[i,j]= 1deg(νi)deg(νj) 10ifi=jifeijEotherwise

来源与含义

拉普拉斯矩阵的定义来源于拉普拉斯算子,拉普拉斯算子是n维欧式空间中的一个二 阶微分算子 Δ f = ∑ i n ∂ f ∂ x i Δ f =\sum_{i}^n \frac{∂ f}{∂ x_i} Δf=inxif,如果把n维欧式空间退化成离散的二维图像空间,就能得到常见的边缘检测算子:
Δ f ( x , y ) = ∂ 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{aligned}\Delta f(x, y)&=\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)]-4f(x, y)\end{aligned} Δf(x,y)=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)
在处理图像时,拉普拉斯算子就被表示成
0 1 0 1 − 4 1 0 1 0 \boxed{\begin{array}{ccc}0&1&0\\\\1&-4&1\\\\0&1&0\\\end{array}} 010141010
从矩阵中直观地看到,拉普拉斯算子描述了中心像素与局部上、下、左、右 四邻居像素的差异,这种性质通常被用来当作图像上的边缘检测算子。

同理,在图信号中,拉普拉斯算子也被用来描述中心节点与邻居节点之间的信号的差异。对于一个图信号 x x x,如果用拉普拉斯矩阵右乘该信号,将矩阵乘法展开:
L x = ( D − A ) x = [ ⋯   , ∑ v j ∈ N ( v i ) ( x i − x j ) , ⋯ ] , L\mathbf{x}=(D-A)\mathbf{x}=\Bigg[\cdots, \sum_{v_j\in N(v_i)}(x_i-x_j), \cdots\Bigg], Lx=(DA)x=[,vjN(vi)(xixj),]

对于每一个结点 v i v_i vi,设与该结点的度为 d i d_i di,则说明有 d i d_i di个其他结点(设为 v j v_j vj v j v_j vj是所有与 v i v_i vi相邻的结点)与该结点相连。那么在减去邻接矩阵 A A A时展开就会减去所有 v j v_j vj的图信号 x j x_j xj,而度矩阵 D D D又会把该结点的图信号扩大 d i d_i di倍,把 d i d_i di倍的图信号分给每一个 v j v_j vj的图信号,每一个就是 x i − x j x_i-x_j xixj,最后对所有的 v j v_j vj求和即可得到

图傅里叶变换

从信号学引入傅里叶变换

傅里叶变换是数字信号处理的基石,傅里叶变换将信号从时域空间转换到频域空间, 而频域视角给信号的处理带来了极大的便利。围绕傅里叶变换,信号的滤波、卷积等操 都有了完备的理论定义,这为一些实际的工程应用,如信号的去噪、压缩、重构等任务提 供了理论指导。 类比傅里叶变换,我们给出图信号傅里叶变换的定义,即将图信号由空域(spatial domain)视角转化到频域(frequency domain)视角,便于图信号处理理论体系的建立。

图傅里叶变换过程

对拉普拉斯矩阵进行正交对角化

假设图G的拉普拉斯矩阵为 L ∈ R N × N L∈R^{N×N} LRN×N,由于 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^\mathrm{T}=\left[\begin{array}{ccccc}\vdots&\vdots&\cdots&\vdots\\\mathbf{v}_1&\mathbf{v}_2&\cdots&\mathbf{v}_N\\\vdots&\vdots&\cdots&\vdots\end{array}\right]\begin{bmatrix}\lambda_1\\&\lambda_2\\&&\ddots\\&&&\lambda_N\end{bmatrix}\begin{bmatrix}\cdots&\mathbf{v}_1&\cdots\\\cdots&\mathbf{v}_2&\cdots\\\cdots&\vdots&\cdots\\\cdots&\mathbf{v}_N&\cdots\end{bmatrix} L=VΛVT= v1v2vN λ1λ2λN v1v2vN
其中 V ∈ R N × N V∈R^{N× N} VRN×N V = [ v 1 ,   v 2 ,   . . . ,   v N ] \mathrm{V=[v_1, ~v_2, ~..., ~v_N]} V=[v1, v2, ..., vN]表示L的N个特征向量。 λ k \lambda_k λk表示特征值,对于这些特征值进行升序排列, λ 1 ≤ λ 2 . . . ≤ λ N λ_1≤λ_2...≤λ_N λ1λ2...λN

进行傅里叶变换变换

对于图信号x,对该信号进行傅里叶变换为:
x ~ k = ∑ i = 1 N V k i T x i = ⟨ v k , x ⟩ , \tilde{x}_k=\sum_{i=1}^NV_{ki}^\mathrm{T}x_i=\left\langle\mathbf{v}_k, \mathbf{x}\right\rangle , x~k=i=1NVkiTxi=vk,x
其中特征向量 v k v_k vk被称为傅里叶基, x ~ k \tilde{x}_k x~k是第k个傅里叶基的系数。

从空间变换的角度来看,傅里叶变换把图信号从空间域转换到了频域,频域的基向量就是特征向量,而傅里叶系数是图信号在傅里叶基上的投影,衡量了图信号与傅里叶基之间的相似度。

图傅里叶变换

如果用矩阵来表示,则傅里叶变化为
x ~ k = V T x , \tilde{\boldsymbol{x}}_k=V^\mathrm{T}\boldsymbol{x}, x~k=VTx

逆变换

当在频域上处理完图之后,可能需要从频域重新变换到空间域,因此需要逆傅里叶变换,由于 V x ~ = V V T x = I x = x , V\tilde{x}=VV^\mathrm{T}x=Ix=x, Vx~=VVTx=Ix=x
因此对如果频域的傅里叶信号左乘 V V V,则就把信号从频域转换会空间域。

频域上的图信号

我们对图进行了傅里叶变换,而图的频率表示什么呢?

总变差

总变差(Total Variation,简称TV)是一个衡量函数或信号变化程度的量,广泛用于信号处理和图像处理领域。
图信号的总变差被定义为
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(\boldsymbol{x})=\boldsymbol{x}^{\mathrm{T}}L\boldsymbol{x}=\sum_{v_i}\sum_{v_j\in N(v_i)}x_i\big(x_i-x_j\big)=\sum_{e_{ij}\in E}\big(x_i-x_j\big)^2 , TV(x)=xTLx=vivjN(vi)xi(xixj)=eijE(xixj)2
由此定义可以看出,总变差是一个标量,它将各条边上信号的差值进行加和,刻画了图信号整体的平滑度。

图信号

如果对总变差中的图信号x进行傅里叶变换, T V ( x ) = x T L x = x T V Λ   V T x = ( V x ~ ) T V Λ   V T ( V x ~ ) = x ~ T V T V Λ   V T V x ~ = x ~ T Λ x ~ = ∑ k N λ k x ~ k 2 \begin{aligned}\mathrm{TV}(\boldsymbol{x})&=\boldsymbol{x}^\mathrm{T}L\boldsymbol{x}=\boldsymbol{x}^\mathrm{T}V\Lambda\: V^\mathrm{T}\boldsymbol{x}\\&=(V\boldsymbol{\tilde{\boldsymbol{x}}})^\mathrm{T}V\Lambda\: V^\mathrm{T}(V\boldsymbol{\tilde{\boldsymbol{x}}})\\&=\boldsymbol{\tilde{\boldsymbol{x}}}^\mathrm{T}V^\mathrm{T}V\Lambda\: V^\mathrm{T}V\boldsymbol{\tilde{\boldsymbol{x}}}\\&=\boldsymbol{\tilde{\boldsymbol{x}}}^\mathrm{T}\Lambda\boldsymbol{\tilde{\boldsymbol{x}}}\\&=\sum_k^N\lambda_k\tilde{\boldsymbol{x}}_k^2\end{aligned} TV(x)=xTLx=xTVΛVTx=(Vx~)TVΛVT(Vx~)=x~TVTVΛVTVx~=x~TΛx~=kNλkx~k2
因此图信号的总变差与图的特征值是线性关系,总变差是图的所有特征值的一个线性组合,权重是图信号相对应的傅里叶系数的平方。
结合总变差代表着图信号整体平滑度的实际意义,我们可以发现,特征值依次排列在一起,对图信号的平滑度作出一种梯度刻画,因此可以将特征值等价成频率。特征值越低,频率越低,对应的傅里叶基就变化得越缓慢,相近节点上的信号值趋于一致;特征值 越高,频率越高,对应的傅里叶基就变化得越剧烈,相近节点上的信号值则非常不一致
度的实际意义,我们可以发现,特征值依次排列在一起,对图信号的平滑度作出一种梯度刻画,因此可以将特征值等价成频率。特征值越低,频率越低,对应的傅里叶基就变化得越缓慢,相近节点上的信号值趋于一致;特征值 越高,频率越高,对应的傅里叶基就变化得越剧烈,相近节点上的信号值则非常不一致

参考文献:
深入浅出图神经网络:GCN原理解析
图傅里叶变换-知乎

  • 27
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值