【论文阅读】Spectral Networks and Deep Locally Connected Networks on Graphs(图的频谱网络和深度局部连接网络)
摘要
CNN在图片和音频的识别任务中表现良好,是充分利用了信号在其域中的局部平移不变性。但由于图是非欧氏空间的数据结构无法进行传统意义上的卷积操作,同时又希望卷积的思想可以应用在图结构上。于是作者基于此提出了两种结构,一种基于域的层次聚类(空域),另一种基于图拉普拉斯矩阵(频域)。同时作者通过实验证明,对于低维图而言,学习卷积层成为可能因为存在大量与输入大小无关的变量,从而得到了有效的深层结构。
平移不变性:
在欧几里得几何中,平移是一种几何变换,表示把一幅图像或一个空间中的每一个点在相同方向移动相同距离,比如对图像分类任务来说,图像中的目标不管被移动到图片的哪个位置,得到的结果(标签)应该是相同的,这就是卷积神经网络中的平移不变性。平移不变性意味着系统产生完全相同的响应(输出),不管它的输入是如何平移的 。
局部平移不变性:
在CNN中卷积被定义为不同位置的特征检测器,同时存在的池化操作返回局部感受野中最显著的值。两者结合起来提供了CNN的局部平移不变性,通俗来说就是通过卷积+池化的操作以后不管某一特征移动了位置,总可以检测出来输入到下一层中,且全连接层是加权求和计算被CNN激活的特征又可以传导到下一层中。
1 引言
在欧式空间中使用的CNN卷积具有平移不变性,权值共享,局部连接,分层次表达的特点;但是图网络是一种非欧式结构的数据,网络是不规整的关系型数据,所以其不存在平移不变形(每个节点的周围邻居数不固定),导致图网络无法使用传统的CNN。不使用卷积核卷积的话,只能按照全连接网络的方式进行线性映射,这样又将失去权值共享,局部连接,分层次表达这些优势,需要大量的参数。在本文中,作者想办法把传统欧式空间的卷积迁移到图网络中去,作者提出了两个结构,把欧式空间的卷积迁移到了图网络的空间域和频域。
CNN可以利用几种有效的结构减少系统中的参数数量:
- 固定大小的卷积核在图上进行遍历,在此过程中用卷积+非线性变换的激活函数替代了一般化的线性映射。提高深层次特征提取能力的同时,同一卷积核在一张图上共享权重,大大减少了参数的数量。
- 由于网格上的结构特点,可以支持紧凑的过滤器,其支持的过滤器通常比输入信号的尺寸小的多。
- 网格的结构允许多尺度的二元聚类,也就是子采样操作,在CNN中通过步长卷积和池化实现。
图提供了一个自然的框架来概括低维网格结构,并扩展了卷积的概念。本文将讨论在常规网格以外的图形上的深度神经网络的构造。我们提出了两种不同的结构。
第一种结构中,我们展示了一个可以将属性(2)和(3)扩展到一般图的结构,并使用它们来定义“局部”连接和池化层,这需要 O ( n ) O(n) O(n)参数而不是 O ( n 2 ) O(n^2) O(n2),我们称之为空间结构。
在另一种结构中,我们称之为谱结构,它利用了傅里叶域中卷积的性质同时结合了图的拉普拉斯算子从而实现将原域的卷积转换到了傅里叶变换下频域的相乘。
2 空间结构
最直接的概括如何泛化CNN到一般图的要点就是:多尺度、分层、局部感受野(local receptive fields)。
因此,网络将被无向加权图 G = ( Ω , W ) G=(Ω,W) G=(Ω,W)取代,其中, Ω Ω Ω表示图中所有节点的集合, s i z e = m size = m size=m; W W W表示图的邻接矩阵, s h a p e = ( m , m ) shape = (m,m) shape=(m,m),由于是无向图, W W W是一个对称矩阵。 W W W中的值 W i , j W_{~i,j~} W i,j 表示节点 i , j i,j i,j之间的边的权重,为非负值;当这两个节点之间没有边的时候,认为权重值为0。
2.1 节点的邻域
在传统的欧式空间中(以图像为例),在卷积时需要设置一定大小的卷积核,如 kernel = (3,3),就是相当于中心像素点的邻域为周围的8个像素点。
图中的权重决定了局部性的概念。例如,在
W
W
W上定义邻域的一种简单方法是设置大于0的阈值
δ
δ
δ并取邻域,公式(1)如下:
Nδ(j)表示
j
j
j的邻域,是一个集合;以
δ
δ
δ为阈值划分节点j的邻域,权值大于
δ
δ
δ才属于
j
j
j的邻域。
我们可以将注意力限制在由这些邻域给出的具有感受野的稀疏“滤波器”上,以获得局部连接的网络,从而将滤波器层中的参数数量减少到 O ( S ⋅ n ) O(S·n) O(S⋅n),其中 S S S是平均邻域大小。
2.2 图的多分辨率分析
由CNN上的操作所启发,作者介绍了一种图上的操作,此操作类比于CNN中池化和下采样(类似于池化)可以减少CNN中feature map的大小。通过这种操作可以在图上进行类似于池化的操作,简单来说就是在图上将多个点映射成一个点层层映射,达到减少图上点的目的。同时得到聚合了多个点且包含更丰富信息的点。这种方法叫做图的多分辨率分析( Multiresolution Analysis on Graphs).作者介绍此方法还是一个开放的研究领域也就是还没有定论,于是作者在此篇文章中将使用一种比较简单的凝聚方法。具体的凝聚过程如下图所示:
2.3 深度局部连接网络
空间结构从图的多尺度聚类开始。
公式(2)如下所示:
在公式(2)中,
k
k
k表示第
k
k
k个尺度,类比传统卷积,意思就是第
k
k
k层卷积层;
Ω
Ω
Ω表示每一层网络的顶点个数,即各层的输入信号
Ω
k
Ω_k
Ωk,原始的输入信号是
Ω
0
Ω_0
Ω0;
d
k
d_k
dk表示第
k
k
k层的聚类的类数,用于决定下一次输入特征的维度,即
Ω
k
=
d
k
−
1
Ω_k=d_{k-1}
Ωk=dk−1,
Ω
k
+
1
=
d
k
Ω_{k+1}=d_k
Ωk+1=dk;
N
k
,
i
N_{k,i}
Nk,i表示第
k
k
k层第
i
i
i个节点的类,局部连接的接收域。
在这个公式中,作者是以每个输入节点为类中心,以节点邻域为类元素,得到了 Ω k = d k − 1 Ω_k=d_{k-1} Ωk=dk−1类。
对于
Ω
k
Ω_k
Ωk和
N
k
N_k
Nk的构造如下所示:
公式
2.1
2.1
2.1如下所示:
在公式
2.1
2.1
2.1中,
f
k
−
1
f_{k-1}
fk−1表示第
k
−
1
k-1
k−1层的滤波器数目,也是第
k
k
k层中每个节点的特征维数。
x
k
x_k
xk=(
x
k
,
i
;
i
=
1...
f
k
−
1
)
x_{k,i};i=1...f_{k-1})
xk,i;i=1...fk−1),
x
k
x_k
xk的shape为
d
k
−
1
×
f
k
−
1
d_{k-1}×f_{k-1}
dk−1×fk−1,表示输入数据;
x
k
,
i
x_{k,i}
xk,i的shape为
(
d
k
−
1
,
1
)
(d_{k-1},1)
(dk−1,1),表示第
k
k
k层的第
i
i
i个特征;
F
k
,
i
,
j
F_{k,i,j}
Fk,i,j是一个shape为
d
k
−
1
×
d
k
−
1
d_{k-1}×d_{k-1}
dk−1×dk−1的稀疏矩阵,表示第
K
K
K层的第
j
j
j个滤波器的第
i
i
i个值,它的值与
N
k
N_k
Nk有关,表示第
k
k
k层第
j
j
j个滤波器的第
i
i
i个特征的映射关系;
x
x
x节点和
y
y
y节点不是邻域关系则对应的
F
k
,
i
,
j
(
x
,
y
)
F_{k,i,j}(x,y)
Fk,i,j(x,y)的值将为0,和
W
W
W类似。
括号内的式子完成了卷积的工作(类比传统的卷积的话,可以认为卷积的模式选择了same,stride = 1),卷积后输出和输入节点数一样,输出 ( d k − 1 , 1 ) (d_{k-1},1) (dk−1,1), h ( ∗ ) h(*) h(∗)为非线性激励函数, L k ( ∗ ) L_k(*) Lk(∗)为池化操作,将 ( d k − 1 , 1 ) (d_{k-1},1) (dk−1,1)转换为 ( d k , 1 ) (d_k,1) (dk,1)的向量,即 x k + 1 , i x_{k+1,i} xk+1,i的shape为 ( d k , 1 ) (d_k,1) (dk,1)。然后,如果第k层有 f k f_k fk个滤波器的话,那么第k层的输出为 x k + 1 x_{k+1} xk+1=( x k + 1 , i ; i = 1... f k ) x_{k+1,i};i=1...f_k) xk+1,i;i=1...fk)。
图上的空间域卷积如下图2所示:
k=1时,
n
u
m
(
num(
num(Ω_0
)
=
12
)=12
)=12,
x
1
.
s
h
a
p
e
=
(
12
,
f
0
)
x_1.shape=(12,f_0)
x1.shape=(12,f0),
f
1
=
4
f_1=4
f1=4,
F
1
,
i
,
j
.
s
h
a
p
e
=
(
12
,
12
)
F_{1,i,j}.shape=(12,12)
F1,i,j.shape=(12,12),
1
≤
i
≤
f
0
1≤i≤f_0
1≤i≤f0,
1
≤
j
≤
f
1
1≤j≤f_1
1≤j≤f1,
d
1
=
6
d_1=6
d1=6
k=2时, n u m ( num( num(Ω_1 ) = d 1 = 6 )=d_1=6 )=d1=6, x 2 . s h a p e = ( 6 , f 1 ) x_2.shape=(6,f_1) x2.shape=(6,f1), f 2 = 6 f_2=6 f2=6, F 2 , i , j . s h a p e = ( 6 , 6 ) F_{2,i,j}.shape=(6,6) F2,i,j.shape=(6,6), 1 ≤ i ≤ f 1 = 4 1≤i≤f_1=4 1≤i≤f1=4, 1 ≤ j ≤ f 2 1≤j≤f_2 1≤j≤f2, d 2 = 3 d_2=3 d2=3
网络输出:
x
3
.
s
h
a
p
e
=
(
d
2
,
f
2
)
=
(
3
,
6
)
x_3.shape=(d_2,f_2)=(3,6)
x3.shape=(d2,f2)=(3,6)
经过如上图所示的操作之后我们可以得出两点结论:
- 随着层数的增加,图的空间分辨率降低,即空间点数减少,因为由上述公式可知,我们在对一个邻域的结点进行滤波器操作之后进行了加权,也就是将一个邻域的结点的信息进行汇总,之后进行了池化操作。可以类比于欧氏空间的CNN操作。就是由多个滤波器作用于图片。每个滤波器得到的值进行拼接形成下一层的feature map。
- 由图可知每一层的滤波器数目增加,在第1层为4个,第2层为6个。
综上所述:信号输入到model后,卷积操作通过与滤波器 F F F实现( F F F由 neighborhoods 决定,实现 locally),之后通过聚类实现空间上的下采样,得到该层的输出结果。
此种基于空域的GCN的优缺点如下:
优点:
对于弱规则的图结构适用。也就是全局联系不大的图适用。因为整个操作的核心是基于聚类然后再聚类的局部进行卷积操作。如果整个图是有良好全局嵌入的高维图就没有聚类的优势反而会存在较大误差。
缺点:
由图可知每个聚类的结点数可能不同同时采用不同的滤波器从而无法共享权重,在大图上导致了非常高的计算代价。换句话说就是CNN的单次卷积操作是由一个 filter 在整个数据立方(grid)上进行滑动(即 stride convolutions ),使得数据立方的不同位置可以使用同一个 fliter,而这个操作无法在 spatial construction 的 GCN 中实现。
3 频域结构
使用图的拉普拉斯生成对图的卷积操作。
参考博客:
https://blog.csdn.net/qq_44015059/article/details/105389405