Math of GCN

一、warmup

1.Graph vs Image

①Graph是相比于Image更加广义的一种拓扑结构。
②Image是Grape在欧式空间的一种特例。

2.符号含义

①A:图的邻接矩阵
②A^\hat{A}A^ :A^=A+I\hat{A}=A+IA^=A+I,III为单位矩阵
③D:节点的度矩阵
④D^\hat{D}D^ :D^=D+I\hat{D}=D+ID^=D+I,III为单位矩阵

二、Basic of GCN

1.什么是GNN

GNN的公式表达:H(l+1)=f(A,Hl)H^{(l+1)} =f(A,H^{l})H(l+1)=f(A,Hl)
公式理解:给定图的邻接矩阵A和每个节点的特征HlH^{l}Hl作为输入,经过函数f()的映射后,从而得到每个节点输出H(l+1)H^{(l+1)}H(l+1),作为下一层的输入特征。不同的函数f()会产生不同的图神经网络架构。本文探究的是GCN模型。

2.GCN(本文的研究对象是无向简单图)

GCN的公式表达:H(l+1)=σ(D^−12A^D^−12H(l)θ)H^{(l+1)} =\sigma (\hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{-\frac{1}{2}}H^{(l)}\theta)H(l+1)=σ(D^−21​A^D^−21​H(l)θ)
公式理解:A^\hat{A}A^ :A^=A+I\hat{A}=A+IA^=A+I,III为单位矩阵,D^−12\hat{D}^{-\frac{1}{2}}D^−21​代表对矩阵幂运算,因为D^−12\hat{D}^{-\frac{1}{2}}D^−21​只有主对角线有非零实数,所以只需对主对角线上的元素进行(-1/2)次的幂运算进行,HlH^{l}Hl为每个结点的特征,θ\thetaθ为可训练参数,对输入的特征进行线性变换,σ\sigmaσ为非线性激活函数。
现在,我们可以简单来理解一下GCN在做什么,其实就是对图的邻接矩阵A首先加了一个自环得到A^\hat{A}A^,然后左右分别乘了D^−12\hat{D}^{-\frac{1}{2}}D^−21​,做了一个对称归一化,接着使用得到的矩阵D^−12A^D^−12\hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{-\frac{1}{2}}D^−21​A^D^−21​去对节点输入特征H(l)H^{(l)}H(l)进行聚合,每个节点都聚合到了自身的信息和相邻结点的特征信息。

三、Spectral Graph Theory

1.linear algebra recap

