1.卷积神经网络
CNN 在图像识别等任务中具有重要作用,主要是因为 CNN 利用了图片(信号)在其域中的局部平移不变性。由于图结构不存在平移不变性,所以 CNN 无法直接在图上进行卷积。
1.1局部平移不变性
CNN 之所以能成为图像领域的明珠却很少应用于其他领域原因是:「图片是一个规整的二维矩阵」,无论卷积核平移到图片中的哪个位置都可以保证其运算结果的一致性,这就是我们所说的「局部平移不变性」。CNN 的卷积本质就是利用这种平移不变性来对扫描的区域进行卷积操作,从而实现了图像特征的提取。
而网络是不规整的关系型数据,所以其不存在平移不变形(每个节点的周围邻居数不固定),这就使得传统的 CNN 方法无法直接应用于网络中。
有了局部平移不变形,才能实现参数共享。
但是,图结构的数据不具备这些特性,那么怎么在graph进行卷积操作?
自我理解如下章。
2.傅里叶分析、图拉普拉斯和图卷积网络
傅里叶分析包含傅里叶级数和傅里叶变换,本质上是一种基坐标转换,即将我们通常的函数的基坐标从时域换成了频域。频域的基坐标有三个维度:频率,振幅,相位差。
傅里叶级数和傅里叶变换的区别?
傅里叶级数主要针对周期性的函数进行投影,傅里叶变换主要针对非周期(周期无限大)的函数。
傅里叶级数:时域是一个周期且连续的函数,而在频域是一个非周期离散的函数。
傅里叶变换:时域非周期的连续信号,而在频域是非周期的连续信号。
为什么要使用傅里叶分析?
可以将一个复杂函数看做多个函数的复合(将一个不规则波分解为多个正弦波和余弦波),便于处理(如滤波)。
傅里叶分析、图拉普拉斯和图卷积网络怎么柔和到一起的?
通过定义图上的傅里叶变换,就可以定义图上的卷积操作。
图拉普拉斯算子给出了图上的傅里叶变换的基,实现了图傅里叶变换,从而可以在图上进行卷积操作。
3.图卷积网络公式
f ( H ( l ) , A ) = σ ( D ^ − 1 2 A ^ D ^ − 1 2 H ( l ) W l ) f(H^{(l)},A)=\sigma (\widehat{D}^{-\frac{1}{2}}\widehat{A}\widehat{D}^{-\frac{1}{2}}H^{(l)}W^{l}) f(H(l),A)=σ(D −21A D −21H(l)Wl)
公式解析:
A A A:graph的邻接矩阵。
A ^ \widehat{A} A : A ^ = A + I \widehat{A}=A+I A =A+I,邻接矩阵和单位矩阵的矩阵和,相当于将图中的每个节点添加了一个自相关的边。
D D D:graph的度矩阵。
D ^ \widehat{D} D : D ^ = D + I \widehat{D}=D+I D =D+I,度矩阵和单位矩阵的矩阵和,为了标准归一化。
D ^ − 1 2 A ^ D ^ − 1 2 \widehat{D}^{-\frac{1}{2}}\widehat{A}\widehat{D}^{-\frac{1}{2}} D −21A D −21:对邻接矩阵做了一个对称的归一化。
H ( l ) H^{(l)} H(l):上一层的输出,本层的输入。
W ( l ) W^{(l)} W(l):权重矩阵,对输出做了线性变换。
σ \sigma σ():非线性激活函数。
为什么要给邻接矩阵加上单位矩阵?
只使用邻接矩阵的话,由于A的对角线上都是0,所以在和特征矩阵H相乘的时候,只会计算一个node的所有邻居的特征的加权和,该node自己的特征却被忽略了。加上单位矩阵后,相当于每个节点增加了一条自连接的边,邻接矩阵中增加了node的信息。
为什么要对邻接矩阵做对称归一化?
层级传播后,A的值会叠加累乘,产生类似于梯度爆炸或者梯度消失的效果。
为什么度矩阵的逆矩阵会对邻接矩阵产生归一化效果?
度矩阵的每一行的值等于邻接矩阵每一行的值之和,因此,其逆矩阵可以对
邻接矩阵进行归一化。