【GCN】图卷积网络初探——基于图(Graph)的傅里叶变换和卷积

2018年11月29日 11:50:38 夏至夏至520 阅读数 5980更多

分类专栏: # MachineLearning
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。


一、CNN(卷积神经网络)中的离散卷积

推荐阅读:如何通俗易懂地解释卷积?

1、CNN中的离散卷积:共享参数的过滤器

2、CNN中的卷积操作:通过计算中心像素点以及相邻像素点的【加权和】构成【feature map】;
加权系数=卷积核的权重系数

【实例】下式是一个隐藏神经元的输出计算公式,b为偏置,w为5×5的权重向量,a为上一层的激活值,σ()为激活函数。
可以看出,将上一层的5×5=25的神经元(a)加权(w)求和

3、CNN中的卷积目的:空间特征的提取

4、确定卷积核的系数:随机化初值,训练中根据误差函数loss,通过反向传播+梯度下降进行迭代优化。

二、GCN基本概念介绍

(一)图Graph

定义:顶点和边建立的关系拓扑图

(二)研究GCN的原因

1、CNN的【平移不变性】在【非矩阵结构】数据上不适用

2、希望在【拓扑图】上提取空间特征来进行机器学习

3、GCN主要工作:引入可以优化的【卷积参数】

(三)提取【拓扑图】空间特征的两种方式

1、vertex domain(spatial domain):顶点域(空间域)

操作:把每个顶点相邻的neighbors找出来

缺点:每个顶点的neighbors不同,计算处理必须针对每个节点

2、spectral domain:谱域

过程:

(1)定义graph上的Fourier Transformation傅里叶变换

(利用Spectral graph theory,借助图的拉普拉斯矩阵的特征值和特征向量研究图的性质)

(2)定义graph上的convolution卷积

三、图的拉普拉斯矩阵

(一)定义:拉普拉斯矩阵L

L=D−AL=D-AL=D−A
其中,L为Laplacian矩阵;
      D是顶点的度矩阵(对角矩阵),对角线上的元素依次为各个顶点的度(与该顶点相连的边的条数);
      A是图的邻接矩阵。

计算方法实例:

(二)拉普拉斯矩阵L的良好性质

1、是对称矩阵,可以进行谱分解(特征分解),与GCN的spectral domain对应

2、只在【中心节点】和【一阶相连的顶点】这两种位置上有非0元素,其余位置都是0
注:一阶相连就是通过一条边直接相连,如上图中与顶点1一阶相连的顶点为5和2;
二阶相连就是通过两条边相连,如上图中与顶点1二阶相连的顶点为4(1-5-4)、2(1-5-2)、5(1-2-5)、3(1-2-3)

3、可以通过拉普拉斯算子与拉普拉斯矩阵进行类比

(三)拉普拉斯矩阵L的谱分解(特征分解)

1、矩阵L的特征分解定义:将矩阵L分解为由特征值λ和特征向量u表示的矩阵之积

(1)求特征值和特征向量:λ为特征值,u为特征向量,则满足下式:
Lu=λuLu=\lambda uLu=λu

(2)求特征分解:

令 L是一个 N×N 的方阵,且有 N 个线性无关的特征向量 。
这样, L可以被分解为:
L=UΛU−1=U⎛⎝⎜λ1...λ3⎞⎠⎟U−1L=U\Lambda U^{-1} =U\begin{pmatrix}\lambda_1& & \\ &...& \\ & & \lambda_3 \end{pmatrix} U^{-1}L=UΛU−1=U⎝⎛​λ1​​...​λ3​​⎠⎞​U−1
其中,U是N×N方阵,且其第i列为L的特征向量ui,ui为列向量;
U=(u1⃗ ,u2⃗ ,...,un⃗ )U=(\vec{u_1},\vec{u_2},...,\vec{u_n})U=(u1​​,u2​​,...,un​​)
      Λ是对角矩阵,其对角线上的元素为对应的特征值。

2、拉普拉斯矩阵:【半正定】【对称】矩阵
性质:
(1)有n个线性无关的特征向量
(2)特征值非负
(3)特征向量相互正交,即Q为正交矩阵
设拉普拉斯矩阵L中,λi为特征值,ui为特征向量,U为特征向量ui作为列向量组成的方阵,那么拉普拉斯矩阵的谱分解形式为:

四、Graph上的傅里叶变换与卷积

(一)核心工作

把拉普拉斯算子的【特征函数】
变为
Graph对应的拉普拉斯矩阵的【特征向量】

(二)Graph上的傅里叶变换

1、传统傅里叶变换:

2、Graph上的傅里叶变换

  • 拉普拉斯矩阵=离散拉普拉斯算子
  • 拉普拉斯矩阵的【特征向量U】=拉普拉斯算子的【特征函数exp(-iwt)】

仿照上面传统傅里叶定义,得到Graph上的傅里叶变换:

  • i为第i个顶点
  • λl为第l个特征值;ul为第l个特征向量
  • f为待变换函数,f尖为其对应的傅里叶变换,f和f尖与顶点i一一对应

3、Graph上的傅里叶逆变换:

(三)Graph上的卷积

1、传统卷积定理:

  • f为待卷积函数,h为卷积核(根据需要设计)
  • f*h为卷积结果

2、Graph上的卷积:仿照上面定义

  • f为待卷积函数,h为卷积核(根据需要设计)
  • f*h为卷积结果

3、由式(1)可以看出,U为特征向量,f为待卷积函数,重点在于设计含有【可训练】【共享参数】的【卷积核h】
卷积参数就是diag(hˆ(λl))卷积参数就是diag(\hat{h}(\lambda_l))卷积参数就是diag(h^(λl​))

五、深度学习中的GCN

