引文:卷积神经网络为什么具有平移不变性?
不变性意味着即使目标的外观发生了某种变化,但是你依然可以把它识别出来下图只是一个为了说明这个问题的例子。输入图像的左下角有一个人脸,经过卷积,人脸的特征(眼睛,鼻子)也位于特征图的左下角。 假如人脸特征在图像的左上角,那么卷积后对应的特征也在特征图的左上角。 在神经网络中,卷积被定义为不同位置的特征检测器,也就意味着,无论目标出现在图像中的哪个位置,它都会检测到同样的这些特征,输出同样的响应。比如人脸被移动到了图像左下角,卷积核直到移动到左下角的位置才会检测到它的特征。CNN 处理的 img 是非常规整的二维矩阵,即所有点的邻域个数都是相等的(边缘的点也可以通过填补来变成相等的),但是对于拓扑图 graph 来说,不满足平移不变的特性。因为不具有平移不变性,所以不能直接进行常规的类似于 Img 的 CNN 特征提取,所以主要通过 空域特征提取 和 频域特征提取 两种
通过空域进行特征提取 vertex domain(spatial domain),很直观,直接用相应顶点连接的 neighbors来提取特征。http://proceedings.mlr.press/v48/niepert16.pdf
频域方法(谱方法)spectral domain 提取特征的方式就是本博客中使用的方法,即:GSP(graph signal processing)。GSP(graph signal processing)图形信号处理的方法,即在图上进行信号处理的变换,如傅立叶变换或者拉普拉斯变换,进而进行图的卷积,从而提取图的特征,然后运用信号处理的方法去分析与处理Graph的特征。借助于图的拉普拉斯矩阵的特征值和特征向量来研究 Graph 的性质。
考虑一下传统的傅里叶变换的形式: 傅里叶变换的本质,就是通过将一个函数后面乘以一个基 e − i w t e^{-iwt} e−iwt,将其转化到以这个基定义的空间内,然后根据其离散或者连续的情况决定前面到底是积分 ∫ \int ∫ 还是求和符号 ∑ \sum ∑;其中每一个 f ( t ) e − i w t f(t)e^{-iwt} f(t)e−iwt 项,这些相乘的过程完成的都是一个时域的分量转换到频域的过程;最后叠加起来的结果就是整个时域的分量全部转化到傅里叶域。
两个不同的矩阵相乘,其本质是对矩阵的基底线性变换;这个概念不了解的可以去仔细思考一下矩阵乘法的根本含义。下面做简单解释~
下图(1)可以看到,对于一个矩阵进行乘运算,其实是作用在基底上,把基底变长了 2 倍,然后表现在整个被基底表示的向量 v ⃗ 3 \vec{v}_3 v 3 上,所以看起来是向量扩展了三倍;
如果一个矩阵被另外一个矩阵相乘,如图(2)所示,就会按照图中紫色矩阵的方式来对 v ⃗ 3 \vec{v}_3 v 3 的进行变换,本质是对 v ⃗ 3 \vec{v}_3 v 3 的两个基底 v ⃗ 1 \vec{v}_1 v 1, v ⃗ 2 \vec{v}_2 v 2的变换, v ⃗ 3 \vec{v}_3 v 3只不过是被映射后的基底重新构造的在新的空间中的向量。
图(1):通过常数对矩阵进行变换
图(2):通过矩阵对矩阵进行变换
结合前面提到的傅里叶变换的本质,我们发现,只要找到一个正交矩阵(矩阵中的每列都是正交的)那么也就可以通过把 “图矩阵” 与这个正交矩阵相乘来实现把图矩阵转换到另外一个 域;
图 graph 是个逻辑概念,只能通过度矩阵和邻接矩阵联合来表示一个逻辑的图 G ( V , E ) G(V, E) G(V,E)
V V V 是图中的定点集合 E E E 是图中的边的集合 因为对于无向图的拉普拉斯矩阵的特征矩阵就是一个正交矩阵,刚好其中的每个向量满足正交的条件,所以我们只要通过构造图的拉普拉斯矩阵,然后再求它的特征矩阵,就可以把图矩阵和这个特征矩阵相乘,实现把图矩阵转换到另外一个域上的任务。自己做了一张图,帮助大家理解拉普拉斯矩阵的性质
拉普拉斯矩阵的定义和图 graph 矩阵的关系:
前面提到了:传统的傅里叶变换的基就是拉普拉斯矩阵的一组特征向量 所以,求出拉普拉斯矩阵的特征向量 就可以对图矩阵进行傅里叶变换了。 拉普拉斯变换 L L L 和其特征矩阵 U U U 之间的推导关系如下:
特征矩阵 U U U 包含了 n n n 个特征向量 [ u 1 ⃗ . . . . u n ⃗ ] [\vec{u_1}.... \vec{u_n}] [u1 ....un ] U U U 也是正交矩阵,满足 U U T = E UU^T=E UUT=E 所以 U U U 矩阵满足作为傅里叶变换基的条件(傅里叶变换的基要求是正交的) Λ \Lambda Λ 是 L L L 的特征值组成的对角矩阵此时我们又知道,拉普拉斯变换矩阵的特征矩阵 U U U 是傅里叶变换的基:
我们现在得到了拉普拉斯矩阵的特征矩阵 U = [ u 1 , u 2 , ⋅ ⋅ ⋅ , u n ] U=[u_1,u_2,···,u_n] U=[u1,u2,⋅⋅⋅,un] 包含 n n n 个特征向量。而全图 graph (用 x x x 来表示) 有 n n n 个顶点,每个顶点上的信号可以用 f ( 1 ) . . . f ( n ) f(1)...f(n) f(1)...f(n) 来表示: [ f ( 1 ) , . . . . , f ( n ) ] [f(1),....,f(n)] [f(1),....,f(n)],我们再用一张图来表示图中一个顶点实现域转换的过程
那么每一个特征向量都可以作为一个基来将一个顶点的信号从时域搬到频域;即: f ( i ) ⋅ u l ( i ) f(i) · u_l(i) f(i)⋅ul(i) 这里的 l l l 可以理解成特征矩阵中的第 l l l 行,即正交基底中的第 l l l 个频率分量
graph上的 N N N 维向量为 f f f,每个顶点的信号为 f ( i ) f(i) f(i)
第 l l l 个特征向量的第 i i i 个分量为 u l ( i ) u_l(i) ul(i),这个既是傅立叶变换的基也是拉普拉斯矩阵的特征向量
特征值频率为 λ l \lambda_l λl
复数空间的内积采用了 u l ∗ ( i ) u_l^*(i) ul∗(i) ,也就是特征向量 u l u_l ul 的共轭
结合上面所有的内容应该不难得出结论:普通的傅里叶变换 ∫ f ( t ) e − i w t d t \int{f(t)e^{-iwt}dt} ∫f(t)e−iwtdt 应用到矩阵中,可以将特征矩阵 U U U 看成一个基与图矩阵 x x x 相乘,特征矩阵中的特征向量会 u l ∗ ( i ) u_l^*(i) ul∗(i) 会与图矩阵中的 f ( i ) f(i) f(i) 相乘并作求和运算,所以 U T x U^T x UTx 则可以代表 graph 实现域转换的过程;
同样的,如果 filter 的矩阵是 g g g,那么其实现域转换之后的表示应该是 U T g U^T g UTg;具体解释可以看下图:
所以我们最终得出结论:
经过切比雪夫多项式近似后的卷积核变换结果是
经过切比雪夫多项式近似后的整个图卷积的结果是:
不要忘记 k = 1 的时候,切比雪夫多项式的性质:
所以,按照本文的方法,卷积公式通过切比雪夫多项式近似后的结果可以表示为:
通过以上所有的努力,我们终于可以得到最终稳定而又简洁的化简结果:
至此:我们得到了一次卷积的结果,即:单通道的卷积核对图的卷积操作。
如果我们把这个过程进行推广:
梳理一下上面整个过程的思路: