转载请标明出处: http://blog.csdn.net/ikerpeng/article/details/72844728
知乎专栏:https://zhuanlan.zhihu.com/p/27216346
本文要介绍的这一篇paper是ICML2016上一篇关于 CNN 在图(graph)上的应用。ICML 是机器学习方面的顶级会议,这篇文章--<<Learning CNNs for Graphs>>--所研究的内容也具有非常好的理论和实用的价值。如果您对于图的数据结构并不是很熟悉建议您先参考本文末的相关基础知识的介绍。
CNN已经在计算机视觉(CV)以及自然语言处理等领域取得了state-of-art 的水平,其中的数据可以被称作是一种Euclidean Data,CNN正好能够高效的处理这种数据结构,探索出其中所存在的特征表示。
图1 欧拉数据(Euclidean Data)举例
所谓的欧拉数据指的是类似于grids, sequences… 这样的数据,例如图像就可以看作是2D的grid数据,语音信号就可以看作是1D的grid数据。但是现实的处理问题当中还存在大量的 Non-EuclideanData,如社交多媒体网络(Social Network)数据,化学成分(Chemical Compound)结构数据,生物基因蛋白(Protein)数据以及知识图谱(Knowledge Graphs)数据等等,这类的数据属于图结构的数据(Graph-structured Data)。CNN等神经网络结构则并不能有效的处理这样的数据。因此,这篇paper要解决的问题就是如何使用CNN高效的处理图结构的数据。
图2 Graph 数据举例
本文所提出算法思想很简单,将一个图结构的数据转化为CNN能够高效处理的结构。处理的过程主要分为两个步骤:1.从图结构当中选出具有代表性的nodes序列;2.对于选出的每一个node求出一个卷积的邻域(neighborhoodfield)。接下来我们详细的介绍算法相关的细节。
本paper将图像(image)看作是一种特殊的图(graph),即一种的grid graph,每一个像素就是graph当中的一个node。那么我猜想文章的motivation主要来自于想将CNN在图像上的应用generalize 到一般的graph上面。
那么我们首先来看一下CNN在Image当中的应用。如图3所示,左图表示的是一张图像在一个神经网络层当中的卷机操作过程。最底部的那一层是输入的特征图(或原图),通过一个卷积(这里表示的是一个