图卷积网络概述笔记
开一个博客把基础概念给记录下来,随笔瞎记呗
谱方法
谱方法在谱域定义卷积操作,把图变换到谱域进行卷积之后再变换到图域。
给定无向图G=(V,E,W),点集V(n=|V|),边集E,权带权邻接矩阵 W ∈ R n × n W \in R^{n \times n} W∈Rn×n,或者就是邻接矩阵 A ∈ R n × n A \in R^{n \times n} A∈Rn×n。每个节点如果有d维特征,所有节点的特征矩阵就是 X ∈ R n × d X \in R^{n \times d} X∈Rn×d
图的拉普拉斯矩阵:L=D-W或者L=D-A,D是度矩阵 D i i = ∑ j ( A i , j ) \mathbf{D}_{i i}=\sum_{j}\left(\mathbf{A}_{i, j}\right) Dii=∑j(Ai,j),拉普拉斯矩阵定义了图上的导数(信号的平滑程度),进一步地 normalized graph laplacian:
L = I − D − 1 2 A D − 1 2 \boldsymbol{L}=\boldsymbol{I}-\boldsymbol{D}^{-\frac{1}{2}} \boldsymbol{A} \boldsymbol{D}^{-\frac{1}{2}} L=I−D−21AD−21
I是单位阵,L矩阵是实对称半正定矩阵就可以进行矩阵分解: L = U Λ U T L=U \Lambda U^{T} L=UΛUT,其中 U = [ u 1 , u 2 , ⋯ , u n ] ∈ R n × n \mathbf{U}=\left[\mathbf{u}_{\mathbf{1}}, \mathbf{u}_{\mathbf{2}}, \cdots, \mathbf{u}_{\mathbf{n}}\right] \in \mathbf{R}^{n \times n} U=[u1,u2,⋯,un]∈Rn×n,就是特征向量矩阵;而 Λ \Lambda Λ是特征值的对角矩阵 Λ = diag ( [ λ 1 , ⋯ , λ n ] ) \Lambda=\operatorname{diag}\left(\left[\lambda_{1}, \cdots, \lambda_{n}\right]\right) Λ=diag([λ1,⋯,λn]),这一组特征向量相互正交( U T U = 1 U^{T}U=1 UTU=1),把这些特征向量作为一组正交基,对图信号 x ∈ R n x \in R^n x∈Rn进行傅里叶变换: x ^ = U T x \widehat{\boldsymbol{x}}=\boldsymbol{U}^{T} \boldsymbol{x} x
=UTx,对应反变换: x = U x ^ \boldsymbol{x}=\boldsymbol{U}\widehat{\boldsymbol{x}} x=Ux
。
对于输入信号 x ∈ R n x \in R^{n} x∈Rn,滤波器 g ∈ R n g \in R^{n} g∈Rn的卷积操作就可以在谱域下定义为:
x ∗ G y = U ( ( U T x ) ⊙ ( U T g ) ) x *_{G} y=U\left(\left(\boldsymbol{U}^{T} \boldsymbol{x}\right) \odot\left(\boldsymbol{U}^{T} g\right)\right) x∗Gy=U((UTx)⊙(UTg))
⊙ \odot ⊙表示点乘,而 U T x ∈ R n × 1 \boldsymbol{U}^{T} \boldsymbol{x} \in R^{n\times1} UTx∈Rn×1,可以设 U T g = [ θ 1 , ⋯ , θ n ] T \boldsymbol{U}^{T} g=\left[\boldsymbol{\theta}_{1}, \cdots, \boldsymbol{\theta}_{n}\right]^{T} UTg=[θ1,⋯,θn]T,同时设 g θ = diag ( [ θ 1 , ⋯ , θ n ] ) g_{\theta}=\operatorname{diag}\left(\left[\theta_{1}, \cdots, \theta_{n}\right]\right) gθ=diag([θ1,⋯,θn]),就可以将上式的点积变成矩阵乘积:
x ∗ G y = U g θ U T x x *_{G} y=U g_{\theta} U^{T} x x