论文笔记:Can GCNs Go as Deep as CNNs?
摘要
- CNN 的成功来源于可以训练深度模型,从而能够大量提升。但是CNN不能处理非欧数据。
- GCN可以处理非欧数据,借鉴了CNN的概念来训练模型。但是由于梯度消失(图1)因此局限于非常浅(3-4层)的模型.
- 本文展示了新的训练深度GCN的方式。借鉴CNN的 residual / dense connections 和 dilated conv 改进到 GCN
1 Introduction
2 Related Work
3 Methodology
图卷积网络
GCNs 想要通过从点的邻域聚集(aggregation)特征来抽取高维特征。点的特征向量
h
v
∈
R
D
h_v\in\mathbb R^D
hv∈RD ,可以表示为
h
G
=
[
h
v
1
,
⋯
 
,
h
v
N
]
⊤
∈
R
N
×
D
h_{\mathcal G}=[h_{v_1}, \cdots,h_{v_N}]^\top\in\mathbb R^{N\times D}
hG=[hv1,⋯,hvN]⊤∈RN×D 。通用的图卷积操作
F
:
G
l
+
1
=
F
(
G
l
,
W
l
)
=
Update
(
Aggregate
(
G
l
,
W
l
agg
)
,
W
l
update
)
\mathcal F: \mathcal G_{l+1}=\mathcal F(\mathcal G_l,\mathcal W_l)=\text{Update}\big(\text{Aggregate}(\mathcal G_l,\mathcal W_l^{\text{agg}}),\mathcal W_l^{\text{update}}\big)
F:Gl+1=F(Gl,Wl)=Update(Aggregate(Gl,Wlagg),Wlupdate)
聚集函数用来对邻域编译信息,更新(update)函数对聚集函数做非线性变换得到点的新的表达。
-
聚集函数 ρ \rho ρ: mean, max-pooling, attention, LSTM
-
更新函数 ϕ \phi ϕ: a multi-layer perceptron, a gated network
通过聚集邻域点的特征可以计算点的表达
h v l + 1 = ϕ ( h v l , ρ ( { h u l ∣ u l ∈ N ( v l ) } , h v l , W ρ ) , W ϕ ) h_{v_{l+1}}=\phi\Big(h_{v_l},\rho\big(\{h_{u_{l}}|u_l\in\mathcal N(v_l)\},h_{v_{l}},\mathcal W_\rho\big), \mathcal W_\phi\Big) hvl+1=ϕ(hvl,ρ({hul∣ul∈N(vl)},hvl,Wρ),Wϕ)
动态边 动态图卷积比固定结构的图效果更好。动态调整邻域可以减轻过度平滑的问题,增大视野域。本文提出了通过在每一层特征空间用 dialted kNN 在点与点之间 再计算边(re-compute edges) 来增加视野域。
3.1 GCNs 的残差学习
本文提出了图残差学习框架(graph residual learning framework),通过与
F
\mathcal F
F 相符,学习想要的隐层映射
H
\mathcal H
H。
F
\mathcal F
F变换作用到
G
l
\mathcal G_l
Gl 后,有
G
l
+
1
=
H
(
G
l
,
H
l
)
=
F
(
G
l
,
W
l
)
+
G
l
.
\mathcal G_{l+1}=\mathcal H(\mathcal G_l,\mathcal H_l)=\mathcal F(\mathcal G_l,\mathcal W_l)+\mathcal G_l\ .
Gl+1=H(Gl,Hl)=F(Gl,Wl)+Gl .
G l + 1 res = F ( G l , W l ) : = G l + 1 − G l \mathcal G_{l+1}^{\text{res}}=\mathcal F(\mathcal G_l,\mathcal W_l):=\mathcal G_{l+1}-\mathcal G_l Gl+1res=F(Gl,Wl):=Gl+1−Gl
3.2 GCNs的密集连接
G l + 1 = H ( G l , W l ) = T ( F ( G l , W l ) , G l ) = T ( F ( G l , W l ) , ⋯   , , F ( G 0 , W 0 ) , G 0 ) \mathcal G_{l+1}=\mathcal H(\mathcal G_l,\mathcal W_l) = \mathcal T(\mathcal F(\mathcal G_l,\mathcal W_l),\mathcal G_l) = \mathcal T(\mathcal F(G_l,\mathcal W_l), \cdots, , \mathcal F(\mathcal G_0,\mathcal W_0), \mathcal G_0) Gl+1=H(Gl,Wl)=T(F(Gl,Wl),Gl)=T(F(Gl,Wl),⋯,,F(G0,W0),G0)
3.3 GCNs的膨胀聚集(Dialted aggregation)
- Dilated conv. 能够减缓由于 pooling 操作带来的空间信息损失,因为dilation在不损失分辨率的情况下增大视野域。
- 本文使用 Dilated k-NN 来建立 Dilated Graph. G = ( V , E ) , d dilation rate , G ( d ) = ( V ( d ) , E ( d ) ) . \mathcal G=(\mathcal V,\mathcal E), d\text{ dilation rate},\mathcal G^{(d)}=(\mathcal V^{(d)}, \mathcal E^{(d)}). G=(V,E),d dilation rate,G(d)=(V(d),E(d)).
4 实验
上文提出里 ResGCN 和 DenseGCN 解决 GCNs 梯度消失问题,和 膨胀图卷积增大视野域。下面以点云分割展示性能。
4.1 3D点云的图学习
用k-NN在每一层建立动态有向图 G \mathcal G G。
4.2 实验设置
S3DIS数据集
4.3 网络结构
- GCN backbone block 输入:点,应用 consecutive GCN 层,得到局部信息.
- Fusion block 串联特征, 1 × 1 1\times 1 1×1卷积, max pooling 后得到全局向量,再和局部串联
- MLP
PlainGCN
ResGCN: adding residual graph connections to PlainGCN
DenseGCN: adding dense graph connections and dynamic dilated k-NN to the PlainGCN
后文略