①eigenvalue and eigenvector
【定义】:A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特征值λ的特征向量。
②实对称矩阵
【定义】:如果有n阶矩阵A,其矩阵的元素都为实数,且矩阵A的转置等于其本身(aij=aji)(a_{ij}=a_{ji})(aij​=aji​),则称A为实对称矩阵。
【性质】:实对称矩阵的属于不同特征值的特征向量相互正交。
【实对称矩阵的相似对角化】:实对称矩阵必定相似于一个对角矩阵(对角线以外的元素全为0的矩阵),即存在可逆矩阵P,使得P−1AP=ΛP^{-1} AP=\LambdaP−1AP=Λ,且存在正交矩阵U,使得U−1AU=UTAU=ΛU^{-1} AU=U^{T} AU=\LambdaU−1AU=UTAU=Λ。
【实对称矩阵的相似对角化理解】:UTAU=ΛU^{T} AU=\LambdaUTAU=Λ,可以改写为A=UΛUTA=U\Lambda U^{T}A=UΛUT,其中UUT=I(I为单位矩阵)UU^{T}=I(I为单位矩阵)UUT=I(I为单位矩阵),Λ=[λ1λ2......λn]\Lambda = \begin{bmatrix} \lambda_{1} & & & & \\ & \lambda_{2} & & & \\ & & ... & & \\ & & & ... &\\ & & & & \lambda_{n} \end{bmatrix}Λ=⎣⎡​λ1​​λ2​​...​...​λn​​⎦⎤​
③positive semi-definite matrix
【定义】:设A是实对称矩阵。如果对任意的实非零列向量x有XTAX≥0X^{T}AX≥0XTAX≥0,就称A为半正定矩阵。
【性质】:A的特征值均为非负的,即对于任意特征值λi\lambda _{i}λi​,都有λi≥0\lambda _{i}≥0λi​≥0。
④quadratic form
【定义】:二次型: RnR^nRn上的一个二次型是一个定义在 RnR^nRn 上的函数,表达式为 Q(x)=xTAxQ(x)=x^TAxQ(x)=xTAx ,其中A是一个n×n对称矩阵(一定要注意A是对称矩阵,不是一个随便的矩阵),矩阵A称为关于二次型的矩阵(二次型矩阵),xTAxx^TAxxTAx可以称为向量x关于矩阵A的二次型。
【瑞利商】:即一个向量关于矩阵A的二次型该向量关于单位矩阵的二次型的比值,数学表达式为:R(A,x)=x⃗TAx⃗x⃗Tx⃗R(A,x)=\frac{\vec{x}^TA\vec{x} }{\vec{x}^T\vec{x}}R(A,x)=xTxxTAx​。
【研究二次型和瑞利商的意义】:二次型和瑞利商与矩阵的特征值有着密切的联系。当瑞利商R(A,x)=x⃗TAx⃗x⃗Tx⃗R(A,x)=\frac{\vec{x}^TA\vec{x} }{\vec{x}^T\vec{x}}R(A,x)=xTxxTAx​中的x⃗\vec{x}x为矩阵的的特征向量时,有R(A,x)=x⃗TAx⃗x⃗Tx⃗=x⃗T(λx⃗)x⃗Tx⃗=λ(x⃗Tx⃗)x⃗Tx⃗=λR(A,x)=\frac{\vec{x}^TA\vec{x} }{\vec{x}^T\vec{x}}=\frac{\vec{x}^T(\lambda \vec{x}) }{\vec{x}^T\vec{x}}=\frac{\lambda (\vec{x}^T\vec{x}) }{\vec{x}^T\vec{x}}=\lambdaR(A,x)=xTxxTAx​=xTxxT(λx)​=xTxλ(xTx)​=λ。因此瑞利商是研究特征值的一个重要手段。

2.properties of matrices related to A

(1)拉普拉斯矩阵和拉普拉斯矩阵对称规范化
①拉普拉斯矩阵(用LLL表示):L=D−AL=D−AL=D−A,A是邻接矩阵,D是度矩阵。
②拉普拉斯矩阵对称规范化(用Lsym表示L_{sym}表示Lsym​表示):Lsym=D−12LD−12L_{sym}={D}^{-\frac{1}{2}}L{D}^{-\frac{1}{2}}Lsym​=D−21​LD−21​。
【研究L和LsymL_{sym}Lsym​的意义】
Ⅰ:LLL和LsymL_{sym}Lsym​都为实对称矩阵,因此他们都有n个特征值和n个正交的特征向量,可以分解为UΛUTU\Lambda U^{T}UΛUT的形式。
Ⅱ:LLL和LsymL_{sym}Lsym​都为半正定矩阵,因此他们的特征值都大于等于0。

3.证明LLL和LsymL_{sym}Lsym​都为半正定矩阵

