【图论】Graph Fourier Transform

Orignal Ariticle: link

本期,根据维基百科、知乎整理出图上的傅里叶变换。

Graph Fourier Transform

In mathematics, graph Fourier transform is a mathematical transform which eigendecomposes the Laplacian matrix of a graph into eigenvalues and eigenvectors. Analogously to classical Fourier Transform, the eigenvalues represent frequencies and eigenvectors form what is known as a graph Fourier basis.

Graph Fourier Transform (GFT) is defined as:
G F [ f ] ( λ l ) = f ^ ( λ l ) = < f , u l > = ∑ i = 1 N f ( i ) u l T ( i ) . \mathcal{GF}[f](\lambda_l) = \hat{f} (\lambda_l) = <\pmb{f}, \pmb{u}_l> = \sum_{i = 1}^{N} f(i) u_l^T(i). GF[f](λl)=f^(λl)=<fff,uuul>=i=1Nf(i)ulT(i).
where

  • G = ( V , E ) G = (V, E) G=(V,E): undirected weighted graph
  • V V V: the set of nodes with ∣ V ∣ = N |V| = N V=N
  • E E E: the set of edges
  • f : V → R f: V \rightarrow \mathbb{R} f:VR: a graph signal that is a function defined on the vertices of the graph G G G, which maps every vertex { v i } i = 1 , ⋯   , N \{v_i\}_{i = 1, \cdots, N} { vi}i=1,,N to a real number f ( i ) f(i) f(i). Any graph signal can be projected on the eigenvectors ( 0 = λ 1 ≤ λ 2 ≤ ⋯ ≤ λ N ) (0 = \lambda_1 \leq \lambda_2 \leq \cdots \leq \lambda_{N}) (0=λ1λ2λN) of the Laplacian matrix L {\bf L} L
  • λ l \lambda_l λl: the l l lth eigenvalue of the Laplacian matrix L {\bf L} L
  • u l \pmb{u}_l uuul: the l l lth eigenvector of the Laplacian matrix L {\bf L} L

