图、拉普拉斯矩阵与傅里叶变换

傅里叶变换(Fourier Transform)

空间、基,内积与投影

此处各种概念来自《Linear Algebra Done Right》

R 3 R^3 R3中的一组基:

e 1 = [ 1 , 0 , 0 ] T , e 2 = [ 0 , 1 , 0 ] T , e 3 = [ 0 , 0 , 1 ] T e_1 = [1, 0, 0]^T, e_2 = [0, 1, 0]^T, e_3 = [0, 0, 1]^T e1=[1,0,0]T,e2=[0,1,0]T,e3=[0,0,1]T

对任意一个向量,比如 [ 2 , 3 , 4 ] T [2, 3, 4]^T [2,3,4]T,我们可以写成:

2 e 1 + 3 e 2 + 4 e 3 2e_1 + 3e_2 + 4e_3 2e1+3e2+4e3

两个向量 v 1 = [ x 1 , y 1 , z 1 ] T , v 2 = [ x 2 , y 2 , z 2 ] T v_1 = [x_1, y_1, z_1]^T, v_2 = [x_2, y_2, z_2]^T v1=[x1,y1,z1]T,v2=[x2,y2,z2]T的内积定义为:

< v 1 , v 2 > = x 1 ∗ x 2 + y 1 ∗ y 2 + z 1 ∗ z 2 = x_1 * x_2 + y_1 * y_2 + z_1 * z_2 <v1,v2>=x1x2+y1y2+z1z2

为什么内积需要这么定义?具有什么物理意义?实际上出发点很有可能是为了“投影”服务,现在假设需要寻找 v 1 v_1 v1 v 2 v_2 v2上的投影,很自然的,首先需要在 v 2 v_2 v2上找到一个点,其与 v 1 v_1 v1终点的距离比 v 2 v_2 v2上其他所有点与 v 1 v_1 v1终点的距离都要短,该过程导出一个结论, v 1 v_1 v1 v 2 v_2 v2上的投影为:

< v 1 , v 2 > ⋅ v 2 \cdot v_2 <v1,v2>v2

回顾 R 3 R^3 R3中的基 e 1 , e 2 , e 3 e_1, e_2, e_3 e1,e2,e3,任意向量可以表示成在不同基上的投影叠加

v = < v , e 1 > ⋅ e 1 + < v , e 2 > ⋅ e 2 + < v , e 3 > ⋅ e 3 v = \cdot e_1 + \cdot e_2 + \cdot e_3 v=<v,e1>e1+<v,e2>e2+<v,e3>e3

函数空间及其内积

对于 R R R上的函数 f : R → R f: R \rightarrow R f:RR,我们把函数看作空间内的一个元素,函数之间定义距离,则函数也可以张成一个空间,比如函数:

f ( t ) = t + 2 t 3 − 13 t 5 f(t) = t + 2t^3 - 13t^5 f(t)=t+2t313t5

我们可以理解为这是函数空间中的一个点,该函数空间的一组基为:

e 1 = t 0 , e 2 = t , e 3 = t 2 , e 4 = t 3 , e 5 = t 4 , e 6 = t 5 e_1 = t^0, e_2 = t, e_3 = t^2, e_4 = t^3, e_5 = t^4, e_6 = t^5 e1=t0,e2=t,e3=t2,e4=t3,e5=t4,e6=t5

那么 f ( t ) f(t) f(t)也可以写成 [ 0 , 1 , 0 , 2 , 0 , − 13 ] T [0, 1, 0, 2, 0, -13]^T [0,1,0,2,0,13]T,这里我们应该可以联想到,函数张成的空间,应该也存在投影运算,那么首先,实函数上的内积是这么定义的:

< f 1 , f 2 > = ∫ f 1 ( t ) ⋅ f 2 ( t ) d t = \int f_1(t) \cdot f_2(t) dt <f1,f2>=f1(t)f2(t)dt

很自然的 f 1 f_1 f1 f 2 f_2 f2上的投影为 < f 1 , f 2 > ⋅ f 2 \cdot f_2 <f1,f2>f2

