ICML 2019 论文标题:LatentGNN: Learning Efficient Non-local Relations for Visual Recognition 论文地址:https://arxiv.org/abs/1905.11634 代码地址:https://github.com/latentgnn/LatentGNN-V1-PyTorch

image.png


简介

由于图像上的卷积运算是局部的,因此传统的卷积神经网络提取的图像特征都具有局域性,即卷积核均有自己特定大小的感受野。但图像中蕴含的语义线索很有可能是非局域性的,距离很远的两个区域的特征也有可能具有关联性。如何提取这种大范围的语义特征关联性,本文提出了基于GNN的方法:LatentGNN。LatentGNN先将CNN提取的局域性特征映射到一个低秩的潜在特征空间中,利用潜在特征空间减少特征数量,降低了graph的复杂度。然后利用GNN在graph上提取非局部的特征关联性,最后再将其映射回CNN的特征空间中,以此在较小计算量的前提下达到提取non-local特征的目的。

Non-local Graph Neural Networks

作者首先介绍了GNN的一般形式。以image.png表示CNN提取的图像特征,其中image.png表示特征向量的个数,即下标表示feature map的像素位置。GNN运算的公式表示如下:
image.png
其中g(.)表示两个特征向量的相关函数,衡量结点的连通性。image.png是标准化因子。image.png是可训练的权重。h(.) 表示激活函数,例如Relu。上式用矩阵形式表示如下:
image.png
其中image.png表示graph的邻接矩阵,image.png。在视觉任务中,邻接矩阵的两种常见的定义image.pngimage.png如下:
image.png
其中image.png,D的逆矩阵起到归一化的作用。
以上就是GNN的一般形式,其在所有局部的特征向量之间做了信息传播与聚合,从而对局部特征优化,得到non-local特征。但CNN得到的特征向量数量往往很多,构造这样的全连接graph,用一般的GNN进行运算复杂度太高,效率很低,因此作者提出了潜在特征空间思想。

Latent GNN for Non-local Feature Context

思路很简单,就是先将N个特征向量映射到更少量的特征向量上:
image.png
其中image.pngimage.png为潜在特征,其数量d远少于N,但image.png的通道数c是不变的,即每个特征向量的维度不变。image.png表示image.pngimage.png的连通性。结合图1 Step1来看,这一步就是减少了graph中结点的个数。

image.png

之后Step2,在少量的潜在结点上构造全连接图,进行GNN操作:
image.png
其中image.png表示潜在结点之间的连通关系。
最后Step3,将潜在结点映射回原来的特征空间,得到non-local的特征向量:
image.png
综上,三个Step的流程就是将原本多结点的graph的结点数量减少,进行GNN操作,再放大回原来的结点个数。这和ResNet中的battle neck卷积层思路是相同的,都起到了减小运算量的效果。


An Equivalent Low-rank Kernel Representation

过程就是这样,但ICML的文章肯定要从数学原理上进行分析,因此作者由给出了数学上的等价表示:用低秩的邻接矩阵代替原来的全连接的邻接矩阵(如图2)。
image.png

将之前Step1的式子用矩阵形式表示:
image.png
image.png,则Step2,3可表示为:
image.png
综上,整个过程表示为:
image.png
image.png,则邻接矩阵A的秩由原本的N降为d,显著减小了计算量。


Feature Augmentation for Visual Recognition

最后,上述模型可以作为组件加入CNN中,完成端到端训练。借鉴ResNet的思想,可以将原本CNN的局部特征与GNN优化后的非局部特征进行融合,以增强特征的全局性:
image.png
image.png是个权重超参数。


Experiments

作者在目标检测、图像分割和点云分割三个视觉任务上测试了算法的有效性。实验表明,将这种GNN的非局域特征增强方法加入到现有模型中,均能提升模型表现。
image.png
image.png

总结

本文算是GNN在视觉特征增强方面的运用,但作者提出的这种潜在结点的方式可以运用在更多的GNN中,尤其在面对大量的graph结点时,不妨试试LatentGNN中邻接矩阵降秩的思想。