读论文,发现看论文最重要的是推导,因此写了这篇文章,记录重要的推导过程(个人人为的)(持续更新)
邻接矩阵归一化: A ~ = D ~ − 1 / 2 A ~ D ~ − 1 / 2 \tilde{A}=\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2} A~=D~−1/2A~D~−1/2
对应::
A = I n + D − 1 / 2 A D − 1 / 2 A = I_{n} + D^{-1/2}AD^{-1/2} A=In+D−1/2AD−1/2
是低通过滤器,
L = I n − D − 1 / 2 A D − 1 / 2 L = I_{n} -D^{-1/2}AD^{-1/2} L=In−D−1/2AD−1/2
相应的是高通滤波器
参考:https://blog.csdn.net/qq_51392112/article/details/129105003
A的特征值范围是[-1,1],L的特征值范围为:[0,2]
由于图附近的信号应该是平滑的,我们有如下的定义光滑信号:
min H ∥ H − X ∥ F 2 + s Tr ( H ⊤ L H ) (1) \min_H\|H-X\|_F^2+s\operatorname{Tr}\left(\mathrm{H}^\top\mathrm{LH}\right)\tag{1} Hmin∥H−X∥F2+sTr(H⊤LH)(1)
其中,
O r e g = 1 2 ∑ i , j n A ~ i , j ∥ H i − H j ∥ 2 = t r ( H T L ~ H ) (2) O_{reg}=\frac12\sum_{i,j}^n\tilde{\mathbf{A}}_{i,j}\|\mathbf{H}_i-\mathbf{H}_j\|^2=tr(\mathbf{H}^T\tilde{\mathbf{L}}\mathbf{H})\tag{2} Oreg=21i,j∑nA~i,j∥Hi−Hj∥2=tr(HTL~H)(2)
(如上公式基于图相邻的节点应该是平滑的,因此当i和j有连边的时候, H i − H j H_{i}-H_{j} Hi−Hj应该尽可能的小)
推导如下图:
由公式1求导后得:
H = ( I + s L ) − 1 X H=(I+sL)^{-1}X H=(I+sL)−1X
泰勒公式展开(一阶)得:
H = ( I − s L ) X H=(I-sL)X H=(I−sL)X
m阶为: H = ( I − s L ) m X H=(I-sL)^{m}X H=(I−sL)mX
卷积是定义在两个函数(f和g)上的数学操作.f和g上的卷积可以写为 f ∗ g f*g f∗g.数学定义如下:
( f ∗ g ) ( t ) = ∫ − ∞ ∞ f ( τ ) g ( t − τ ) ( 连续形式 ) (f*g)(t)=\int_{-\infty}^\infty f(\tau)g(t-\tau)(\text{连续形式}) (f∗g)(t)=∫−∞∞f(τ)g(t−τ)(连续形式)
( f ∗ g ) ( t ) = ∑ τ = − ∞ ∞ f ( τ ) g ( t − τ ) ( 离散形式 ) (f*g)(t)=\sum_{\tau=-\infty}^\infty f(\tau)g(t-\tau)(\text{离散形式}) (f∗g)(t)=τ=−∞∑∞f(τ)g(t−τ)(离散形式)
我们可以参考如下去理解:
假如有两个骰子f,g,f(1)表示f朝上一面为1的概率.同时抛两个筛子1次,它们正面朝上数字为4的概率为:
消息传递函数:
h v l + 1 = U l + 1 ( h v , ∑ u ∈ n e [ v ] M l + 1 ( h v l , h u l , x v u ) ) \mathbf{h}_v^{l+1}=U_{l+1}(\mathbf{h}_v,\sum_{u\in ne[v]}M_{l+1}(\mathbf{h}_v^l,\mathbf{h}_u^l,\mathbf{x}_{vu})) hvl+1=Ul+1(hv,u∈ne[v]∑Ml+1(hvl,hul,xvu))
( f ∗ g ) ( t ) = F − 1 [ F [ f ( t ) ] ⊙ F [ g ( t ) ] ] (f*g)(t)=F^{-1}[F[f(t)]\odot F[g(t)]] (f∗g)(t)=F−1[F[f(t)]⊙F[g(t)]]
F − 1 F^{-1} F−1是傅里叶逆变换, ⊙ \odot ⊙指的是两个矩阵的逐点乘积(hadamard积)
简单来说就是,如果要算 f 与 g 的卷积,可以先将它们通过傅里叶变换变换到频域中,将两个函数在频域中相乘,然后再通过傅里叶逆变换转换出来,就可以得到 与 的卷积结果。
傅里叶变换后生成的
f ^ ( t ) = ∫ f ( x ) e x p − 2 π i x t d x \hat{f}\left(t\right)=\int f(x)\mathrm{exp}^{-2\pi ixt}dx f^(t)=∫f(x)exp−2πixtdx
exp − 2 π i x t \exp^{-2\pi ixt} exp−2πixt相当于拉普拉斯算子 △ \triangle △的广义特征函数
Δ e x p − 2 π i x t = ∂ 2 ∂ t 2 e x p − 2 π i x t = − 4 π 2 x 2 e x p − 2 π i x t \Delta\mathrm{exp}^{-2\pi ixt}=\frac{\partial^2}{\partial t^2}\mathrm{exp}^{-2\pi ixt}=-4\pi^2x^2\mathrm{exp}^{-2\pi ixt} Δexp−2πixt=∂t2∂2exp−2πixt=−4π2x2exp−2πixt
这意味着,傅里叶变换将 f ( t ) f(t) f(t)映射到了 { exp − 2 π i x t } \{\exp^{-2\pi ixt}\} {exp−2πixt}为基的空间中
L = U Λ U T L=U\Lambda U^T L=UΛUT
U = ( u 1 , u 2 , ⋯ , u n ) U=(u_1,u_2,\cdots,u_n) U=(u1,u2,⋯,un)
Λ = [ λ 1 … 0 … … … 0 … λ n ] \Lambda=\begin{bmatrix}\lambda_1&\ldots&0\\\\\ldots&\ldots&\ldots\\0&\ldots&\lambda_n\end{bmatrix} Λ= λ1…0………0…λn
结合上面的卷积和傅里叶变换的公式,图上卷积公式(即傅里叶变换):
f ^ ( t ) = ∑ n = 1 N f ( n ) u t ( n ) \hat{f}\left(t\right)=\sum_{n=1}^Nf(n)u_t(n) f^(t)=n=1∑Nf(n)ut(n)
如果整个图上N个节点一起做卷积,就可以得到整张图的卷积:
f ^ = [ f ^ ( 1 ) … f ^ ( N ) ] = U T f \hat{f}=\begin{bmatrix}\hat{f}\left(1\right)\\\ldots\\\hat{f}\left(N\right)\end{bmatrix}=U^Tf f^= f^(1)…f^(N) =UTf
我们将图上卷积公式代入卷积公式中:
( f ∗ G g ) = U ( U T f ⊙ U T g ) = U ( U T g ⊙ U T f ) (f*_Gg)=U(U^Tf\odot U^Tg)=U(U^Tg\odot U^Tf) (f∗Gg)=U(UTf⊙UTg)=U(UTg⊙UTf)
如果把 U T g U^{T}g UTg整体看做可学习的卷积核,这里我们把它写作 g θ g_{\theta} gθ,最终图上的卷积公式:
o = ( f ∗ G g ) θ = U g θ U T f o=(f*_Gg)_\theta=Ug_\theta U^Tf o=(f∗Gg)θ=UgθUTf
常见矩阵求导法则:
∂ t r ( A B ) ∂ A = B T \frac{\partial tr(AB)}{\partial A} = B^T ∂A∂tr(AB)=BT
∂ t r ( A X B ) ∂ X = ( B A ) T = A T B T \frac{\partial tr(AXB)}{\partial X} = (BA)^T = A^TB^T ∂X∂tr(AXB)=(BA)T=ATBT
∂ t r ( X T X ) ∂ X = 2 X \frac{\partial tr(X^TX)}{\partial X} = 2X ∂X∂tr(XTX)=2X
tr ( A ) = tr ( A T ) \operatorname{tr}(A)=\operatorname{tr}(A^T) tr(A)=tr(AT)