证明思路:证明瑞利商≥0 对于任意x⃗{\vec{x}}x都成立,则当x⃗{\vec{x}}x为特征向量时,仍有瑞利商≥0,此时的瑞利商等于特征值,可以证得特征值≥0。
【证明L为半正定矩阵】
R(A,x)=x⃗TAx⃗x⃗Tx⃗R(A,x)=\frac{\vec{x}^TA\vec{x} }{\vec{x}^T\vec{x}}R(A,x)=xTxxTAx​,其中x⃗Tx⃗{\vec{x}^T\vec{x}}xTx>0 恒成立,故只需证明x⃗TAx⃗{\vec{x}^TA\vec{x} }xTAx≥0即可。
构造辅助矩阵:Gi,j=[1−1...−11]G_{i,j}=\begin{bmatrix} & & & & & & \\ & & & & & & \\ & & 1 & -1 & \\ & & & ... & & \\ & & -1 & 1 &\\ & & & & & & \end{bmatrix}Gi,j​=⎣⎡​​​1−1​−1...1​​​​⎦⎤​,辅助矩阵Gi,jG_{i,j}Gi,j​的意思是在矩阵的第i行i列取值为1,矩阵的第j行j列取值为1,矩阵的第i行j列取值为-1,矩阵的第j行i列取值为-1,其余位置取值为0。如此一来,L可以重写为L=D−A=∑(i,j)∈EG(i,j)L=D-A=\sum_{(i,j)∈E}G_{(i,j)}L=D−A=∑(i,j)∈E​G(i,j)​ , 【G(i,j)G_{(i,j)}G(i,j)​可以理解为L=D+(-A)得到的】,对于任意x⃗\vec{x}x,有x⃗TG(i,j)x⃗=x⃗T[......xi−xj...xj−xi...]=xi(xi−xj)+xj(xj−xi)=(xi−xj)2\vec{x} ^TG_{(i,j)}\vec{x}=\vec{x} ^T\begin{bmatrix} ...\\ ...\\ x_i-x_j\\ ...\\ x_j-x_i\\ ...\\ \end{bmatrix}=x_i(x_i-x_j)+x_j(x_j-x_i)=(x_i-x_j)^2xTG(i,j)​x=xT⎣⎡​......xi​−xj​...xj​−xi​...​⎦⎤​=xi​(xi​−xj​)+xj​(xj​−xi​)=(xi​−xj​)2,则有x⃗TLx⃗=x⃗T(∑(i,j)∈EG(i,j))x⃗=(∑(i,j)∈Ex⃗TG(i,j)x⃗)=∑(i,j)∈E(xi−xj)2\vec{x} ^TL\vec{x}=\vec{x}^T(\sum_{(i,j)∈E}^{ }G_{(i,j)})\vec{x}=(\sum_{(i,j)∈E}^{ }\vec{x}^TG_{(i,j)}\vec{x})=\sum_{(i,j)∈E}^{ }(x_i-x_j)^2xTLx=xT(∑(i,j)∈E​G(i,j)​)x=(∑(i,j)∈E​xTG(i,j)​x)=∑(i,j)∈E​(xi​−xj​)2,因此x⃗TLx⃗≥0\vec{x} ^TL\vec{x}≥0xTLx≥0恒成立,所以瑞利商R(A,x)≥0恒成立,故LLL为半正定矩阵。
【证明L_sym为半正定矩阵】
x⃗TLsymx⃗=(x⃗TD−12)L(D−12x⃗)=∑(i,j)∈E(xidi−xjdj)2\vec{x}^TL_{sym}\vec{x}=(\vec{x}^TD^{-\frac{1}{2}})L(D^{-\frac{1}{2}}\vec{x})=\sum_{(i,j)∈E}(\frac{x_i}{\sqrt{d_i}}-\frac{x_j}{\sqrt{d_j}})^2xTLsym​x=(xTD−21​)L(D−21​x)=∑(i,j)∈E​(di​​xi​​−dj​​xj​​)2,因此x⃗TLsymx⃗≥0\vec{x}^TL_{sym}\vec{x}≥0xTLsym​x≥0恒成立,所以瑞利商R(A,x)≥0恒成立,故LsymL_{sym}Lsym​为半正定矩阵。

4.LsymL_{sym}Lsym​的特征值取值范围

