Defferrard, Michaël, Xavier Bresson, and Pierre Vandergheynst. "Convolutional neural networks on graphs with fast localized spectral filtering." Advances in Neural Information Processing Systems. 2016.

摘要:

作者提出了一种把传统CNN扩展到非欧空间上的一种卷积网络

1.介绍

作者的主要贡献有:

(1)谱方法的形式化。一种基于谱方法的CNN的形式化表述,基于GSP(Shuman, David I., et al. "The emerging field of signal processing on graphs: Extending high-dimensional data analysis to networks and other irregular domains." IEEE Signal Processing Magazine 30.3 (2013): 83-98.)

(2)严格的局部化的filters。作者扩展了(Bruna, Joan, et al. "Spectral networks and locally connected networks on graphs." arXiv preprint arXiv:1312.6203 (2013).d)的工作。局部化就是定义了一个参数K,K代表以一个节点为中心的K次跳跃(也就是距离为K)。

(3)小的计算复杂度。复杂度是和K以及边数成正比。因为大部分现实生活中的图是高度稀疏的,那么就是边数远远低于点数的平方,即 边 = k*点数。k可以看做是一个点的k最近邻。这也就是说复杂度是和输入数据的大小。另外,这个方法避免计算傅里叶因子(需要计算和储存傅里叶因子)。这个方法只用储存一个拉普拉斯矩阵,这是一个稀疏矩阵,只有边数个非零值。

(4)高效的pooling。通过构建一个二叉树进行pooling。

(5)实验结果。作者在MNIST上做了实验,取得了和传统CNN相当的实验结果。tensorflow code:https://github.com/mdeff/cnn_graph

2.技术细节

实现图上的CNN需要满足一下一点要求:(1)设计卷积核(2)相似点聚集(3)pooling操作

2.1 学习局部化谱filters

图的傅里叶变换:首先定义拉普拉斯矩阵:

其中D是度矩阵,W是邻接矩阵,

如果对拉欧拉斯矩阵做归一化,则表示为:

然后对L做特征值分解,得到:

U是特征向量组成的矩阵,A是特征值组成的对角矩阵。

那么图上的傅里叶变换为:

其中x是整个图组成的特征,n为图上的节点数。

图上的卷积操作定义为:

那么对x做卷积操作即为:

其中

多项式近似实现局部化:

快速过滤的递归推导:主要是利用了切比雪夫多项式的递推关系

学习过滤器:通过梯度下降即可完成:

2.2 图粗化

主要是用了(Dhillon, Inderjit S., Yuqiang Guan, and Brian Kulis. "Weighted graph cuts without eigenvectors a multilevel approach." IEEE transactions on pattern analysis and machine intelligence 29.11 (2007).)的方法

2.3 快速pooling

作者通过上述方法得到更粗糙的图,然后对节点重排序,然后构建一个二叉树。

相关论文:

Semi-Supervised Classification with Graph Convolutional Networks

Geometric deep learning on graphs and manifolds using mixture model CNNs

GRAPH ATTENTION NETWORKS

Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering的更多相关文章

  1. 论文解读二代GCN《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

    Paper Information Title:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filteri ...

  2. 【论文笔记】Learning Convolutional Neural Networks for Graphs

    Learning Convolutional Neural Networks for Graphs 2018-01-17  21:41:57 [Introduction] 这篇 paper 是发表在 ...

  3. AlexNet论文翻译-ImageNet Classification with Deep Convolutional Neural Networks

    ImageNet Classification with Deep Convolutional Neural Networks 深度卷积神经网络的ImageNet分类 Alex Krizhevsky ...

  4. [C6] Andrew Ng - Convolutional Neural Networks

    About this Course This course will teach you how to build convolutional neural networks and apply it ...

  5. (转)A Beginner's Guide To Understanding Convolutional Neural Networks Part 2

    Adit Deshpande CS Undergrad at UCLA ('19) Blog About A Beginner's Guide To Understanding Convolution ...

  6. 卷积神经网络Convolutional Neural Networks

    Convolutional Neural Networks NOTE: This tutorial is intended for advanced users of TensorFlow and a ...

  7. [转] Understanding Convolutional Neural Networks for NLP

    http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/ 讲CNN以及其在NLP的应用,非常 ...

  8. 课程四(Convolutional Neural Networks),第一周(Foundations of Convolutional Neural Networks) —— 2.Programming assignments:Convolutional Model: step by step

    Convolutional Neural Networks: Step by Step Welcome to Course 4's first assignment! In this assignme ...

  9. Convolutional Neural Networks: Step by Step

    Andrew Ng deeplearning courese-4:Convolutional Neural Network Convolutional Neural Networks: Step by ...

随机推荐

  1. Linux内核(8) - 设备模型(下)

    设备模型拍得再玄幻,它也只是个模型,必须得落实在具体的子系统,否则就只能抱着个最佳技术奖空遗恨.既然前面已经以USB子系统的实现分析示例了分析内核源码应该如何入手,那么这里就仍然以USB子系统为例,看 ...

  2. Python min() 函数

    描述 min() 方法返回给定参数的最小值,参数可以为序列. 语法 以下是 min() 方法的语法: min( x, y, z, .... ) 参数 x -- 数值表达式. y -- 数值表达式. z ...

  3. [转]玩转UltraEdit,UE常见快捷键操作

    编辑器Ultraedit快捷键说到编辑器的快捷键,VIM是无与伦比的.要反对,也得是带脚踏板的EmaCS.UE还是有差距的,很大差距.注意:VIM是开源.免费的,而UE则需要注册.UE是Windows ...

  4. Maven Docker镜像使用技巧

    摘要: Maven是目前最流行的Java项目管理工具之一,提供了强大的包依赖管理和应用构建功能.本文以Maven为例介绍了Docker在应用构建中的一些常见技巧. Maven是目前最流行的Java项目 ...

  5. java Webservice(一)HttpClient远程调用

    我们将Web Service发布在Tomcat或者其他应用服务器上后,有很多方法可以调用该Web Service,常用的有两种: 1.通过浏览器HTTP调用,返回规范的XML文件内容      2.通 ...

  6. 每天一点儿Java--ComboBox

    import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; impor ...

  7. git的全局变量

    git的全局变量可以用在命令行设置: git config --global user.name "litifeng" git config --global user.email ...

  8. 解决fonts.googleapis.com不能访问,导致网页打不开

    最近,访问linode.com网站,突然发现网速好慢,老是打不开网页.分析一下网页才知道,原来使用了fonts.googleapis.com 打不开的原因就很明显了,咋办呢?百度啊,百度,最后,终于找 ...

  9. Learning Django: the hard way (1)

    Learning Django: the hard way (1) What does "runserver" do? Django provides a light-weight ...

  10. 《ZedBoard各种资料网址备份记录》

    转载来自于:http://http//www.eefocus.com/crazybingo/blog/2013-02/289101_ab4c8.html 1. Xilinx FPGA相关连接 1) X ...