傅里叶变换

直观上理解,线性无关的向量组都可以作为基(更进一步是正交),函数空间的基可以有无限多组,使用 e i = t i − 1 e_i = t^{i - 1} ei=ti1并无太多实际意义,更为著名的一组基是 e ( j ) = e j ω t e_{(j)} = e^{j\omega t} e(j)=ejωt,其中 j j j是复数单位, ω \omega ω是基的编号(或参数),类似 e i = t i − 1 e_i = t^{i - 1} ei=ti1中的 i i i,那么对于某函数 f f f,在基上的投影为:

< f , e ( j ) > ⋅ e ( j ) = ( ∫ f ( t ) e ˉ ( j ) d t ) ⋅ e j ω t = ( ∫ f ( t ) e − j ω t d t ) ⋅ e j ω t \cdot e_{(j)} = \big( \int f(t) \bar{e}_{(j)} dt \big) \cdot e^{j\omega t} = \big( \int f(t) e^{-j\omega t} dt \big) \cdot e^{j\omega t} <f,e(j)>e(j)=(f(t)eˉ(j)dt)ejωt=(f(t)ejωtdt)ejωt

我们把这个过程称为傅里叶变换 e − j ω t e^{-j\omega t} ejωt e j ω t e^{j\omega t} ejωt的共轭,来自于复函数上对内积、范数等的定义),把 ∫ f ( t ) e − j ω t d t \int f(t) e^{-j\omega t} dt f(t)ejωtdt记为 F ( ω ) F(\omega) F(ω),看上去就是把 f f f变换为另一个函数一样,实际上是把 f f f投影到各个不同的 F ( ω ) F(\omega) F(ω)上,把对应的投影强度计算出来。这个过程是可逆的,即是把 f f f投影到各个基上后,还可以根据在各个基上的强度,把 f f f还原回来:

f ( t ) = ∫ F ( w ) ⋅ e j ω t d ω f(t) = \int F(w) \cdot e^{j\omega t} d\omega f(t)=F(w)ejωtdω

也即上述的投影叠加。

物理意义

参考《信号与系统》,8.1与8.2节

以上是傅里叶变换的代数部分,现在的问题是,为什么我们需要取 e j ω t e^{j\omega t} ejωt作为基,这里并没有一个绝对正确的答案,只能说由于物理和工程的发展,我们习惯了使用正弦/余弦函数描述信号,比如音频,我们把音频信号分解为正弦/余弦函数(AM、FM);比如图像,我们把图像也分解为正弦/余弦函数(JPEG压缩)……

当我们使用正弦/余弦函数描述信号时,除了频率信息,还需要引入相位信息,这也是为什么我们需要使用复函数 e j ω t e^{j\omega t} ejωt描述。

图上的傅里叶变换

图的相关定义

图的形式化表示如下,首先,图是由顶点与边构成的集合,符号 x ∼ y x \sim y xy表示顶点 x x x与顶点 y y y之间存在边:

G = G ( V , E ) G = G(V, E) G=G(V,E)

V = { x i } i = 1 N , ∣ V ∣ = N < ∞ V = \{ x_i \}_{i = 1}^N, |V| = N < \infty V={xi}i=1N,V=N<

E = { ( x , y ) : x , y ∈ V & x ∼ y } E = \{ (x, y): x, y \in V \And x \sim y \} E={(x,y):x,yV&xy}

其次,图上的函数定义如下:

f : V → C f: V \rightarrow \mathbb{C} f:VC

由于 ∣ V ∣ = N < ∞ |V| = N < \infty V=N< f f f可以看作一个 C N \mathbb{C}^N CN上的向量(与实函数一样)。

最后,我们一般用矩阵描述图的性质。

图上的傅里叶变换

《Expedition in Data and Harmonic Analysis on Graphs》
《Fourier Analysis on Graph》
《Graph Signal Processing: An Introductory Overview》