1、第一代GCN:

  • 卷积核:
    diag(hˆ(λl)):diag(θl)diag(\hat{h}(\lambda_l)): diag(\theta_l)diag(h^(λl​)):diag(θl​)

  • output公式:

  • 缺点:有n个参数θn,计算量大

2、第二代GCN:

  • 卷积核:
    hˆ(λl):∑Kj=0αjλjl\hat{h}(\lambda_l):\sum_{j=0}^K \alpha_j\lambda_l^jh^(λl​):j=0∑K​αj​λlj​
  • output公式:

注意到下式:

进而可以导出下式:

  • 经过矩阵变换,简化后的output公式:

3、实例

  • K=1时,对于顶点i,将顶点i以及顶点i的一阶相连顶点(j,k,m,n)的feature值(f函数值)做加权求和,权重就是参数αj,最终输出新的feature值(g函数),为提取得到的空间特征
  • K=2时,对于顶点i,将顶点i以及顶点i的一阶相连顶点、二阶相连顶点的feature值加权求和,输出新的feature值

【GCN】图卷积网络初探——基于图(Graph)的傅里叶变换和卷积的更多相关文章

  1. 最全面的图卷积网络GCN的理解和详细推导,都在这里了!

    目录 目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral doma ...

  2. CVPR2020论文解读:手绘草图卷积网络语义分割

    CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...

  3. 卷积网络训练太慢?Yann LeCun:已解决CIFAR-10,目标 ImageNet

    原文连接:http://blog.kaggle.com/2014/12/22/convolutional-nets-and-cifar-10-an-interview-with-yan-lecun/ ...

  4. PRML读书会第五章 Neural Networks(神经网络、BP误差后向传播链式求导法则、正则化、卷积网络)

    主讲人 网神 (新浪微博:@豆角茄子麻酱凉面) 网神(66707180) 18:55:06 那我们开始了啊,前面第3,4章讲了回归和分类问题,他们应用的主要限制是维度灾难问题.今天的第5章神经网络的内 ...

  5. TCN时间卷积网络——解决LSTM的并发问题

    TCN是指时间卷积网络,一种新型的可以用来解决时间序列预测的算法.在这一两年中已有多篇论文提出,但是普遍认为下篇论文是TCN的开端. 论文名称: An Empirical Evaluation of ...

  6. TensorFlow 中的卷积网络

    TensorFlow 中的卷积网络 是时候看一下 TensorFlow 中的卷积神经网络的例子了. 网络的结构跟经典的 CNNs 结构一样,是卷积层,最大池化层和全链接层的混合. 这里你看到的代码与你 ...

  7. 3D Object Classification With Point Convolution —— 点云卷积网络

    今天刚刚得到消息,之前投给IROS 2017的文章收录了.很久很久没有写过博客,今天正好借这个机会来谈谈点云卷积网络的一些细节. 1.点云与三维表达 三维数据后者说空间数据有很多种表达方式,比如:RG ...

  8. Deformable Convolutional Networks-v1-v2(可变形卷积网络)

    如何评价 MSRA 视觉组最新提出的 Deformable ConvNets V2? <Deformable Convolutional Networks>是一篇2017年Microsof ...

  9. 3. CNN卷积网络-反向更新

    1. CNN卷积网络-初识 2. CNN卷积网络-前向传播算法 3. CNN卷积网络-反向更新 1. 前言 如果读者详细的了解了DNN神经网络的反向更新,那对我们今天的学习会有很大的帮助.我们的CNN ...

随机推荐

  1. Gym - 100199C

    Gym - 100199C 题意: 其实这么长的英文题面就是想告诉我们这个题是丢手绢. 解法: 找到与 $ N $ 互质的最大整数 $ K $ 即可.当 $ N $ 为奇数时, $ \frac{N-1 ...

  2. 无法访问com.alibaba.fastjson.parser.deserializer.PropertyProcessable

    某项目加入了某依赖A,IDEA里编译报了如下错误: 无法访问com.alibaba.fastjson.parser.deserializer.PropertyProcessable 错误代码行为某个使 ...

  3. 高性能高可用的微服务框架TarsGo的腾讯实践

    conference/2.3 高性能高可用的微服务框架TarsGo的腾讯实践 - 陈明杰.pdf at master · gopherchina/conferencehttps://github.co ...

  4. pandas总结

    ### 一.创建对象  # 1.可以通过传递一个list对象来创建一个Series,pandas会默认创建整型索引: # s=pd.Series([1,3,5,np.nan,6,8]) # print ...

  5. 阿里RDS数据库 全量备份恢复到本地MYSQL

    阿里RDS数据库 全量备份恢复到本地MYSQL   1.首先下载RDS的全量备份 下载完成后上传到服务器备用   2.安装MySQL 5.6 首先删除机上其他的MySQL版本 检查系统是否安装其他版本 ...

  6. 断句:Store all parameters but the first passed to this function as an array

    // Store all parameters but the first passed to this function as an array //除了第一个参数,把调用publish函数时的所有 ...

  7. 010-HTTP协议

    一.概述 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议.它可以使浏览器更加高效,使网络传输减少.它不仅保证 ...

  8. ssh登陆

    之前在windows下有putty,xshell,mobaXterm 工具可以选择. 现在用mac,暂时没怎么找到好到软件,直接用ssh好了. ssh -p 22 username@192.xxx.x ...

  9. 关于antd form表单getFieldsError方法

    getFieldsError()方法其实只有required:true时,双向数据绑定. {getFieldDecorator('note', { rules: [{ required: true, ...

  10. 安卓运行linux应用程序

    安卓是可以运行linux应用程序的,安卓系统原来就基于Linux.但是安卓已经把linux改头换面了.具体方法是安装Termux软件,然后就可以运行pkg命令安装软件包了,希望可以帮助到大家.