定义正数形式的辅助矩阵:
Gi,jpos=[11...11]G^{pos}_{i,j}=\begin{bmatrix} & & & & & & \\ & & & & & & \\ & & 1 & 1 & \\ & & & ... & & \\ & & 1 & 1 &\\ & & & & & & \end{bmatrix}Gi,jpos​=⎣⎡​​​11​1...1​​​​⎦⎤​,辅助矩阵Gi,jG_{i,j}Gi,j​的意思是在矩阵的第i行i列取值为1,矩阵的第j行j列取值为1,矩阵的第i行j列取值为1,矩阵的第j行i列取值为1,其余位置取值为0。
则x⃗TG(i,j)posx⃗=(xi+xj)2\vec{x} ^TG^{pos}_{(i,j)}\vec{x}=(x_i+x_j)^2xTG(i,j)pos​x=(xi​+xj​)2,
令Lpos=D+AL^{pos}=D+ALpos=D+A,则Lpos=∑(i,j)∈EG(i,j)posL^{pos}=\sum_{(i,j)∈E}G^{pos}_{(i,j)}Lpos=∑(i,j)∈E​G(i,j)pos​,
x⃗TLposx⃗=x⃗T(∑(i,j)∈EG(i,j))x⃗=(∑(i,j)∈Ex⃗TG(i,j)posx⃗)=∑(i,j)∈E(xi+xj)2≥0\vec{x} ^TL^{pos}\vec{x}=\vec{x}^T(\sum_{(i,j)∈E}^{ }G_{(i,j)})\vec{x}=(\sum_{(i,j)∈E}^{ }\vec{x}^TG^{pos}_{(i,j)}\vec{x})=\sum_{(i,j)∈E}^{ }(x_i+x_j)^2≥0xTLposx=xT(∑(i,j)∈E​G(i,j)​)x=(∑(i,j)∈E​xTG(i,j)pos​x)=∑(i,j)∈E​(xi​+xj​)2≥0,
Lsympos=D−12LposD−12L^{pos}_{sym}={D}^{-\frac{1}{2}}L^{pos}{D}^{-\frac{1}{2}}Lsympos​=D−21​LposD−21​,
x⃗TLsymposx⃗=∑(i,j)∈E(xidi+xjdj)2≥0\vec{x} ^TL^{pos}_{sym}\vec{x}=\sum_{(i,j)∈E}(\frac{x_i}{\sqrt{d_i}}+\frac{x_j}{\sqrt{d_j}})^2≥0xTLsympos​x=∑(i,j)∈E​(di​​xi​​+dj​​xj​​)2≥0,
将Lpos=D+AL^{pos}=D+ALpos=D+A代入Lsympos=D−12LposD−12L^{pos}_{sym}={D}^{-\frac{1}{2}}L^{pos}{D}^{-\frac{1}{2}}Lsympos​=D−21​LposD−21​,,有Lsympos=D−12LposD−12=I+D−12AD−12L^{pos}_{sym}={D}^{-\frac{1}{2}}L^{pos}{D}^{-\frac{1}{2}}=I+{D}^{-\frac{1}{2}}A{D}^{-\frac{1}{2}}Lsympos​=D−21​LposD−21​=I+D−21​AD−21​,
有x⃗TLsymposx⃗=x⃗T(I+D−12AD−12)x⃗≥0\vec{x} ^TL^{pos}_{sym}\vec{x}=\vec{x} ^T(I+{D}^{-\frac{1}{2}}A{D}^{-\frac{1}{2}})\vec{x}≥0xTLsympos​x=xT(I+D−21​AD−21​)x≥0,
x⃗Tx⃗+x⃗TD−12AD−12x⃗≥0\vec{x} ^T\vec{x}+\vec{x} ^T{D}^{-\frac{1}{2}}A{D}^{-\frac{1}{2}}\vec{x}≥0xTx+xTD−21​AD−21​x≥0,
x⃗Tx⃗≥−x⃗TD−12AD−12x⃗\vec{x} ^T\vec{x}≥-\vec{x} ^T{D}^{-\frac{1}{2}}A{D}^{-\frac{1}{2}}\vec{x}xTx≥−xTD−21​AD−21​x,
2x⃗Tx⃗≥x⃗Tx⃗−x⃗TD−12AD−12x⃗2\vec{x} ^T\vec{x}≥\vec{x} ^T\vec{x}-\vec{x} ^T{D}^{-\frac{1}{2}}A{D}^{-\frac{1}{2}}\vec{x}2xTx≥xTx−xTD−21​AD−21​x,
2x⃗Tx⃗≥x⃗T(I−D−12AD−12)x⃗2\vec{x} ^T\vec{x}≥\vec{x} ^T(I-D^{-\frac{1}{2}}A{D}^{-\frac{1}{2}})\vec{x}2xTx≥xT(I−D−21​AD−21​)x,
2x⃗Tx⃗≥x⃗TD−12(D−A)D−12x⃗2\vec{x} ^T\vec{x}≥\vec{x} ^TD^{-\frac{1}{2}}(D-A){D}^{-\frac{1}{2}}\vec{x}2xTx≥xTD−21​(D−A)D−21​x,
2x⃗Tx⃗≥x⃗TLsymx⃗2\vec{x} ^T\vec{x}≥\vec{x} ^TL_{sym}\vec{x}2xTx≥xTLsym​x,
2≥x⃗TLsymx⃗x⃗Tx⃗=R(Lsym,x)2≥\frac{\vec{x}^TL_{sym}\vec{x} }{\vec{x}^T\vec{x}}=R(L_{sym},x)2≥xTxxTLsym​x​=R(Lsym​,x)。
因为LsymL_{sym}Lsym​为半正定矩阵,所以R(Lsym,x)≥0R(L_{sym},x)≥0R(Lsym​,x)≥0,综上所述,LsymL_{sym}Lsym​的特征值取值范围是[0,2]。

