1、图卷积定义

炫云:从二维卷积经过图傅里叶变换到图卷积​zhuanlan.zhihu.com

炫云:拉普拉斯矩阵的谱分解,谱图卷积,图卷积演变过程​zhuanlan.zhihu.com

第一代图卷积

论文来源:《Spectral Networks and Deep Locally Connected Networks on Graphs》

第一代图卷积的计算方法就直接根据 从二维卷积经过图傅里叶变换到图卷积中的(4)(6)推出

虽然利用上式已经可以构造深度网络进行图卷积运算了,但该版本有不少缺点:

  1. 没有local信息。每次卷积都是所有顶点都参与运算,没有实现局部卷积和参数共享。
  2. 运算量大。每次卷积都要进行拉普拉斯矩阵分解和矩阵相乘,计算复杂度为
  3. 参数量大。每个卷积核参数量为

第二代图卷积

文章来源:
《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

针对第一代图卷积中存在的问题,学者基于切比雪夫多项式提出第二代GCN:ChbeyNet

首先回顾下图傅里叶计算公式:

可知函数和特征值密切相关,令

为拉普拉斯矩阵

特征值函数

以拉普拉斯矩阵的特征值作为卷积核同样存在缺陷:

  • 不具备局部连接性;
  • 时间复杂度为 O(n);

为了克服上述缺陷引入 K 阶多项式:

其中,参数

是多项式系数,因此滤波器具有了
阶局部性,复杂度也降低到

将式代入第一代图卷积式(1)中可得:

其中 σ 是激活函数,计算时间复杂度为

,因为对于静态图而言
是固定的,
可以提前计算得到。如果使用稀疏矩阵乘法(pytorch里有封装),时间复杂度是
其中
是稀疏矩阵中非零元的个数表示图中边的数量。 此时计算图卷积就不需要再乘上特征向量矩阵 U,而是直接使用拉普拉斯矩阵 L 的 k 次方,就避免了进行特征分解。

因为

很大的时候并不稀疏( |E| 接近
),所以文中提出了利用切比雪夫多项式展开(任何k次多项式都可以通过切比雪夫多项式展开)来近似
,切比雪夫多项式递归式为:

因此根据上式可知:

其中,

;
是指拉普拉斯矩阵L的最大特征值。

PS:因为切比雪夫多项式的输入要在 [−1,1] 之间,由于拉普拉斯矩阵的半正定性,所以所有的特征值都是大于等于 0 的,将其除以最大特征值可以将特征压缩到 [0,1] 区间内,现在需要将其压缩到 [−1,1]。

可以得到:

阶多项式,且有
,其中,

这样,我们就得到了第二代图卷积:

这个表达式为拉普拉斯多项式中的一个 k 阶近似函数,依赖于节点的 k 阶邻域(k 步可达),时间复杂度与边呈线形相关。

总结第二代图卷积优点如下:

  • 运算量相比第一代的

    可以降到
  • 引入K-hop感受野,可以捕捉局部特征。

第三代图卷积

文章来源:《Semi-supervised Classification with Graph Convolutional Networks》

第二代图卷积解决了拉普拉斯矩阵特征分解的问题,但是在计算图卷积操作时矩阵乘法时间复杂度为

,在此基础上优化Kipf等人提出了目前流行的 GCN。

GCN 通过式(3)进行多层卷积层进行叠加,而每层都会逐点进行非线性叠加。考虑到时间复杂度问题,令

,也就是说得到了一个拉普拉斯算子的

二阶近似函数。既可以对网络进行卷积操作计算量增加不大。通过叠加层数可以提升模型的非线性。

归一化的拉普拉斯矩阵的特征值区间为 [0,2],令

可得:

其中,

是切比雪夫系数且仅存的两个参数!

在GCN的训练过程中需要规范化参数避免过拟合,令

,由式可得:

注意

的特征值范围在 [0, 2] 之间,所以如果在很深的网络中会引起梯度爆炸的问题,需要再次进行一次归一化(Renormalization trick):

把上式从标量推广到矩阵,对于输入顶点的向量

,其中 N 为节点数,C 为顶点的特征向量维度,可得:

其中,

是参数矩阵,
是卷积后的顶点特征,时间复杂度为

根据上式一层卷积,多层图卷积计算公式公式为:

其中,

,A 为邻接矩阵,
为单位矩阵,所以
为添加自连接的邻接矩阵;
为顶点的度数矩阵;
为神经网络第 l 层的权重矩阵;
是激活函数;
是第
层的激活矩阵,并且
是由顶点的特征向量组成矩阵。

总结第三代图卷积:

  • 令K=1,相当于只考虑1-hop 邻点。通过堆叠层数来增加感受野。
  • 每层计算复杂度降低为

总结

CNN 中的卷积无法直接应用于网络图中,所以引出了谱图理论和图中的傅里叶变换,进而定义图卷积的计算方法,最后结合深度学习发展出来 GCN。

参考:

拉普拉斯矩阵的谱分解,谱图卷积,图卷积演变过程

从二维卷积经过图傅里叶变换到图卷积

图卷积的通式