单纯从数学角度出发,既然已经有了函数的定义,则一定可以用某种方法把函数分解成多个函数的线性组合,唯独缺的就是一组基。

回顾傅里叶变换,有几个要素:基、正交、投影、还原,从通信的物理意义角度,我们从正弦/余弦函数导出了基于 e j ω t e^{j\omega t} ejωt的傅里叶变换,那么从图的物理意义角度,我们自然需要从拉普拉斯矩阵导出图上的函数的基。

图的拉普拉斯矩阵定义如下:

L = D − A D = d i a g ( d x ) A ( i , j ) = { 1 , i f    x i ∼ x j 0 , o t h e r w i s e L = D - A \\ D = diag(d_x) \\ A(i, j) = \begin{cases} 1, \quad if \; x_i \sim x_j \\ 0, \quad otherwise \\ \end{cases} L=DAD=diag(dx)A(i,j)={1,ifxixj0,otherwise

暂时不考虑拉普拉斯矩阵的物理意义,其特征值为:

λ 0 ≤ λ 1 ≤ ⋯ ≤ λ N − 1 \lambda_0 \le \lambda_1 \le \cdots \le \lambda_{N - 1} λ0λ1λN1

对应的特征向量为:

ψ 0 , ψ 1 , ⋯   , ψ N − 1 \psi_0, \psi_1, \cdots , \psi_{N - 1} ψ0,ψ1,,ψN1

由于特征向量是正交的,我们可以使用特征向量作为函数分解的一组基,函数 f f f在其中一个基 ψ k \psi_k ψk上的投影为(即是向量内积):

f ^ ( λ k ) = < f , ψ k > = ∑ n = 1 N f ( n ) ψ k ∗ ( n ) f ^ = ϕ ∗ f \hat{f}(\lambda_k) = = \sum_{n = 1}^N f(n) \psi_k^*(n) \\ \hat{f} = \phi^{*} f f^(λk)=<f,ψk>=n=1Nf(n)ψk(n)f^=ϕf

那么 f f f可按特征向量(函数)进行分解还原:

f = ∑ k = 0 N − 1 f ^ ( λ k ) ψ k f = ϕ f ^ f = \sum_{k = 0}^{N - 1} \hat{f}(\lambda_k) \psi_k \\ f = \phi \hat{f} f=k=0N1f^(λk)ψkf=ϕf^

其中 ϕ \phi ϕ是特征向量(列向量)排列成的矩阵, ϕ ∗ \phi^{*} ϕ ϕ \phi ϕ的共轭转置。

f , g ∈ L 2 ( R ) f,g \in L^2(\mathbb{R}) f,gL2(R)上,卷积的定义为:

( f ∗ g ) ( t ) = ∫ R f ( u ) g ( t − u ) d u (f * g)(t) = \int_{\mathbb{R}} f(u) g(t - u) du (fg)(t)=Rf(u)g(tu)du

但该定义很难推广到 G G G上,因此使用了卷积定理

( f ∗ g ^ ) ( ξ ) = f ^ ( ξ ) g ^ ( ξ ) (\widehat{f * g})(\xi) = \hat{f}(\xi) \hat{g}(\xi) (fg )(ξ)=f^(ξ)g^(ξ)

经过逆变换得到 G G G上卷积的定义:

( f ∗ g ) ( n ) = ∑ i = 0 N − 1 f ^ ( λ i ) g ^ ( λ i ) ψ i ( n ) (f * g)(n) = \sum_{i = 0}^{N - 1} \hat{f}(\lambda_i) \hat{g}(\lambda_i) \psi_i(n) (fg)(n)=i=0N1f^(λi)g^(λi)ψi(n)

至此,参考图像的卷积方法,我们已经可以把图卷积应用在神经网络了,如一个标准的图卷积层:

《Graph Convolutional Networks for Text Classification》
《Semi-Supervised Classification with Graph Convolutional Networks》
《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

L ( j + 1 ) = ρ ( A ~ L ( j ) W j ) A ~ = D − 1 2 A D − 1 2 L^{(j + 1)} = \rho \big( \tilde{A} L^{(j)} W_j \big) \\ \tilde{A} = D^{-\frac{1}{2}} A D^{-\frac{1}{2}} L(j+1)=ρ(A~L(j)Wj)A~=D21AD21

在这里, L ( j ) L^{(j)} L(j)相当于 f f f W j W_j Wj相当于 g g g……

物理意义

剩下的问题是,为什么要使用Laplacian的特征向量作为函数分解的基。在图上允许定义不同的映射,考虑怎样的映射才算是最好的,我们把这个过程称为“嵌入”(embedding),在一维的情况下,即 f : V → R f: V \rightarrow \mathbb{R} f:VR,我们用“平滑度”(smoothness)衡量一个嵌入的好与坏。

最优情况下,应该使以下目标函数最小化:

∑ { i , j } ∈ E ( f ( i ) − f ( j ) ) 2 \sum_{\{i, j\} \in E} \big( f(i) - f(j) \big)^2 {i,j}E(f(i)f(j))2

(想象热量扩散的场景,空间中某一点的热量直接受作用于相邻的点,最终的平衡状态下,相邻点的热量差总是达到最小值)

而该最优化过程与拉普拉斯矩阵有如下关系:

∑ { i , j } ∈ E ( f ( i ) − f ( j ) ) 2 = ∑ { i , j } ∈ E ( f ( i ) 2 + f ( j ) 2 − 2 f ( i ) f ( j ) ) = ∑ { i , j } ∈ E − 2 f ( i ) f ( j ) + ∑ i d i f ( i ) 2 = ∑ i ≠ j , i ∼ j − f ( i ) f ( j ) + ∑ i d i f ( i ) 2 = ∑ i , j l i , j f ( i ) f ( j ) = ∑ i f ( i ) ( ∑ j l i , j f ( j ) ) = f T L f \begin{array}{rcl} \sum\limits_{\{i, j\} \in E} \big( f(i) - f(j) \big)^2 & = & \sum\limits_{\{i, j\} \in E} \big( f(i)^2 + f(j)^2 - 2f(i)f(j) \big) \\ & = & \sum\limits_{\{i, j\} \in E} - 2f(i)f(j) + \sum\limits_i d_i f(i)^2 \\ & = & \sum\limits_{i \neq j, i \sim j} - f(i)f(j) + \sum\limits_i d_i f(i)^2 \\ & = & \sum\limits_{i, j} l_{i, j} f(i)f(j) \\ & = & \sum\limits_i f(i) \bigg( \sum\limits_j l_{i, j} f(j) \bigg) \\ & = & f^T L f \end{array} {i,j}E(f(i)f(j))2======{i,j}E(f(i)2+f(j)22f(i)f(j)){i,j}E2f(i)f(j)+idif(i)2i=j,ijf(i)f(j)+idif(i)2i,jli,jf(i)f(j)if(i)(jli,jf(j))fTLf

根据Raleigh-Ritz定理,上述目标函数的最小值为 L L L的最小特征值, f f f的取值是最小特征值对应的特征向量,且有:

λ 1 = min ⁡ f T L f f T f λ k = min ⁡ f ⊥ s p a n { v 1 , v 2 , … , v k − 1 } f T L f f T f ; k = 2 , … , n \lambda_1 = \min \frac{f^T L f}{f^T f} \\ \lambda_k = \min_{f \perp span\{ v_1, v_2, \dots, v_{k - 1} \}} \frac{f^T L f}{f^T f}; k = 2, \dots, n λ1=minfTffTLfλk=fspan{v1,v2,,vk1}minfTffTLf;k=2,,n

以道路网络为例,可以对不同特征向量进行可视化,观察不同的基实际上表达了什么关系(频率)信息:

代数连通性相关理论参考《Algebraic Connectivity of Graphs, with Applications》
实际操作参考《AIMS CDT Signal Processing Lab Session 2 Graph signal processing》

你可能感兴趣的:(机器学习,信号处理)