四、Fourier Transform

1.什么是傅里叶变换

傅里叶变换是同一个事物在不同的域的不同视角,并不会改变事物本质。下图分别展示了同一个波形图的时域图象和频域图像。既然不会改变事物的本质,为什么需要傅里叶变换呢?因为有些操作在频域中更容易进行。例如有一段混合有男声和女声的音频,需要我们去除女声。在常规的时域空间是很难完成的,所以我们可以利用傅里叶变换转换到频域空间,利用女声频率比较高的特点,将高频部分去除,然后将得到的低频部分进行傅里叶逆变换,就可以得到只有男声的音频。

傅里叶变换参考链接:https://zhuanlan.zhihu.com/p/19763358

2.快速傅里叶变换(FFT)

给定下列函数:
f(x)=a0+a1x+a2x2+...+anxnf(x)=a_0+a_1x+a_2x^2+...+a_nx^nf(x)=a0​+a1​x+a2​x2+...+an​xn
g(x)=b0+b1x+b2x2+...+bnxng(x)=b_0+b_1x+b_2x^2+...+b_nx^ng(x)=b0​+b1​x+b2​x2+...+bn​xn
求f(x)∗g(x)f(x)*g(x)f(x)∗g(x)
(1)如果利用暴力计算,则有
f(x)∗g(x)=c0+c1x+c2x2+...+c2nx2nf(x)*g(x)=c_0+c_1x+c_2x^2+...+c_{2n}x^{2n}f(x)∗g(x)=c0​+c1​x+c2​x2+...+c2n​x2n
此时的复杂度为O(n2)O(n^2)O(n2)
(2)利用快速 傅里叶变换将f(x)和g(x)转换为由点对组成的域,此时有
f(x)⇔(x1,f(x1)),(x2,f(x2)),...,(xn+1,f(xn+1))f(x)\Leftrightarrow(x_1,f(x_1)),(x_2,f(x_2)),...,(x_{n+1},f(x_{n+1}))f(x)⇔(x1​,f(x1​)),(x2​,f(x2​)),...,(xn+1​,f(xn+1​))
g(x)⇔(x1,g(x1)),(x2,g(x2)),...,(xn+1,g(xn+1))g(x)\Leftrightarrow(x_1,g(x_1)),(x_2,g(x_2)),...,(x_{n+1},g(x_{n+1}))g(x)⇔(x1​,g(x1​)),(x2​,g(x2​)),...,(xn+1​,g(xn+1​))
f(x)∗g(n)⇔(x1,f(x1)g(x1)),(x2,f(x2)g(x2)),...,(xn+1,f(xn+1)g(xn+1))f(x)*g(n)\Leftrightarrow(x_1,f(x_1)g(x_1)),(x_2,f(x_2)g(x_2)),...,(x_{n+1},f(x_{n+1})g(x_{n+1}))f(x)∗g(n)⇔(x1​,f(x1​)g(x1​)),(x2​,f(x2​)g(x2​)),...,(xn+1​,f(xn+1​)g(xn+1​))
此时的复杂度由三部分组成:
①将函数从系数表示转换为点对表示的复杂度O(nlogn)O(nlogn)O(nlogn);
②在点对域的乘法f(x)∗g(n)f(x)*g(n)f(x)∗g(n)的复杂度为O(n);
③将f(x)∗g(n)f(x)*g(n)f(x)∗g(n)从点对表示转换为系数表示的复杂度O(nlogn)O(nlogn)O(nlogn)。
因此总的复杂度为O(n)+2O(nlogn)O(n)+2O(nlogn)O(n)+2O(nlogn)。

3.图的傅里叶变换