It can also be represented as
[ f ^ ( λ 1 ) f ^ ( ( λ 2 ) ⋮ f ^ ( ( λ N ) ] = [ u 1 ( 1 ) u 2 ( 1 ) ⋯ u N ( 1 ) u 1 ( 2 ) u 2 ( 2 ) ⋯ u N ( 2 ) ⋮ ⋮ ⋱ ⋮ u 1 ( N ) u 2 ( N ) ⋯ u N ( N ) ] T [ f ( 1 ) f ( 2 ) ⋮ f ( N ) ] , \begin{aligned}\begin{bmatrix}\hat{f}(\lambda_1)\\\hat{f}((\lambda_2)\\\vdots\\\hat{f}((\lambda_N)\end{bmatrix}=\begin{bmatrix}u_1(1) & u_2(1) & \cdots & u_{N}(1)\\u_1(2) & u_2(2) & \cdots & u_{N}(2)\\\vdots & \vdots & \ddots & \vdots\\u_1(N) & u_2(N) & \cdots & u_{N}(N)\\\end{bmatrix}^T\begin{bmatrix}f(1)\\f(2)\\\vdots\\f(N)\end{bmatrix}\end{aligned}, f^(λ1)f^((λ2)f^((λN)=u1(1)u1(2)u1(N)u2(1)u2(2)u2(N)uN(1)uN(2)uN(N)Tf(1)f(2)f(N),
which is equal to
f ^ = U T f . \pmb{\hat{f}} = {\bf U}^T \pmb{f} . f^f^f^=UTfff.
Since Laplacian matrix L {\bf L} L is a real symmetric matrix, its eigenvectors u 1 , u 2 , ⋯   , u N \pmb{u}_1, \pmb{u}_2, \cdots, \pmb{u}_{N} uuu1,uuu2,,uuuN form an orthogonal basis. Hence an inverse graph Fourier transform (IGFT) exists, and it is written as

I G F [ f ^ ] ( i ) = f ( i ) = < f ^ , u l > = ∑ i = 1 n f ^ ( λ l ) u l ( i ) . \mathcal{IGF}[\hat{f}](i)= f (i) = <\pmb{\hat{f}}, \pmb{u}_l> =\sum_{i = 1}^{n} \hat{f}(\lambda_l) u_l(i). IGF[f^](i)=f(i)=<f^f^f^,uuul>=i=1nf^(λl)ul(i).

It can be also represented as

[ f ( 1 ) f ( 2 ) ⋮ f ( N ) ] = [ u 1 ( 1 ) u 2 ( 1 ) ⋯ u N ( 1 ) u 1 ( 2 ) u 2 ( 2 ) ⋯ u N ( 2 ) ⋮ ⋮ ⋱ ⋮ u 1 ( N ) u 2 ( N ) ⋯ u N ( N ) ] [ f ^ ( λ 1 ) f ^ ( ( λ 2 ) ⋮ f ^ ( ( λ N ) ] , \begin{aligned}\begin{bmatrix}f(1)\\f(2)\\ \vdots\\ f(N) \end{bmatrix}= \begin{bmatrix} u_1(1) & u_2(1) & \cdots & u_{N}(1)\\ u_1(2) & u_2(2) & \cdots & u_{N}(2)\\ \vdots & \vdots & \ddots & \vdots\\ u_1(N) & u_2(N) & \cdots & u_{N}(N)\\ \end{bmatrix} \begin{bmatrix} \hat{f}(\lambda_1)\\ \hat{f}((\lambda_2)\\ \vdots\\ \hat{f}((\lambda_N) \end{bmatrix} \end{aligned}, f(1)f(2)f(N)=u1(1)u1(2)u1(N)u2(1)u2(2)u2(N)uN(1)uN(2)uN(N)f^(λ1)f^((λ2)f^((λN),

which is equal to
f = U f ^ . \pmb{f} = {\bf U} \pmb{\hat{f}}. fff=Uf^f^f^.

Orthogonal basis for the Fourier transform

The eigenvectors of Laplacian matrix are a set of linearly independent orthogonal bases, thus any graph signal can be expressed as a linear combination of the eigenvectors of Laplacian matrix
f = f ^ 1 u 1 + f ^ 2 u 2 + ⋯ + f ^ N u N . \pmb{f} = \pmb{\hat{f}}_1 \pmb{u}_1+\pmb{\hat{f}}_2 \pmb{u}_2+\cdots+\pmb{\hat{f}}_N \pmb{u}_N. fff=f^f^f^1uuu1+f^f^f^2uuu2++f^f^f^NuuuN.

Convolution Operation on Graph

Generalized convolution in the vertex domain is multiplication in the graph spectral domain:
f ∗ h = IGFT ( f ^ h ^ ) \pmb{f} * \pmb{h} = \text{IGFT} (\pmb{\hat{f}} \pmb{\hat{h}}) fffhhh=IGFT(f^f^f^h^h^h^)
which can be also expressed as
f ∗ h ( i ) = ∑ l = 1 N f ^ ( λ l ) h ^ ( λ l ) u l ( i ) . \pmb{f} * \pmb{h}(i) = \sum_{l = 1}^{N} \hat{f}(\lambda_l)\hat{h}(\lambda_l) u_l(i). fffhhh(i)=l=1Nf^(λl)h^(λl)ul(i).

  • h \pmb{h} hhh: convolution kernel

Steps of Convolution Operation on Graph:

  1. f ^ = U T f \pmb{\hat{f}} = {\bf U}^T \pmb{f} f^f^f^=UTfff
  2. h ^ = U T h \pmb{\hat{h}} = {\bf U}^T \pmb{h} h^h^h^=UThhh
  3. h ^ f ^ = U T h ⊙ U T f = f ^ h ^ \pmb{\hat{h}} \pmb{\hat{f}} = {\bf U}^T \pmb{h} \odot {\bf U}^T \pmb{f} = \pmb{\hat{f}} \pmb{\hat{h}} h^h^h^f^f^f^=UThhhUTfff=f^f^f^h^h^h^, i,e,

f ∗ h = U f ^ h ^ = U [ h ^ ( λ 1 ) ⋱ h ^ ( λ N ) ] U T f \begin{aligned}\pmb{f} * \pmb{h} &= {\bf U} \pmb{\hat{f}} \pmb{\hat{h}}\\&={\bf U}\begin{bmatrix}\hat{h}(\lambda_1) & & \\ & \ddots & \\ & & \hat{h}(\lambda_N)\end{bmatrix}{\bf U}^T\pmb{f}\end{aligned} fffhhh=Uf^f^f^h^h^h^=Uh^(λ1)h^(λN)UTfff

你可能感兴趣的:(图论,GNN,线性代数,图论)