GCN推导合集

读论文,发现看论文最重要的是推导,因此写了这篇文章,记录重要的推导过程(个人人为的)(持续更新)

SGC以及最常见优化的推到

邻接矩阵归一化: 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
对应::
L = I n + D − 1 / 2 A D − 1 / 2 L = I_{n} + D^{-1/2}AD^{-1/2} L=In+D1/2AD1/2
是低通过滤器,
L = I n − D − 1 / 2 A D − 1 / 2 L = I_{n} -D^{-1/2}AD^{-1/2} L=InD1/2AD1/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} HminHXF2+sTr(HLH)(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,jnA~i,jHiHj2=tr(HTL~H)(2)
(如上公式基于图相邻的节点应该是平滑的,因此当i和j有连边的时候, H i − H j H_{i}-H_{j} HiHj应该尽可能的小)
推导如下图:
请添加图片描述

由公式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=(IsL)X
m阶为: H = ( I − s L ) m X H=(I-sL)^{m}X H=(IsL)mX

卷积核 来自大佬SivilTaram

卷积概念

卷积是定义在两个函数(f和g)上的数学操作.f和g上的卷积可以写为 f ∗ g f*g fg.数学定义如下:
( f ∗ g ) ( t ) = ∫ − ∞ ∞ f ( τ ) g ( t − τ ) ( 连续形式 ) (f*g)(t)=\int_{-\infty}^\infty f(\tau)g(t-\tau)(\text{连续形式}) (fg)(t)=f(τ)g(tτ)(连续形式)
( f ∗ g ) ( t ) = ∑ τ = − ∞ ∞ f ( τ ) g ( t − τ ) ( 离散形式 ) (f*g)(t)=\sum_{\tau=-\infty}^\infty f(\tau)g(t-\tau)(\text{离散形式}) (fg)(t)=τ=f(τ)g(tτ)(离散形式)

我们可以参考如下去理解:
假如有两个骰子f,g,f(1)表示f朝上一面为1的概率.同时抛两个筛子1次,它们正面朝上数字为4的概率为:

  • f上1,g上3
  • f上2,g上2
  • f上3,g上1
    即:
    ∑ τ = 1 3 f ( τ ) g ( 4 − τ ) \sum_{\tau=1}^3f(\tau)g(4-\tau) τ=13f(τ)g(4τ)
    在图领域,g可以看做深度学习中的核(kernel),也就对应滤波器.f可以对应深度学习中的特征. ( f ∗ g ) (f*g) (fg)就可以对应对f的加权求和
    文章配图
空间卷积

文章配图

消息传递函数:
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,une[v]Ml+1(hvl,hul,xvu))

傅里叶变换(Fourier Transform)

( f ∗ g ) ( t ) = F − 1 [ F [ f ( t ) ] ⊙ F [ g ( t ) ] ] (f*g)(t)=F^{-1}[F[f(t)]\odot F[g(t)]] (fg)(t)=F1[F[f(t)]F[g(t)]]
F − 1 F^{-1} F1是傅里叶逆变换, ⊙ \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)exp2πixtdx
exp ⁡ − 2 π i x t \exp^{-2\pi ixt} exp2π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} Δexp2πixt=t22exp2πixt=4π2x2exp2πixt
这意味着,傅里叶变换将 f ( t ) f(t) f(t)映射到了 { exp ⁡ − 2 π i x t } \{\exp^{-2\pi ixt}\} {exp2π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} Λ= λ100λ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=1Nf(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) (fGg)=U(UTfUTg)=U(UTgUTf)
如果把 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=(fGg)θ=UgθUTf

附录部分

常见矩阵求导法则:
∂ t r ( A B ) ∂ A = B T \frac{\partial tr(AB)}{\partial A} = B^T Atr(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 Xtr(AXB)=(BA)T=ATBT
∂ t r ( X T X ) ∂ X = 2 X \frac{\partial tr(X^TX)}{\partial X} = 2X Xtr(XTX)=2X
tr ⁡ ( A ) = tr ⁡ ( A T ) \operatorname{tr}(A)=\operatorname{tr}(A^T) tr(A)=tr(AT)

  • 39
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值