时域上的乘积等于频域上的卷积_图卷积神经网络:Graph Convolutional Networks
这篇文章主要介绍图卷积神经网络,主要参考[1],中间还包含了很多个人的理解。论文中还有很多点,我理解得还不是很通透,如果错误,欢迎指出。请多多指教。
Spectral Networks and Locally Connected Networks on Graphsarxiv.org
一、简介
这篇文章是最早提出将CNN扩展到图上,直接处理图类型的数据而不需要对图类型的数据进行转化。在之前的一篇文章[2]中,我讲过欧式空间和非欧式空间的区别。CNN一般作用与欧式空间,无法直接作用于非欧式空间。CNN具有以下几个特点:
- 权重共享:同一个卷积核可以作用于不同的位置。
- 局部性:欧式空间可以简洁的支持卷积核(直接根据卷积公式计算卷积结果即可),卷积核的大小一般远小于输入信号的大小。
- 多尺度:CNN往往包含下采样,可以减少参数,并获得更大的感受野(receptive field)。
文章中,作者提出了两种方式构建图卷积神经网络:空域构建(Spatial Construction)和频域构建(Spectral Construction)。
二、空域构建(Spatial Construction)
空域构建主要考虑(2)(3)两点,即CNN多尺度,层次,局部感受野的特点。
首先,我们先定义一个有权重的无向图
空域卷积(Spatial Convolution)
如图1所示,我们要对结点6做卷积,和结点6相邻的结点有结点1和结点5(包括自身,结点6),即
卷积的输入的结点特征可能是一个向量,维度记为
转化成矩阵形式,可以写成:
Pooling层实现
CNN通过pooling和下采样层,减小特征图的尺寸。在图上,同样可以使用多尺度聚类的方式,来获得层次结构。图2展示了一个图的多尺度聚类。
根据聚类结果,我们可以构造这样一个矩阵
因此我们通过
多层空域卷积
现在我们考虑有K个尺度。第0个尺度表示原始的图,即
我们定义layer
加入pooling层之后,输出结果
这里
图4展示了空域卷积的构建方式。
假设
使用空域构建,我们实现了CNN的特点(2)(3),但是很难实现特点(1)权重共享。从公式中我们可以看出,对于每个结点,卷积的权重是不同的。但是对于图像中的卷积,不同位置的卷积核的权重是共享的。主要的原因是在图G上无法使用传统的卷积公式
三、频域构建(Spectral Construction)
既然在空域中,不好进行卷积。能不能将图转化到另一个空间(频域)来实现卷积操作呢?根据卷积定理,在空域(时域)中的卷积等于在频域中直接相乘:
这里
因此,我们需要找到一组傅里叶变换的基,将图从空域转到这组基所表示的频域空间。我们通过构建拉普拉斯矩阵来找到一组傅里叶变换的基。其实拉普拉斯矩阵就是图上的拉普拉斯算子。
如图5所示,我们构造这样两个矩阵。
度数矩阵
邻接矩阵
那么拉普拉斯矩阵L可以写成是:
这里我们使用的是无向图,所以L是对称矩阵。因此
这里特征向量
因此,图的卷积公式,从空域转换到频域,可以表示为:
这里可以将
加入通道和激励函数后,第
这里
通常,我们根据特征值的大小选择前
此外,作者还提出使用三次样本插值来增加平滑约束,因此卷积核
这里
四、数值实验
这里作者通过两个数字实验来证明模型的有效性。实验的数据集是MNIST。第一个实验是从原始
这里分别使用Nearest Neighbor分类器,两层全连接神经网络作为对比模型。第一个实验的结果如表1所示,FC
MNIST中的数字由笔画构成,具有局部性。空域卷积明确地满足这一约束,而频域卷积并没有强制具有空间局部性,如图9(c)(d)所示。添加平滑约束后,频域卷积的结果有所提升,由于卷积核被约束,获得更好的空间局部性,如图9(e)(f)所示。
五、实现
文章中的图卷积神经网络的实现代码见https://github.com/Ivan0131/gcn_demo,使用tensorflow2.0实现。Pooling层被我改成了avg pooling,由于max pooling的实现比较繁琐,avg pooling会让代码简洁很多。实现的效果离论文中的结果还是有点差距。
六、总结
这篇文章,介绍了两种构建图卷积的方式:空域卷积和频域卷积。其它论文中实现的图卷积,基本也可以归到这两类上。希望通过对这篇文章的介绍,可以帮助大家更好地理解图卷积。
[1] Spectral Networks and Deep Locally Connected Networks on Graphs https://arxiv.org/abs/1312.6203
[2] 图神经网络:The Graph Neural Network Model https://zhuanlan.zhihu.com/p/85768094
[3] 图卷积网络(GCN)新手村完全指南 https://zhuanlan.zhihu.com/p/54505069
[4] 拉普拉斯矩阵与拉普拉斯算子的关系 https://zhuanlan.zhihu.com/p/85287578
[5] Laplacian matrix https://en.wikipedia.org/wiki/Laplacian_matrix
时域上的乘积等于频域上的卷积_图卷积神经网络:Graph Convolutional Networks相关推荐
- 时域上的乘积等于频域上的卷积_时频域分析的一些常用概念补充(线性时不变系统、卷积、冲激响应、窗函数等)...
在时频域分析中,需要先铺垫几个概念.分别是相加性.齐次性.时不变.卷积.冲击响应.下述内容将尽量通俗易懂,减少公式堆砌,可能会有不严谨之处. 1.相加性和齐次性 由于这两个概念是线性系统必须满足的两个 ...
- 3600000毫秒等于多少小时_科学家解密!你知道月球上一天等于地球上多久吗?...
大家有没有想过在月球上呆一天,相当于在地球上是多少天呢?科学家通过一系列研究得出了惊奇的数字. 月球是太阳系中的第五大的卫星,也是地球唯一的天然卫星.月球的直径是地球的四分之一,质量是地球的八十分之一 ...
- matlab 离散傅里叶变换_时域上的采样VS频域上的周期延拓。用离散傅里叶变换直观地演示...
数字信号处理DSP基本原理之一:采样时间信号的频谱具有周期性,且周期与采样率相等. 这个结论可以帮助我们在大脑中构建这样的一幅图像: 时域的动态采样,相当于在频域进行周期延拓,延拓的周期与时域采样率相 ...
- 图卷积 节点分类_在节点分类任务上训练图卷积网络
图卷积 节点分类 This article goes through the implementation of Graph Convolution Networks (GCN) using Spek ...
- 图卷积在语义分割上的应用(论文集)
文章目录 2018 Graph-Based Global Reasoning Networks 2019 Graph-FCN for image semantic segmentation Dual ...
- 【Mo 人工智能技术博客】图卷积网络概述及其在论文分类上的应用
近年来,深度学习在计算机视觉.自然语言处理等领域大放异彩.这些领域所面对的数据都是结构化的,如图像.音频.文本等,它们内部都有明确的排列规则.结构化的数据由于具有这些确定的规则而方便处理,但是在现实生 ...
- 【音频处理】从时域和频域上分别改变音频的响度
时域上尝试 如原始音频时域如下: 假如将所有数据乘上5. 可以发现有些地方都"破音"了. for (int i = 0; i < N; ++i) {in[i] = in[i] ...
- 求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序。
已知数据文件IN13.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位 ...
- 设位于第一象限的曲线y=f(x)上的任一点P(x,y)的切线在x轴上的截距等于该点发现在y轴上截距的相反数,且曲线经过(1,0),求该曲线
高数微分方程题目:设位于第一象限的曲线y=f(x)上的任一点P(x,y)的切线在x轴上的截距等于该点发现在y轴上截距的相反数,且曲线经过(1,0),求该曲线.
- 输出所有水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。
/* 输出所有的水仙花数,所谓水仙花数是指一个三位数,其各个位上数字立方和等于其本身 例如:153=1*1*1+5*5*5+3*3*3 */ class FlowerTest { publi ...
最新文章
- 博士后工作站来了!智源研究院获得正式授牌
- python nose(二)
- PowerDesigner设计数据库
- JavaScript中map函数和filter的简单举例
- 为什么阿里工程师纷纷在内网晒代码?
- 作业3-6 查询水果单价
- Python3实现红黑树[上篇]
- function好的写法
- 计算机 游戏第24级,“24点”游戏五级竞赛法
- 软件工程经济学知识点总结
- 苹果手机录屏软件_4款手机录屏软件推荐,你觉得哪款更好用?
- opencv国内快速下载
- 友声条码秤对接软件_友声条码秤调试教程
- 云夜卡社区源码v4.2 带总控
- 个人资源小仓库之【工具】!
- 通过Navicat for MySQL导入数据时,日期时间错误问题解决办法
- sudo no tty present and no askpass program specified
- gridControl控件的gridView实现全选
- ssm框架搭建之ss框架
- 从勾股定理到立方公式的整数解
热门文章
- 关于 API 定义 安全
- Codeforces 448 D. Multiplication Table
- 实现MySQL的Replication
- 每天30分钟搞Software Rendering--(0)搜集资料,阅读,了解
- java 操作linux_java程序里调用linux命令
- 拓端tecdat|自然语言处理NLP:主题LDA、情感分析疫情下的新闻文本数据
- 拓端tecdat|基于r语言的疾病制图中自适应核密度估计的阈值选择方法案例
- Hystrix服务降级、服务熔断介绍
- 机床使用教学_2020清河正规ug加工培训16年研发教学行业-工之艺
- 重启docker容器命令