x⃗\vec{x}x为列向量,Lx⃗=[∑(i,j)∈E(x1−xj)∑(i,j)∈E(x2−xj)......∑(i,j)∈E(xn−xj)]L\vec{x}= \begin{bmatrix} \sum_{(i,j)∈E}^{}(x_1-x_j) \\ \sum_{(i,j)∈E}^{}(x_2-x_j)\\ ...\\ ...\\ \sum_{(i,j)∈E}^{}(x_n-x_j) \end{bmatrix}Lx=⎣⎡​∑(i,j)∈E​(x1​−xj​)∑(i,j)∈E​(x2​−xj​)......∑(i,j)∈E​(xn​−xj​)​⎦⎤​, (x1−xj)(x_1-x_j)(x1​−xj​)中的xjx_jxj​表示的是与x1x_1x1​相连的点, (x2−xj)(x_2-x_j)(x2​−xj​)中的xjx_jxj​表示的是与x2x_2x2​相连的点,其他以此类推。我们可以发现,x⃗\vec{x}x在乘了L之后,其实是进行了一个类似于聚合邻居的操作。
因为L=UΛUTL=U\Lambda U^{T}L=UΛUT
所以Lx⃗=UΛUTx⃗L\vec{x}=U\Lambda U^{T}\vec{x}Lx=UΛUTx,这个式子的意思是, UTx⃗U^{T}\vec{x}UTx先对x⃗\vec{x}x进行基底变换,ΛUTx⃗\Lambda U^{T}\vec{x}ΛUTx意思是在新基底中对x⃗\vec{x}x进行放缩,Lx⃗=UΛUTx⃗L\vec{x}=U\Lambda U^{T}\vec{x}Lx=UΛUTx的意思是最后将放缩后的x⃗\vec{x}x变换回原始的基底表示。我们发现,经过傅里叶变换后,在新的域中,我们只对每个维度进行了放缩操作,就完成了邻居的聚合。

五、GCN