拉普拉斯算子属于卷积方法吗_三代图卷积网络理论相关推荐

  1. 拉普拉斯算子属于卷积方法吗_论文笔记 - 图卷积神经网络综述

    文献题目:图卷积神经网络综述 文献来源:计算机学报,2019 文献原文:https://kns.cnki.net/kcms/detail/11.1826.tp.20191104.1632.006.ht ...

  2. 神经网络模型中有什么样的算子_浅析图卷积神经网络

    今天想和大家分享的是图卷积神经网络. 随着人工智能发展,很多人都听说过机器学习.深度学习.卷积神经网络这些概念. 但图卷积神经网络,却不多人提起. 那什么是图卷积神经网络呢? 简单的来说就是其研究的对 ...

  3. 图神经网络(一)图信号处理与图卷积神经网络(5)图卷积神经网络

    图神经网络(一)图信号处理与图卷积神经网络(5)图卷积神经网络 0. 概述 1. 对频率响应矩阵进行参数化 2. 对多项式系数进行参数化 3. 设计固定的图滤波器 0. 概述 在学习了图滤波器定义的基 ...

  4. 拉普拉斯算子属于卷积方法吗_二维图像中的Laplace算子和图论中的Laplacian矩阵...

    最近在阅读 如何理解 Graph Convolutional Network(GCN)?​www.zhihu.com 接触到了图论中的Laplacian矩阵,定义为 , 是Laplacian矩阵, 是 ...

  5. 卷积滤波 英文_图像的卷积(滤波)运算(二)——高斯滤波

    1.高斯滤波原理 根据数学知识,一维高斯函数可以描述为: 在图像处理中,选定X方向上长度为3的窗口,令δ=1,中心坐标为1,由上述公式,其卷积核(Xa,X,Xb)可以如下计算: Xa = exp(-1 ...

  6. 卷积滤波 英文_图形学之卷积滤波器

    博客目录: 当有了卷积工具,下面介绍图形学常用的几种滤波器: 一.盒式滤波器 盒式滤波器是一个分段常值函数,它的积分结果为1. 离散滤波器,其数学形式为: \[a_{box,r}[i] = \begi ...

  7. python 图像处理 拉普拉斯算子的实现和改进-LoG和DoG算子

    拉普拉斯算子 拉普拉斯算子是最简单的各向同性微分算子,它具有旋转不变性. 我们经常把它作为边缘检测之一,也是工程数学中常用的一种积分变换,也可以用于图像增强.角点检测等等. 这里只给出它的代码,原理可 ...

  8. gcn 图卷积神经网络_复制一文读懂图卷积GCN

    首发于郁蓁的机器学习笔记 写文章 一文读懂图卷积GCN 苘郁蓁 ​ 阿里巴巴 算法工程师 ​关注她 唯物链丶.小小将等 480 人赞同了该文章本文的内容包括图卷积的基础知识以及相关辅助理解的知识点,希 ...

  9. 【数字图像处理】图像锐化:拉普拉斯算子(Laplacian)、高通滤波、Sobel算子、Isotropic算子、Prewitt算子

    图像锐化 图像锐化处理的目的是使模糊的图像变得更加清晰起来,通常针对引起图像模糊的原因而进行相应地锐化操作属于图像复原的内容.图像的模糊实质就是图像受到平均或积分运算造成的,因此可以对图像进行还原运算 ...

最新文章

  1. 【01】什么是AJAX
  2. mysql 删除过期日志_【转】对mysql日志进行操作的总结包括 启用,过期自动删除 等...
  3. 10个 Linux/Unix下 Bash 和 KSH shell 的作业控制实例
  4. java 反射机制_基础篇:深入解析JAVA反射机制
  5. lwip+freeRTOS 无法ping通的解决方案
  6. Mabatis(2) 全局配置文件
  7. 栈2——局部变量要初始化的原因
  8. OPPO关联公司被授权“脑电波采集方法”相关专利
  9. Wannafly挑战赛18B 随机数
  10. Linux学习笔记二:Ubuntu启用root用户、更改软件源以及安装vim
  11. presscad图层LIsp_为什么我用统赢软件在CAD里面转完程式后老是出现CAD没有响应的情况?...
  12. 怎么做app开发?如何去开发适合自己企业的APP应用
  13. 例题8-6 两性亲分子 UVa 1606
  14. matlab fmu,导入 FMU - MATLAB Simulink - MathWorks 中国
  15. QQ坦白说之解密教程
  16. Lua判断一个对象是否为空,包含userdata
  17. CCS(TI IDE)中英文切换
  18. V-REP仿真Python控制机械臂和rg2夹爪
  19. PAT 1166 Summit
  20. IT-标准化-系列-9.在VPC 2007中安装应用软件

热门文章

  1. Git 常用命令[持续更新...]
  2. Ubuntu:查询计算机软硬件信息
  3. Struts2源码学习(一)——Struts2中的XWork容器
  4. Eclipse中Maven插件的使用技巧及原理
  5. Python之路【第五篇续】:面向对象编程二
  6. Ubuntu+Win7+Samba实现文件共享
  7. 重磅!CVPR 2020 论文今起全面开放下载,含主会和workshop
  8. Self-Attention真的是必要的吗?微软中科大提出Sparse MLP,降低计算量的同时提升性能!...
  9. Science报道新研究:同行评审后的研究仅比预印本研究质量提高4%
  10. 参数少一半、速度快3倍:最新目标检测核心架构来了