拉普拉斯算子
梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
方向导数是在 z = f ( x , y ) z=f(x,y) z=f(x,y)的曲面沿着 ρ \rho ρ方向的导数, α \alpha α为 ρ \rho ρ和x轴的夹角, β \beta β为 ρ \rho ρ和y轴的夹角
d z d ρ = ∂ z ∂ x d x d ρ + ∂ z ∂ y d y d ρ = ∂ z ∂ x cos α + ∂ z ∂ y cos β \frac{dz}{d\rho}=\frac{\partial z}{\partial x}\frac{dx}{d\rho}+\frac{\partial z}{\partial y}\frac{dy}{d\rho}=\frac{\partial z}{\partial x}\cos\alpha+\frac{\partial z}{\partial y}\cos\beta dρdz=∂x∂zdρdx+∂y∂zdρdy=∂x∂zcosα+∂y∂zcosβ
公式变成向量的形式, γ \gamma γ是向量 ( ∂ z ∂ x , ∂ z ∂ y ) (\frac{\partial z}{\partial x},\frac{\partial z}{\partial y}) (∂x∂z,∂y∂z)和向量 ( cos α , cos β ) (\cos\alpha,\cos\beta) (cosα,cosβ)之间的夹角
d z d ρ = ( ∂ z ∂ x , ∂ z ∂ y ) ( cos α , cos β ) = ∣ ( ∂ z ∂ x , ∂ z ∂ y ) ∣ ∣ ( cos α , cos β ) ∣ cos γ \frac{dz}{d\rho}=(\frac{\partial z}{\partial x},\frac{\partial z}{\partial y})(\cos\alpha,\cos\beta)=|(\frac{\partial z}{\partial x},\frac{\partial z}{\partial y})||(\cos\alpha,\cos\beta)|\cos\gamma dρdz=(∂x∂z,∂y∂z)(cosα,cosβ)=∣(∂x∂z,∂y∂z)∣∣(cosα,cosβ)∣cosγ
显然当 γ \gamma γ为0度的时候,当 ρ \rho ρ沿着 ( ∂ z ∂ x , ∂ z ∂ y ) (\frac{\partial z}{\partial x},\frac{\partial z}{\partial y}) (∂x∂z,∂y∂z)的时候,导数取最大值。按照定义 ( ∂ z ∂ x , ∂ z ∂ y ) (\frac{\partial z}{\partial x},\frac{\partial z}{\partial y}) (∂x∂z,∂y∂z)就是梯度(这是二维的情况)推广到三维就是设三元函数 u = f ( x , y , z ) u=f(x,y,z) u=f(x,y,z)
g r a d ( u ) = { ∂ u ∂ x , ∂ u ∂ y , ∂ u ∂ z } = ∂ u ∂ x i → + ∂ u ∂ y j → + ∂ u ∂ z k → grad(u)=\{\frac{\partial u}{\partial x},\frac{\partial u}{\partial y},\frac{\partial u}{\partial z}\}=\frac{\partial u}{\partial x}\overrightarrow{i}+\frac{\partial u}{\partial y}\overrightarrow{j}+\frac{\partial u}{\partial z}\overrightarrow{k} grad(u)={∂x∂u,∂y∂u,∂z∂u}=∂x∂ui+∂y∂uj+∂z∂uk
散度可用于表征空间各点矢量场发散的强弱程度。物理上,散度的意义是场的有源性。当div F>0 ,表示该点有散发通量的正源(发散源);当div F<0 表示该点有吸收通量的负源(洞或汇);当div F=0,表示该点无源。
散度其实描述的就是一个点的单位时间内通过的量,比如一个下水道你需要把单位时间进入水道的量(这里肯定是x和y方向上的)和单位时间出水道的量(这里是z方向上的)全加起来。散度也是个标量。在笛卡尔坐标系下散度公式为
d i v F = ∂ F ∂ x + ∂ F ∂ y + ∂ F ∂ z div F = \frac{\partial F}{\partial x}+\frac{\partial F}{\partial y}+\frac{\partial F}{\partial z} divF=∂x∂F+∂y∂F+∂z∂F
另外不在笛卡尔坐标系下,可以通过高斯散度公式得出非坐标版本的散度公式。
拉普拉斯算子是欧式空间下的二阶算子,定义是 Δ f = d i v ( g r a d ( f ) ) \Delta f=div(grad(f)) Δf=div(grad(f))先进行梯度计算再进行散度计算
Δ f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 + ∂ 2 f ∂ z 2 \Delta f=\frac{\partial ^2f}{\partial x^2}+\frac{\partial ^2f}{\partial y^2}+\frac{\partial ^2f}{\partial z^2} Δf=∂x2∂2f+∂y2∂2f+∂z2∂2f
在离散的情况下拉普拉斯算子,一阶的导数可以说是图像像素之间的变化值,二阶可以说是像素之间的变化率(就像速度和加速度一样)
∂ f ∂ x = f ′ ( x ) = f ( x + 1 ) − f ( x ) \frac{\partial f}{\partial x}=f'(x)=f(x+1)-f(x) ∂x∂f=f′(x)=f(x+1)−f(x)
∂ 2 f ∂ x 2 = f ′ ′ ( x ) = f ′ ( x ) − f ′ ( x − 1 ) = f ( x + 1 ) + f ( x − 1 ) − 2 f ( x ) \frac{\partial ^2f}{\partial x^2}=f''(x)=f'(x)-f'(x-1)=f(x+1)+f(x-1)-2f(x) ∂x2∂2f=f′′(x)=f′(x)−f′(x−1)=f(x+1)+f(x−1)−2f(x)
对于二维来说拉普拉斯算子可以表示为
Δ f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x ) \Delta f=\frac{\partial ^2f}{\partial x^2}+\frac{\partial ^2f}{\partial y^2}=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x) Δf=∂x2∂2f+∂y2∂2f=f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1)−4f(x)
拉普拉斯算子最后进行的是散度计算,可以理解为把所有变化率相加了。当 Δ f > 0 \Delta f>0 Δf>0的时候可以说 ( x , y ) (x,y) (x,y)点相对于四周来说总的是往上趋势,也就是自身处于一个低地势。 Δ f < 0 \Delta f<0 Δf<0的时候可以说 ( x , y ) (x,y) (x,y)相对于四周是向下的趋势,自身处于一个高地势。
这种思想有了图像中的拉普拉斯算子 [ 0 1 0 1 − 4 1 0 1 0 ] \begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1\\ 0 & 1 & 0 \end{bmatrix} ⎣⎡0101−41010⎦⎤普拉斯算子是用于图像锐化的,可以突出边缘。
拉普拉斯矩阵
同样的思想推广到图论中假设有 N N N个节点的图 G G G,在节点 i i i上函数 f f f的值为 f i f_i fi,每一个节点类比与图像中的每一个像素点。设 i , j ∈ N i,j\in N i,j∈N从 j j j变化到 i i i的增益是
Δ f i = ∑ j ∈ N W i j ( f i − f j ) \Delta f_i = \sum_{j\in N}W_{ij}(f_i-f_j) Δfi=∑j∈NWij(fi−fj)
因为不相连接的节点权重 W W W为0所以只表示相连部分
Δ f i = ∑ j ∈ N W i j f i − ∑ j ∈ N W i j f j \Delta f_i = \sum_{j\in N}W_{ij}f_i-\sum_{j\in N}W_{ij}f_j Δfi=∑j∈NWijfi−∑j∈NWijfj
Δ f i = d i f i − W i , : f j \Delta f_i = d_if_i-W_{i,:}f_j Δfi=difi−Wi,:fj d i d_i di是点 i i i的度
Δ f = ( Δ f 1 Δ f 2 . . . Δ f N ) = ( d i f i − W i , : f 1 d i f i − W i , : f 2 . . . d i f i − W i , : f N ) = ( d 1 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ d N ) f − ( W 1 , : W 2 , : . . . W N , : ) f \Delta f=\begin{pmatrix} \Delta f_1 \\ \Delta f_2 \\ ...\\ \Delta f_N \\ \end{pmatrix}=\begin{pmatrix} d_if_i-W_{i,:}f_1 \\ d_if_i-W_{i,:}f_2 \\ ...\\ d_if_i-W_{i,:}f_N \\ \end{pmatrix}=\begin{pmatrix} d_1&\cdots &0 \\ \vdots&\ddots &\vdots \\ 0&\cdots & d_N \end{pmatrix}f-\begin{pmatrix} W_{1,:} \\ W_{2,:} \\ ...\\ W_{N,:} \\ \end{pmatrix}f Δf=⎝⎜⎜⎛Δf1Δf2...ΔfN⎠⎟⎟⎞=⎝⎜⎜⎛difi−Wi,:f1difi−Wi,:f2...difi−Wi,:fN⎠⎟⎟⎞=⎝⎜⎛d1⋮0⋯⋱⋯0⋮dN⎠⎟⎞f−⎝⎜⎜⎛W1,:W2,:...WN,:⎠⎟⎟⎞f
= ( D − W ) f =(D-W)f =(D−W)f
= L f =Lf =Lf
直观上来讲,图拉普拉斯反映了当我们在节点 i i i上施加一个势,这个势以哪个方向能够多顺畅的流向其他节点 D − W = L D-W=L D−W=L也就是拉普拉斯矩阵,D是入度矩阵,W是邻接矩阵。拉普拉斯矩阵是实对称矩阵可以特征分解
f T L f = f T D f − f T W f = ∑ i = 1 N d i f i 2 − ∑ i = 1 N ∑ j = 1 N f i f j W i j f^TLf=f^TDf-f^TWf=\sum_{i=1}^{N}d_if_i^2-\sum_{i=1}^{N}\sum_{j=1}^{N}f_if_jW_{ij} fTLf=fTDf−fTWf=∑i=1Ndifi2−∑i=1N∑j=1NfifjWij
= 1 2 ( ∑ i = 1 N d i f i 2 − 2 ∑ i = 1 N ∑ j = 1 N f i f j W i j + ∑ j = 1 N d j f j 2 ) =\frac{1}{2}(\sum_{i=1}^{N}d_if_i^2-2\sum_{i=1}^{N}\sum_{j=1}^{N}f_if_jW_{ij}+\sum_{j=1}^{N}d_jf_j^2) =21(∑i=1Ndifi2−2∑i=1N∑j=1NfifjWij+∑j=1Ndjfj2)
= 1 2 ( ∑ i = 1 N ( ∑ a = 1 N W i a ) f i 2 − 2 ∑ i = 1 N ∑ j = 1 N f i f j W i j + ∑ j = 1 N ( ∑ b = 1 N W i b ) f j 2 ) =\frac{1}{2}(\sum_{i=1}^{N}(\sum_{a=1}^{N}W_{ia})f_i^2-2\sum_{i=1}^{N}\sum_{j=1}^{N}f_if_jW_{ij}+\sum_{j=1}^{N}(\sum_{b=1}^{N}W_{ib})f_j^2) =21(∑i=1N(∑a=1NWia)fi2−2∑i=1N∑j=1NfifjWij+∑j=1N(∑b=1NWib)fj2)
= 1 2 ( ∑ i = 1 N ∑ j = 1 N W i j f i 2 − 2 ∑ i = 1 N ∑ j = 1 N f i f j W i j + ∑ j = 1 N ∑ i = 1 N W j i f j 2 ) =\frac{1}{2}(\sum_{i=1}^{N}\sum_{j=1}^{N}W_{ij}f_i^2-2\sum_{i=1}^{N}\sum_{j=1}^{N}f_if_jW_{ij}+\sum_{j=1}^{N}\sum_{i=1}^{N}W_{ji}f_j^2) =21(∑i=1N∑j=1NWijfi2−2∑i=1N∑j=1NfifjWij+∑j=1N∑i=1NWjifj2)
= 1 2 ∑ i = 1 N ∑ j = 1 N W i j ( f i 2 − 2 f i f j + f j 2 ) =\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}W_{ij}(f_i^2-2f_if_j+f_j^2) =21∑i=1N∑j=1NWij(fi2−2fifj+fj2)
= 1 2 ∑ i = 1 N ∑ j = 1 N W i j ( f i − f j ) 2 =\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}W_{ij}(f_i-f_j)^2 =21∑i=1N∑j=1NWij(fi−fj)2
归一化拉普拉斯
Random walk normalized Laplacian
L i j r w = { − 1 d e g ( i ) , i f ( i , j ) l i n k e d i → j , i ≠ j 0 , i f ( i , j ) n o t l i n k e d i ↛ j , i ≠ j 1 , i = j , d e g ( i ) ≠ 0 L^{rw}_{ij}=\left\{\begin{matrix} -\frac{1}{deg(i)},\ \ if(i,j)linked\ i\rightarrow j,i\neq j\\ 0,\ \ if(i,j)not\ linked\ i\nrightarrow j,i\neq j\\ 1,\ \ i=j,deg(i)\neq 0 \end{matrix}\right. Lijrw=⎩⎨⎧−deg(i)1, if(i,j)linked i→j,i=j0, if(i,j)not linked i↛j,i=j1, i=j,deg(i)=0
Symmetric normalized Laplacian
L i j s y m = { − 1 d e g ( i ) d e g ( j ) , i f ( i , j ) l i n k e d i → j , i ≠ j 0 , i f ( i , j ) n o t l i n k e d i ↛ j , i ≠ j 1 , i = j , d e g ( i ) ≠ 0 L^{sym}_{ij}=\left\{\begin{matrix} -\frac{1}{\sqrt{deg(i)deg(j)}},\ \ if(i,j)linked\ i\rightarrow j,i\neq j\\ 0,\ \ if(i,j)not\ linked\ i\nrightarrow j,i\neq j\\ 1,\ \ i=j,deg(i)\neq 0 \end{matrix}\right. Lijsym=⎩⎪⎨⎪⎧−deg(i)deg(j)1, if(i,j)linked i→j,i=j0, if(i,j)not linked i↛j,i=j1, i=j,deg(i)=0
L s y m = I n − D − 1 2 A D − 1 2 L^{sym}=I_n-D^{-\frac{1}{2}}AD^{-\frac{1}{2}} Lsym=In−D−21AD−21
D D D为度矩阵,A为邻接矩阵满足 D i i = ∑ j ( A i j ) D_{ii}=\sum_j(A_{ij}) Dii=∑j(Aij)
L s y m L^{sym} Lsym归一化拉普拉斯矩阵是半正定矩阵可以进行PSD
L = U Λ U T L=U\Lambda U^T L=UΛUT其中 U = [ u 0 , u 1 , u 2 , . . . , u n − 1 ∈ R N × N ] U=[u_0,u_1,u_2,...,u_{n-1}\in R^{N\times N}] U=[u0,u1,u2,...,un−1∈RN×N]U中的奇异值向量构成了一个正交的空间,因而有性质 U T U = I U^TU=I UTU=I
傅立叶变换
傅里叶变换是一种线性积分变换,用于信号在时域(或空域)和频域之间的变换,经傅里叶变换生成的函数 f ^ \hat{f} f^称作原函数 f f f的傅里叶变换、亦称频谱。在许多情况下,傅里叶变换是可逆的,即可通过 f ^ \hat{f} f^得到其原函数 f f f
傅立叶认为任何周期函数都可以是sin和cos函数的求和得到
f ( t ) = a 0 2 + ∑ a n sin ( n ω t + φ n ) = a 0 2 + ∑ a n sin n ω t + ∑ b n cos n ω t f(t)=\frac{a_0}{2}+\sum{a_n\sin{(n\omega t+\varphi_n)}}=\frac{a_0}{2}+\sum{a_n\sin{n\omega t}}+\sum{b_n\cos{n\omega t}} f(t)=2a0+∑ansin(nωt+φn)=2a0+∑ansinnωt+∑bncosnωt
其中标准正交基 ( 1 , sin n ω t , cos n ω t ) (1,\sin{n\omega t},\cos{n\omega t}) (1,sinnωt,cosnωt)
欧拉公式 c o s θ + i s i n θ = e i θ cos\theta+isin\theta=e^{i\theta} cosθ+isinθ=eiθ 令 θ = ω t \theta=\omega t θ=ωt
F T = ∫ − ∞ + ∞ f ( t ) e − j ω t d t F_T=\int_{-\infty}^{+\infty}f(t)e^{-j\omega t}dt FT=∫−∞+∞f(t)e−jωtdt 其中 e − j ω t e^{-j\omega t} e−jωt代表了一种正交基的组合,如果 f ( t ) f(t) f(t)中含有 ω \omega ω信号那相乘值就不为0,其他不是 ω \omega ω频率信号与这一组正交基相乘就是为0。
F T F_T FT计算出来后其中实树部分是随频率的信号强度,复数部分代表相位。
f ( t ) = ∫ − ∞ + ∞ F T ( ω ) e j ω t d ω f(t)=\int_{-\infty}^{+\infty}F_T(\omega)e^{j\omega t}d\omega f(t)=∫−∞+∞FT(ω)ejωtdω 傅立叶逆变换
x n = ∑ k = 0 N − 1 X k e − j 2 π N k n n = 0 , . . . , N − 1 x_n=\sum_{k=0}^{N-1}X_ke^{-j\frac{2\pi}{N}kn}\ \ \ n=0,...,N-1 xn=∑k=0N−1Xke−jN2πkn n=0,...,N−1 离散傅立叶变换
图傅立叶到图卷积
我们知道傅立叶变换的本质是与 e − j w t e^{-jwt} e−jwt(不同的正交基)做内积,相同频率做内积不为0(正交基一样),不同频率(正交基不一样)做内积为0。
从基函数的角度 e − j ω t e^{-j\omega t} e−jωt是解拉普拉斯算子方程得到的特征方程得到的
{ A V = λ V A = Δ = > V = e − j ω t \left\{\begin{matrix} AV=\lambda V \\ A = \Delta \end{matrix}\right.=>V=e^{-j\omega t} {AV=λVA=Δ=>V=e−jωt ,我们把 V V V反带入方程即可证明
Δ e − j w t = ∂ 2 ∂ 2 t e − j w t = − w 2 e − j w t \Delta e^{-jwt}=\frac{\partial^2}{\partial^2t}e^{-jwt}=-w^2e^{-jwt} Δe−jwt=∂2t∂2e−jwt=−w2e−jwt
它其实就是拉普拉斯算子方程的特征矩阵,也算作一组基。所以可以拿 e − j ω t e^{-j\omega t} e−jωt做内积
我们推广到图上正交基很显然就是laplace矩阵的特征向量,对于图上的傅立叶变换可以表示为
f ^ = ∑ i = 1 N f i u l i ∗ \hat{f}=\sum_{i=1}^{N}f_iu^*_{li} f^=∑i=1Nfiuli∗
u l i ∗ u^*_{li} uli∗是第 l l l个特征向量(特征值 λ l \lambda_{l} λl对应的特征分量)的第 i i i分量
f = λ 1 u 1 + ⋯ + λ l u l + ⋯ + λ N u N f=\lambda_1u_1+\cdots+\lambda_lu_l+\cdots+\lambda_Nu_N f=λ1u1+⋯+λlul+⋯+λNuN
f i f_i fi如果含有 u l u_l ul的分量内积不为0,与其他的特征分量做内积是为0的
上述的傅立叶变换公式可以写成矩阵的形式, U U U是laplace矩阵PSD后的的特征向量矩阵
再下面公式中每一行都代表了一个特征值得出的特征向量(所以转置),其中 U i , j U_{i,j} Ui,j中 i i i代表第几个特征值, j j j代表每一个特征向量有 j j j个属性
( 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 ) \begin{pmatrix} \hat{f_1} \\ \hat{f_2} \\ \vdots \\ \hat{f_N}\\ \end{pmatrix} =\begin{pmatrix} u_{1,1} &u_{1,2}&\cdots&u_{1,N}\\ u_{2,1} &u_{2,2}&\cdots&u_{2,N}\\ \vdots & \vdots & \vdots & \vdots &\\ u_{N,1} &u_{N,2}&\cdots&u_{N,N}\\ \end{pmatrix} \begin{pmatrix} f_1 \\ f_2 \\ \vdots \\ f_N\\ \end{pmatrix} ⎝⎜⎜⎜⎛f1^f2^⋮fN^⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛u1,1u2,1⋮uN,1u1,2u2,2⋮uN,2⋯⋯⋮⋯u1,Nu2,N⋮uN,N⎠⎟⎟⎟⎞⎝⎜⎜⎜⎛f1f2⋮fN⎠⎟⎟⎟⎞
x ^ = U T x \hat{x}=U^Tx x^=UTx
x = U x ^ x=U\hat{x} x=Ux^ 傅立叶逆运算
我们就可以定义图上的卷积,它就是简单的两个变换的乘积然后再逆变换 ⊙ \odot ⊙是对应相乘
y ∗ x = U ( ( U T y ) ⊙ ( U T x ) ) y*x=U((U^Ty)\odot(U^Tx)) y∗x=U((UTy)⊙(UTx))
( y 1 ⋮ y n ) ⊙ ( x 1 ⋮ x n ) = ( y 1 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ y n ) ( x 1 ⋮ x n ) \begin{pmatrix} y_1 \\ \vdots \\ y_n \end{pmatrix}\odot\begin{pmatrix} x_1 \\ \vdots \\ x_n \end{pmatrix}=\begin{pmatrix} y_1&\cdots &0 \\ \vdots&\ddots &\vdots \\ 0&\cdots & y_n \end{pmatrix}\begin{pmatrix} x_1 \\ \vdots \\ x_n \end{pmatrix} ⎝⎜⎛y1⋮yn⎠⎟⎞⊙⎝⎜⎛x1⋮xn⎠⎟⎞=⎝⎜⎛y1⋮0⋯⋱⋯0⋮yn⎠⎟⎞⎝⎜⎛x1⋮xn⎠⎟⎞
在卷积的时候可以把 U T y U^Ty UTy可以看作一个可以学习的卷积核 θ \theta θ简化为一个对角矩阵 g θ g_\theta gθ ,设 g θ = d i a g ( θ ) g_\theta=diag(\theta) gθ=diag(θ)为对角矩阵。把对角矩阵带入运算。后面各种图卷积都是在 g θ g_\theta gθ上做文章
( y ∗ x ) θ = U g θ U T x (y*x)_\theta=Ug_\theta U^Tx (y∗x)θ=UgθUTx
图卷积
Spectral-based的模型中,图通常被假定为无向图。对无向图比较鲁棒的表示方法是归一化的拉普拉斯矩阵(Normalized graph Laplacian matrix),归一化的拉普拉斯矩阵L被定义为 L = I n − D − 1 2 A D − 1 2 L=I_n-D^{-\frac{1}{2}}AD^{-\frac{1}{2}} L=In−D−21AD−21
GCN第一代公式(最基本的图卷积公式)
X : , j k + 1 = σ ( ∑ i = 1 f k − 1 U θ i , j k U T X : , i k ) , j = 1 , 2 , . . . , k X^{k+1}_{:,j}=\sigma(\sum^{f_{k-1}}_{i=1}U\theta^{k}_{i,j}U^TX^k_{:,i}),j=1,2,...,k X:,jk+1=σ(∑i=1fk−1Uθi,jkUTX:,ik),j=1,2,...,k
θ i , j k \theta^{k}_{i,j} θi,jk可学习参数组成的对角矩阵
f k − 1 f_{k-1} fk−1是输入channel的个数, f k f_k fk是输出的channel个数。对于每一个输入的卷积核(k个卷积核之一)求卷积会把输入通道中每一个做卷积然后再求和
σ ( ) \sigma() σ()激活函数比如relu
X k X^k Xk输入层, X k + 1 X^{k+1} Xk+1输出层
GCN第二代公式
因为拉普拉斯矩阵的PSD分解 U λ U T = L U\lambda U^T=L UλUT=L所以我们把 g θ g_\theta gθ这个卷积核看成是
( ∑ j = 0 K α j λ 1 j ∑ j = 0 K α j λ 2 j ⋯ ∑ j = 0 K α j λ N j ) = ∑ j = 0 K α j Λ j \begin{pmatrix} \sum_{j=0}^{K}\alpha_j\lambda_1^j \\ &\sum_{j=0}^{K}\alpha_j\lambda_2^j \\ &&\cdots \\ &&& \sum_{j=0}^{K}\alpha_j\lambda_N^j\\ \end{pmatrix}= \sum_{j=0}^{K}\alpha_j\Lambda^j ⎝⎜⎜⎜⎛∑j=0Kαjλ1j∑j=0Kαjλ2j⋯∑j=0KαjλNj⎠⎟⎟⎟⎞=∑j=0KαjΛj
j j j代表的是多项式的次方,我们把卷积核中的每个值看作是通过拉普拉斯矩阵特征值的多项式计算得到 θ i , i = F ( λ i ) \theta_{i,i}=F(\lambda_i) θi,i=F(λi)
代入图卷积公式
( y ∗ x ) θ = U ∑ j = 0 K α j Λ j U T x (y*x)_\theta =U\sum_{j=0}^{K}\alpha_j\Lambda^jU^Tx (y∗x)θ=U∑j=0KαjΛjUTx
= ∑ j = 0 K α j U Λ j U T x =\sum_{j=0}^{K}\alpha_jU\Lambda^jU^Tx =∑j=0KαjUΛjUTx
= ∑ j = 0 K α j L j x =\sum_{j=0}^{K}\alpha_jL^jx =∑j=0KαjLjx
这个时候计算的复杂度大大降低 K K K比 N N N小的多而且不用再算 U U U
Chebyshev Spectral CNN
切比雪夫多项式
T 0 ( x ) = 1 T_0(x)=1 T0(x)=1
T 1 ( x ) = c o s θ = x T_1(x)=cos\theta=x T1(x)=cosθ=x
T 2 ( x ) = c o s 2 θ T_2(x)=cos2\theta T2(x)=cos2θ
T 3 ( x ) = c o s 3 θ T_3(x)=cos3\theta T3(x)=cos3θ
⋮ \vdots ⋮
T n ( x ) = c o s n θ T_n(x)=cosn\theta Tn(x)=cosnθ
由于多倍角展开公式
c o s n θ = 2 c o s θ c o s n θ − c o s ( n − 1 ) θ cosn\theta=2cos\theta cosn\theta−cos(n−1)\theta cosnθ=2cosθcosnθ−cos(n−1)θ
T n T_n Tn满足递推关系式 T n + 1 ( x ) = 2 x T n ( x ) − T n − 1 ( x ) T_{n+1}(x)=2xT_n(x)-T_{n-1}(x) Tn+1(x)=2xTn(x)−Tn−1(x)
T 0 ( x ) = 1 T_0(x)=1 T0(x)=1 T 0 ( L ~ ) = I N T_0(\tilde L)=I_N T0(L~)=IN
T 1 ( x ) = x T_1(x)=x T1(x)=x T 1 ( L ~ ) = L ~ T_1(\tilde L)=\tilde L T1(L~)=L~
T 2 ( x ) = 2 x 2 − 1 T_2(x)=2x^2−1 T2(x)=2x2−1 $\vdots $
T 3 ( x ) = 4 x 3 − 3 x T_3(x)=4x^3−3x T3(x)=4x3−3x
T 4 ( x ) = 8 x 4 − 8 x 2 + 1 T_4(x)=8x^4−8x^2+1 T4(x)=8x4−8x2+1
切比雪夫的重要性质:(1) x n x_n xn的系数是 2 n − 1 2^{n−1} 2n−1; (2)只有偶(奇)次项只含有偶(奇)次方
定义 g θ g_\theta gθ为切比雪夫多项式用于逼近(主要为了节约计算)
g θ ′ ≈ ∑ k = 0 K θ k ′ T k ( Λ ~ ) g_{\theta'}\approx\sum_{k=0}^{K}\theta'_kT_k(\tilde{\Lambda}) gθ′≈∑k=0Kθk′Tk(Λ~)
其中 Λ ~ = 2 λ m a x Λ − I N \tilde{\Lambda}=\frac{2}{\lambda_{max}}\Lambda-I_N Λ~=λmax2Λ−IN, λ m a x \lambda_{max} λmax代表 L L L的最大特征值,这个rescale是为了保证范围在 [ − 1 , 1 ] [-1,1] [−1,1]
θ ′ ∈ R K \theta'\in R^K θ′∈RK是切比雪夫系数vector
因为切比雪夫是可以迭代运算的再一次下降了计算复杂度
g θ ′ ⋆ x ≈ ∑ k = 0 K θ k ′ T k ( L ~ ) x g_{\theta'}\star x\approx\sum_{k=0}^{K}\theta'_kT_k(\tilde L)x gθ′⋆x≈∑k=0Kθk′Tk(L~)x,这里的 ⋆ \star ⋆是卷积的意思
参考
https://zhuanlan.zhihu.com/p/81502804谱聚类方法推导和对拉普拉斯矩阵的理解
https://zhuanlan.zhihu.com/p/60962304图卷积神经网络(Graph Convolutional Network, GCN)
https://www.zhihu.com/question/54504471如何理解 Graph Convolutional Network(GCN)
https://www.zhihu.com/question/346245009傅里叶变换具有卷积定理,和傅里叶基函数是拉普拉斯算子的特征函数,之间有什么关系?
http://liao.cpython.org/scipy09/ SciPy切比雪夫多项式逼近
https://blog.csdn.net/ppdouble/article/details/91785697拉普拉斯矩阵
https://blog.csdn.net/qq_24699745/article/details/100640256基于谱方法的图卷积(卷积,图卷积,切比雪夫图卷积)
https://blog.csdn.net/qq_34650111/article/details/89920461Spectral-based graph convolutional neural network
《SEMI -SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS》论文