1.图卷积
首先要定义图上的卷积操作,例如我们将图的邻接矩阵输入函数后得到L或者LsymL_{sym}Lsym​,即F(A)→L(或者是Lsym)F(A)\to L(或者是L_{sym})F(A)→L(或者是Lsym​)。设F(A)=UΛUTF(A)=U\Lambda U^TF(A)=UΛUT,则图上的卷积操作可以定义为gθ∗x=Ugθ(Λ)UTxg_{\theta}*x=Ug_{\theta}(\Lambda)U^Txgθ​∗x=Ugθ​(Λ)UTx,UTxU^TxUTx指的是先用傅里叶变换将x转换到频域中,(Λ)UTx(\Lambda)U^Tx(Λ)UTx直达实在频域空间中执行操作,gθ(Λ)g_{\theta}(\Lambda)gθ​(Λ)是我们要学习的关于特征值Λ\LambdaΛ的函数,Ugθ(Λ)UTxUg_{\theta}(\Lambda)U^TxUgθ​(Λ)UTx指的是执行完操作后将域转换回对应的空间域。我们限定gθ(Λ)=θ0Λ0+θ1Λ1+...+θnΛn+...g_{\theta}(\Lambda)={\theta}_0\Lambda^0+{\theta}_1\Lambda^1+...+{\theta}_n\Lambda^n+...gθ​(Λ)=θ0​Λ0+θ1​Λ1+...+θn​Λn+...。
则有Ugθ(Λ)UT=gθ(UΛUT)=gθ(F(A))Ug_{\theta}(\Lambda)U^T=g_{\theta}(U\Lambda U^T)=g_{\theta}(F(A))Ugθ​(Λ)UT=gθ​(UΛUT)=gθ​(F(A)),如此一来就不用进行特征分解了,复杂度也得以下降。
2.切比雪夫多项式
在实际操作中,我们很少使用系数的方式去拟合多项式,因为随着n的变大,使用系数的方式会面临梯度消失或者梯度爆炸的问题,因此我们一般采用切比雪夫多项式去拟合多项式。
【定义】:Tn(x)=2xTn−1(x)−Tn−2(x),其中T0(x)=1,T1(x)=xT_n(x)=2xT_{n-1}(x)-T_{n-2}(x),其中T_0(x)=1,T_1(x)=xTn​(x)=2xTn−1​(x)−Tn−2​(x),其中T0​(x)=1,T1​(x)=x。
切比雪夫多项式不会出现梯度消失或者梯度爆炸的原因是Tn(cosθ)=cosnθT_n(cos\theta)=cosn\thetaTn​(cosθ)=cosnθ,也就是无论n多大,Tn(cosθ)T_n(cos\theta)Tn​(cosθ)在数值上都有摆动的稳定趋势。但这也要求自变量必须要在[-1,1]中取值,在这里也就是要求特征值的取值范围在[-1,1]。因为LsymL_{sym}Lsym​的特征值取值范围是[0,2],因此要想在[-1,1]中取值,只需减去一个单位矩阵,所以F(A)=UΛUT=Lsym−IF(A)=U\Lambda U^T=L_{sym}-IF(A)=UΛUT=Lsym​−I,最终卷积的定义可以写为
gθ∗x=Ugθ(Λ)UTx=U(∑k=0kθkTk(Λ))UTx=∑k=0kθkTk(UΛUT)x=∑k=0kθkTk(Lsym−I)xg_{\theta}*x =Ug_{\theta}(\Lambda)U^Tx =U(\sum_{k=0}^{k}\theta_kT_k(\Lambda))U^Tx =\sum_{k=0}^{k}\theta_kT_k(U\Lambda U^T)x =\sum_{k=0}^{k}\theta_kT_k(L_{sym}-I)xgθ​∗x=Ugθ​(Λ)UTx=U(∑k=0k​θk​Tk​(Λ))UTx=∑k=0k​θk​Tk​(UΛUT)x=∑k=0k​θk​Tk​(Lsym​−I)x
设k的最大值为1,则有
∑k=0kθkTk(Lsym−I)x=θ0T0(Lsym−I)x+θ1T1(Lsym−I)x=θ0x+θ1(Lsym−I)x\sum_{k=0}^{k}\theta_kT_k(L_{sym}-I)x =\theta_0T_0(L_{sym}-I)x+\theta_1T_1(L_{sym}-I)x =\theta_0x+\theta_1(L_{sym}-I)x∑k=0k​θk​Tk​(Lsym​−I)x=θ0​T0​(Lsym​−I)x+θ1​T1​(Lsym​−I)x=θ0​x+θ1​(Lsym​−I)x
因为Lsym=D−12LD−12=D−12(D−A)D−12=I−D−12AD−12L_{sym}=D^{-\frac{1}{2}}LD^{-\frac{1}{2} }=D^{-\frac{1}{2}}(D-A)D^{-\frac{1}{2} }=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2} }Lsym​=D−21​LD−21​=D−21​(D−A)D−21​=I−D−21​AD−21​
所以θ0x+θ1(Lsym−I)x=θ0x−θ1D−12AD−12\theta_0x+\theta_1(L_{sym}-I)x=\theta_0x-\theta_1D^{-\frac{1}{2}}AD^{-\frac{1}{2}}θ0​x+θ1​(Lsym​−I)x=θ0​x−θ1​D−21​AD−21​
令θ1=−θ0\theta_1=-\theta_0θ1​=−θ0​,则θ0x−θ1D−12AD−12=θ0(I+D−12AD−12)X⇒D^−12A^D^−12x\theta_0x-\theta_1D^{-\frac{1}{2}}AD^{-\frac{1}{2}}=\theta_0(I+D^{-\frac{1}{2}}AD^{-\frac{1}{2}})X\Rightarrow\hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{-\frac{1}{2}}xθ0​x−θ1​D−21​AD−21​=θ0​(I+D−21​AD−21​)X⇒D^−21​A^D^−21​x。

参考链接:
https://www.bilibili.com/video/BV1Vw411R7Fj?p=1&vd_source=ddb3c83e8d9149762cf2ab01fbab10e4

