ECC notes:Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs

论文主要介绍了一种在图结构上进行卷积操作的一种方法,简称为ECC。总结而言,ECC的卷积操作和常规的二维图像卷积操作都是一种加权平均操作,不同之处在于ECC可以作用在任何图结构上,并且其权重由节点间的边权所决定。

Edge-Conditioned Convolution(ECC)

ECC是一种对一个图的局部信息进行卷积的方法。Edge-Conditioned的意思是其卷积核由图上的来决定。

概念与符号定义
  • 对于一个有向图或者无向图G=(V,E)|V|=n ,|E|=m ,设l \in \{0,...,l_{max} \} 为前馈神经网络的层数索引。
  • 设图G的顶点和边上都有标签(label)。记第l层的每个顶点的标签(也称信号或特征)维度为d_l, 则通过矩阵X^l \in \mathbb{R}^{n \times d_l }来表示这n个顶点上的标签。同理以L \in \mathbb{R}^{m \times s}表示边上的标签(也称属性)。注意到这里,顶点上的标签维度会随着层数的改变而改变,而边上的标签维度s不随着网络层数而变化。记X^0为输入信号。
  • 顶点i的邻居被定义为与i直接相连的顶点(在有向图中则为i的先辈节点)以及i本身,即:

N(i) = \{j; (j,i) \in E\} \cup \{i\}

ECC具体方法

对于一个顶点,ECC的作用域为其所有邻居。

l层的第i个顶点的特征值X^l(i) \in \mathbb{R}^{d_l}为是由第l-1i的所有邻居的特征值X^{l-1}(j) \in \mathbb{R}^{d_{l-1}}加权求和得到的。

若要解决顶点无序性以及邻居节点数目不确定的问题,显然以常规的方法定义权重是行不通的(比如二维矩阵上的卷积核定义)。ECC的做法:定义一簇可学习的(learnable)函数F^l: \mathbb{R}^s \mapsto \mathbb{R}^{d_l \times d_{l-1}} ,其输入是一条边e_{ji}上的标签值L(j,i),输出则是一个权重矩阵\Theta_{ji}^l \in \mathbb{R}^{d_l \times d_{l-1}}。那么ECC则可表示为:
X^l(i) = \frac{1}{N(i)} \sum_{j \in N(i)}F^{l}(L(j,i); \omega^l)X^{l-1}(j) + b^l
= \frac{1}{N(i)} \sum_{j \in N(i)}\Theta_{ji}^l X^{l-1}(j) + b^l
其中b^l \in \mathbb{R}^{d_l}是一个learnable的偏置,\omega^l是函数F^l的learnable的参数。文中使用多层感知机mlp来表示函数F^l。在训练阶段,b^l ,\omega^l在每一次迭代时都会被更新。测试阶段,b^l ,\omega^l都不会再变化,而\Theta_{ji}^l的具体值仍依赖于给定的边e_{ji}上的标签值L(j,i)。因此ECC是一种使用了动态卷积核的方法。

点云上的应用

点云(PointCloud)也可以被视为一种图结构。论文介绍了在原始点云数据结构上进行构图以及对其进行下采样的方法。

点云构图 Graph Construction on point cloud P
  • 用点云中每个点p作为图G中的每个顶点v

  • 每个顶点v的初始取值为相应的p的特征值(密度、RGB值等)

  • 顶点v_i空间邻域内的所有顶点v_j被认为是v_i的邻居。空间领域可以有多种取法,可以用knn取,也可以在固定半径的范围内取,实验中固定半径的方法更好

  • v_i与其所有邻居v_j以有向边e(j,i)相连

  • 每条边的label以一个6维向量来表示:
    L(j; i) = (δx, δy, δz, ||δ||, arccos( δz/||δ||) ,arctan(δy/δx) ).
    其中\delta=p_j - p_i , 即p_j,p_i 两点在欧氏空间下的向量偏移。上式中前三个分量为\delta 在笛卡尔坐标系下的坐标值,后三个分量为其在球坐标系下的坐标值

点云下采样 Graph Coarsening on point cloud P

使用VoxelGrid方法对点云进行粗粒度化(也即pooling)。具体做法:

  1. 使用一个分辨率为r^h的3d网格框住整个点云P^{h-1}
  2. 对于网格中的每个voxel, 用该voxel中的中心点来表示该voxel内的所有点
  3. 用上一节的方法对新的点云P^h进行图的构造,得到更粗粒度的图G^{h}

按论文中的说法,对于每一个输入图G,都事先使用Graph Coarsening方法为其建立一个h^{max}层的图金字塔,金字塔的层数越高,对应的图具有更粗的粒度。然后在网络的pooling层,则根据金字塔中对应的相邻层的结点映射关系来执行pooling操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,153评论 0 2
  • 生得好皮囊,不如心有一束光。穿越无数黑夜,终能摁亮黎明。
    Bobbie_qi阅读 225评论 0 0
  • 一天,产品经理走过来搭了下我的肩膀。 产品经理:我要我们的APP有一个酷炫的待机界面。 我:可以啊,你要怎么样的界...
    青蛙要fly阅读 1,141评论 0 3
  • 由衷钦佩那些,把哪怕只是一个好习惯,但能坚持多年的前辈们,能一直保持,并使之成为惯性重复循环。这种循环让生活有良性...
    天恩_72bc阅读 174评论 0 0
  • 刚睡着不多时,突然听到山花在南卧室里有气无力地喊我“利君,利君,快点呃!”我以为天亮了呢?一听不对呀,到南屋一看,...
    云落山西人阅读 272评论 0 2

友情链接更多精彩内容