GCN中的等式证明
这篇文章主要证明下述回答内容中的公式(1)和(2)是等价的
即:
(f*h)_G= U \left(\begin{matrix}\hat h(\lambda_1) & \\&\ddots \\ &&\hat h(\lambda_n) \end{matrix}\right) U^Tf \tag {1}
(f*h)_G=U((U^Th)\odot(U^Tf)) \tag {2}
先介绍一下各个符号的定义:
G 是具有 n 个顶点的图, \lambda_1,\lambda_2, \cdots \lambda_n 是图G的拉普拉斯矩阵的n个特征值,\vec{u_1},\vec{u_2},\cdots,\vec{u_n} 是对应的n个特征向量。
f=\left(\begin{matrix}f(1)\\ f(2) \\ \vdots \\f(n) \end{matrix}\right) 和 h=\left(\begin{matrix}h(1)\\ h(2) \\ \vdots \\h(n) \end{matrix}\right) 是定义在图G 上的两个 n 维向量
U=(\vec{u_1},\vec{u_2},\cdots,\vec{u_n}) 是 n \times n 的矩阵,由n个特征向量构成
\odot 是哈达玛积(Hadamard product),计算两个同阶矩阵对应位置元素的乘积
下面开始证明
f 和 g 在图G上傅里叶变换的矩阵形式为:
\hat{f}=U^Tf
\hat{g}=U^Tg
\hat{f} 和 \hat{g} 都是n 维的向量,其分量形式分别为
\hat{f}=\left(\begin{matrix} \hat f(\lambda_1) \\ \hat f(\lambda_2) \\ \vdots \\ \hat f(\lambda_n)\end{matrix}\right), \hat{h}=\left(\begin{matrix} \hat h(\lambda_1) \\ \hat h(\lambda_2) \\ \vdots \\ \hat h(\lambda_n)\end{matrix}\right)
其中 \hat{f}(\lambda_l)=\sum_{i=1}^{N}{f(i) u_l(i)} ,\hat{h}(\lambda_l)=\sum_{i=1}^{N}{h(i) u_l(i)}
u_l(i) 是第 l 个特征向量的第 i 个分量
有了上面的推导,下面的证明就非常简单了。想证明公式(1)和(2)等价,只需要证明下述的公式(3)和(4)相等
\left(\begin{matrix}\hat h(\lambda_1) & \\&\ddots \\ &&\hat h(\lambda_n) \end{matrix}\right) U^Tf \tag {3}
((U^Th)\odot(U^Tf)) \tag {4}
按照上面的推导,可以将公式(3)和(4)做进一步变换
\left(\begin{matrix}\hat h(\lambda_1) & \\&\ddots \\ &&\hat h(\lambda_n) \end{matrix}\right) U^Tf=\left(\begin{matrix}\hat h(\lambda_1) & \\&\ddots \\ &&\hat h(\lambda_n) \end{matrix}\right)\cdot\left(\begin{matrix} \hat f(\lambda_1) \\ \hat f(\lambda_2) \\ \vdots \\ \hat f(\lambda_n)\end{matrix}\right) \tag {5}
((U^Th)\odot(U^Tf))=\left(\begin{matrix} \hat h(\lambda_1) \\ \hat h(\lambda_2) \\ \vdots \\ \hat h(\lambda_n)\end{matrix}\right) \odot \left(\begin{matrix} \hat f(\lambda_1) \\ \hat f(\lambda_2) \\ \vdots \\ \hat f(\lambda_n)\end{matrix}\right) \tag {6}
到这里,结果已经很显然了,公式(5)和(6)的区别仅在于前者是写成了对角矩阵形式的矩阵乘积而后者是两个向量的逐元素乘积,两者的结果都是公式(7)所示的n 维向量
\left(\begin{matrix} \hat h(\lambda_1)\times \hat f(\lambda_1) \\ \hat h(\lambda_2) \times \hat f(\lambda_2) \\ \vdots \\ \hat h(\lambda_n) \times \hat f(\lambda_n ) \end{matrix}\right) \tag {7}