图卷积神经网络的数学原理——谱图理论和傅里叶变换初探相关推荐

  1. 【 卷积神经网络CNN 数学原理分析与源码详解 深度学习 Pytorch笔记 B站刘二大人(9/10)】

    卷积神经网络CNN 数学原理分析与源码详解 深度学习 Pytorch笔记 B站刘二大人(9/10) 本章主要进行卷积神经网络的相关数学原理和pytorch的对应模块进行推导分析 代码也是通过demo实 ...

  2. 图卷积神经网络 | Python实现基于GCN-GRU图卷积门控循环单元网络模型

    图卷积神经网络 | Python实现基于GCN-GRU图卷积门控循环单元网络模型 目录 图卷积神经网络 | Python实现基于GCN-GRU图卷积门控循环单元网络模型 效果分析 基本描述 模型结构 ...

  3. 刷脸背后,卷积神经网络的数学原理原来是这样的

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|深度学习这件小事 计算机视觉技术在日常生活中有着非常普遍 ...

  4. unity调整旋转需要传什么参数?参数在数学上叫做什么?_人脸识别背后,卷积神经网络的数学原理原来是这样的...

    在自动驾驶.医疗以及零售这些领域,计算机视觉让我们完成了一些直到最近都被认为是不可能的事情.卷积神经网络可能是这一巨大成功背后的关键组成模块.这次,我们将要使用卷积神经网络的思想来拓宽我们对神经网络工 ...

  5. 卷积神经网络原理_人脸识别背后,卷积神经网络的数学原理原来是这样的

    在自动驾驶.医疗以及零售这些领域,计算机视觉让我们完成了一些直到最近都被认为是不可能的事情.卷积神经网络可能是这一巨大成功背后的关键组成模块.这次,我们将要使用卷积神经网络的思想来拓宽我们对神经网络工 ...

  6. 【科普】刷脸背后,卷积神经网络的数学原理

    (给机器学习算法与Python学习加星标,提升AI技能) 选自:towardsdatascience 作者:Piotr Skalski 编译:机器之心(almosthuman2014) 原文:http ...

  7. 图卷积网络GCN数学原理

    Math of GCN 参考视频 目录 Math of GCN 1 Basic of GCN 2 Spectral Graph Theory 2.1 Properties of matrixes re ...

  8. 【Pytorch神经网络理论篇】 25 基于谱域图神经网络GNN:基础知识+GNN功能+矩阵基础+图卷积神经网络+拉普拉斯矩阵

    图神经网络(Graph Neural Network,GNN)是一类能够从图结构数据中学习特征规律的神经网络,是解决图结构数据(非欧氏空间数据)机器学习问题的最重要的技术. 1 图神经网络的基础知识 ...

  9. 沈华伟老师图卷积神经网络教学视频笔记

    图卷积神经网络 感谢 0. 背景介绍 基于图的应用 node-level graph-level singal-level 数据集介绍 1. Cora数据集: 2. CiteSeer 3. Pubme ...

最新文章

  1. python udp广播_udp单播-广播-组播-python例子 | 学步园
  2. 使用深度学习检测混凝土结构中的表面裂缝
  3. [Nova ERROR] InternalError: Nova requires QEMU version 2.5.0 or greater.
  4. python流程控制-Python流程控制常用工具详解
  5. WWW 2021最佳论文亚军:基于属性补全的异质图神经网络新架构
  6. Array.ForEach的委托方法
  7. 【CI】CN.一种多尺度协同变异的微粒群优化算法
  8. elementUI之switch应用的坑
  9. 安装win10和ubuntu双系统启动不了解决
  10. 评分卡模型开发(四)--定量指标筛选
  11. 七天学完Vue之第二天学习笔记(自定指令,过滤器,生命周期函数,动画效果)
  12. CTOR是否有助于BCH分片技术?
  13. firefox火狐浏览器flash播放视频
  14. Linux系统服务简述和作用
  15. UEFI.源码分析.DXE阶段的执行
  16. mybatis大于小于等于的写法
  17. 缺少包含@author的注释信息解决方法
  18. bio linux 创建_Linux IO请求处理流程-bio和request
  19. Android 记事本
  20. stm32H743基于CubeMX配置为双ADC多通道DMA规则采样

热门文章

  1. “好男人不包二奶”的营销策略——奢侈品“奇葩”市场缘何存在?
  2. root 无法修改文件权限
  3. BLUEMOON: 2021
  4. 沪深股票历史财报数据查询系统网络共享版
  5. Python基本数据统计
  6. 计算前缀表达式与后缀表达式
  7. ff14注册完服务器可以转,FF14怎么转服 FF14转服条件一览-游侠网
  8. ST33三相可控硅触发板 无触点晶闸管调压控制板
  9. FreeBSD的make
  10. 【C++】读取 .csv / .xlsx 文件中的指定数据(非常实用)