目录
前言
卷积神经网络具有平移不变性,而图网络不具有该性质,因此不能直接做卷积操作。
传统的卷积神经网络通过卷积核实现参数共享,且参数的数量由卷积核的大小决定,而图网络无法直接进行卷积,则不能实现参数共享,其参数个数与图像的像素矩阵保持一致。
其次卷积神经网络还具有局部连接性,从而使得每次计算只需要在一个卷积核大小的区域进行,而图网络由于其不规则性,需要对整张图做计算,类似于全连接神经网络,参数数量将会非常大。
通过参数共享和局部连接性我们可以将参数从O(W*H*K*N) 降低到O(m*m*k) 。其中,W、H 和 K 分别为图像的宽、高和通道,N 为隐藏层节点个数,m 为卷积核宽,k 为卷积核个数。
此外,卷积神经网络还具有层次化表达的特点,即其可以通过叠加卷积层得到更深层次的特征。
GNN网络是为了解决实际应用中的非欧式数据而提出来的一种网络。
共分为两种:基于空间的GNN网络和基于谱图的GNN网络。
提示:以下是本篇文章正文内容,下面案例可供参考
一、介绍
以中学学的几何定理为依据,欧式空间(包括二维、三维以上的空间)是指能运用这些定义的理想化空间,多维的欧式空间是在二三维欧式空间的在同规则下的抽象和推广。非欧式空间及不满足这些规律的空间,具有非结构化的特点,例如,在一个曲面上测量一个物体的周长,在凹凸不平的地面上测量两点之间的距离等。欧式图像对应的欧式数据,包括图片、音频、视频。现实生活中的欧式空间有知识图谱、社交网络等。
图神经网络就是为了处理这些欧式空间的数据而提出的。图卷积神经网络需要解决如何对图卷积和对图pooling两大问题。
二、基于谱图的GNN
1.简介
根据卷积定理,将空域上图的卷积,转化为频率上的卷积。
2.基础知识
傅里叶变换
任何一个周期函数都能等价为一系列的正(余)弦函数的和,这就是傅里叶级数。将一个周期函数经过傅里叶变换,也就是将一个时域上的函数表达,转换为其频域和相位的表示。
通过傅里叶变换,可以将低频的声音转换为高频的声音,或者实现在嘈杂环境中的声音频率过滤;又或对图片的傅里叶变换,可以根据变化后数据的频率特征,提取图片中的特征,如低频率的轮廓特征,高频率的细节特征。最后结果的输出只要将这些数据再做一次傅里叶反变换即可。
拉普拉斯变换
拉普拉斯变化是傅里叶变换的一种改进,与傅里叶相比,它能处理信号函数趋向于无穷大及振幅越来越大的情况,它有两种理解方式:一是这种变换引进了衰减因子,使原信号函数趋于平缓稳定;二是其通过增大傅里叶变换的正弦波,从而改变最后输出函数的振幅。
卷积定理
函数卷积的傅里叶变换是函数傅里叶变换的卷积。因此,图在空域上做卷积,可以转换为先对图和卷积核做傅里叶变换,将结果相乘后在做傅里叶逆变换。
图的卷积公式
一般的傅里叶变换公式为:
图的傅里叶变换为:,表示图信号在对应频率上的大小。
因此图的卷积公式为:
其中,为图的拉普拉斯矩阵的特征矩阵,为其转置,,为图的度矩阵,为图的邻接矩阵。
图的拉普拉斯矩阵有什么实际意义?以下面的图为例,
其中f(i)表示该点属性的大小,这里为一个值,但也可以为一个向量。 将图做傅里叶变换后,可以根据上图计算的特征值和特征向量,将原图在频率上表达。
上图中每个特征值对应的特征向量都对应其相应点在该特征值频率下的强度大小。
将信号乘以一个拉普拉斯矩阵,即对其做拉普拉斯变化。下面计算表明,对信号做拉普拉斯变换,可以表示某节点与其所有邻域节点差异的和。
3.GCN网络
GCN1.0
用随机初始化参数作为卷积核。 。
特点:
- 计算复杂度高O(n2)
- 卷积核需要N个参数,没有实现参数共享
- 卷积核不具有空间局部性,每次卷积都要考虑所有节点
GCN2.0
将卷积核设置为,其中为随机参数,为特征值。。
特点:
- 卷积核有k个参数,一般小于n,其中k代表卷积的层数或者邻域的阶数。
- 不需要再求特征值和特征向量。
- 只对顶点的k阶邻域的特征做加权求和,因此具有空间局部性。
GCN2.0 ChbeyNet
,其中,为最大特征值,。
GCN3.0
多层图卷积网路的公式为。其中A为图的邻接信息,D为图的度矩阵,为第l层的权重。
其推导过程为:
- 引入当前节点信息,
- 对节点平均,防止梯度爆炸
- 引入权重
- 引入激活函数
三、基于空间的GNN
1.概念
不同图的节点、边、权重不都相同,图同构网络要解决的最大的问题就是要区分不同的网路。为了区分不同的图网络结构,这里引入数学中的单射概念,即一个输入对应一个函数输出值。与图同构测试(WL)相似,通过聚集网络中邻居的特征向量迭代地更新节点的向量,从而区分不同的图,即实现网络的单射。为了满足单射的结果,网络可以按照一下方式定义:
,其中f可以为多集函数。
基于邻域聚合的GIN可以分为一下三个模块:
- aggregate:聚合一阶邻域特征。
- combine:将邻居聚合的特征与当前节点特征合并,并更新当前节点特征。
- readout:将节点特征合并为图特征。
2.图同构网络GIN
首先是aggregate模块,这里给出一个推论。
根据上述推论,我们可以将节点更新模块combine定义为:
其中MLP为多层感知器,可以近似拟合任何函数。
readout模块使用concat+sum,对每次迭代的节点求和得到图的特征,最后拼接起来。
总结
本文主要介绍了GNN网络解决的问题,然后在理论上介绍了本人对GCN和GIN结构的理解。文中提到的公式缺乏具体的推导过程,只是一个整体上的理解。小白一个,如果有错欢迎批评指出。
参考文献:
- 如何理解 Graph Convolutional Network(GCN)? - superbrother的回答 - 知乎 https://www.zhihu.com/question/54504471/answer/332657604
- 图神经网络的背后:HOW POWERFUL ARE GRAPH NEURAL NETWORKS? - 风浪的文章 - 知乎 https://zhuanlan.zhihu.com/p/66589334
- 李宏毅2020机器学习深度学习 https://www.bilibili.com/video/BV1JE411g7XF/?p=19
- 【GNN】万字长文带你入门 GCN - 阿泽的文章 - 知乎 https://zhuanlan.zhihu.com/p/120311352
- GCN入门理论 https://www.jianshu.com/p/0c88551a8fd8
- 一文读懂图卷积GCN - 苘郁蓁的文章 - 知乎 https://zhuanlan.zhihu.com/p/89503068