图卷积(4)——谱域图卷积(3)

介绍三种谱域图卷积网络——SCNN、ChebNet和GCN。三者均是以下式子的特例:
x⋆Ggθ=UgθUTx=U(g^(λ1)⋱g^(λn))(x^(λ1)x^(λ2)⋮x^(λn))x \star_{G} g_{\theta}=U g_{\theta} U^{T} x=U\left(\begin{array}{ccc} \hat{g}\left(\lambda_{1}\right) & & \\ & \ddots & \\ & & \hat{g}\left(\lambda_{n}\right) \end{array}\right)\left(\begin{array}{c} \hat{x}\left(\lambda_{1}\right) \\ \hat{x}\left(\lambda_{2}\right) \\ \vdots \\ \hat{x}\left(\lambda_{n}\right) \end{array}\right) x⋆G​gθ​=Ugθ​UTx=U⎝⎛​g^​(λ1​)​⋱​g^​(λn​)​⎠⎞​⎝⎜⎜⎜⎛​x^(λ1​)x^(λ2​)⋮x^(λn​)​⎠⎟⎟⎟⎞​
假设一层图卷积的输入为X∈Rn×CX \in \mathbb{R}^{n \times C}X∈Rn×C,输出便为Y∈Rn×FY \in \mathbb{R}^{n \times F}Y∈Rn×F,nnn代表图中的nnn个节点,CCC代表每个节点有CCC个通道。每一次图卷积,变化的是每个节点信号的通道数(比如这里写的CCC到FFF),不变的是nnn个节点的连接方式。

SCNN

出自论文Spectral networks and locally connected networks on graphs,中心思想是用可以学习的对角矩阵代替谱域的卷积核。具体公式定义如下:
xk+1,j=h(U∑i=1Ck−1Fk,i,jUTxk,i)(j=1⋯Ck)Fk,i,j=(θ1⋱θn)x_{k+1, j}=h\left(U \sum_{i=1}^{C_{k-1}} F_{k, i, j} U^{T} x_{k, i}\right)\left(j=1 \cdots C_{k}\right) \quad F_{k, i, j}=\left(\begin{array}{lll} \theta_{1} & \\ & \ddots \\ & & \theta_{n} \end{array}\right) xk+1,j​=h(Ui=1∑Ck−1​​Fk,i,j​UTxk,i​)(j=1⋯Ck​)Fk,i,j​=⎝⎛​θ1​​⋱​θn​​⎠⎞​
其中(老样子,式子介绍了),CkC_kCk​是第kkk层的通道个数,xk,i∈Rnx_{k,i} \in \mathbb{R}^{n}xk,i​∈Rn代表第kkk层的第iii个通道的特征图,Fk,i,j∈Rn×nF_{k,i,j}\in \mathbb{R}^{n \times n}Fk,i,j​∈Rn×n代表参数化的谱域图卷积的卷积核矩阵,是一个对角矩阵,包含了nnn个可学习的参数,h(⋅)h(\cdot)h(⋅)为激活函数。
当输入和输出通道数都为1时,上述公式便简化为以下式子,便于理解
xk+1=h(UFkUTxk)x_{k+1} = h(UF_kU^Tx_k) xk+1​=h(UFk​UTxk​)
UTxkU^Tx_kUTxk​表是从空域到谱域,FkUTxkF_kU^Tx_kFk​UTxk​表示对每一个“频率分量”放大或者缩小,最后UFkUTxkUF_kU^Tx_kUFk​UTxk​表示从谱域到空域。

SCNN的缺点

  1. 从上述公式可以看出,FFF的参数量为k×i×j×nk \times i \times j \times nk×i×j×n,参数复杂度过大,计算复杂度为O(n)O(n)O(n),当节点数nnn过多时容易过拟合;
  2. 计算拉普拉斯矩阵的特征值分解十分耗时,计算复杂度为O(n3)O(n^{3})O(n3),当面临社交网络这种节点数达到上百万的情况时,计算消耗过于庞大;
  3. 无法保证局部连接;

ChebNet

为了解决SCNN计算复杂度过高的问题,ChebNet采用了Chebyshev(切比雪夫)多项式来代替谱域的卷积核。论文地址:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering

Chebyshev多项式

切比雪夫多项式在逼近理论中有重要的应用,可用于多项式插值。具体形式如下:
T0(x)=1T1(x)=xTn+1(x)=2xTn(x)−Tn−1(x)\begin{aligned} T_0(x) &= 1 \\ T_1(x) &= x \\ T_{n+1}(x) &= 2xT_n(x) - T_{n-1}(x) \end{aligned} T0​(x)T1​(x)Tn+1​(x)​=1=x=2xTn​(x)−Tn−1​(x)​
那对于矩阵来说,只需切比雪夫多项式中第一项的1改为III,xxx改为矩阵LLL即可。

理解ChebNet

将谱域图卷积核换成切比雪夫多项式,原用的对角矩阵定义为gθ=diag⁡(UTg)g_{\theta}=\operatorname{diag}\left(U^{T} g\right)gθ​=diag(UTg),那么我们定义Λ^=2λmax⁡−In\hat{\Lambda}=\frac{2}{\lambda_{\max }}-I_{n}Λ^=λmax​2​−In​,则gθ(Λ)=∑k=0KβkTk(Λ^)g_{\theta}(\Lambda)=\sum_{k=0}^{K} \beta_{k} T_{k}(\hat{\Lambda})gθ​(Λ)=∑k=0K​βk​Tk​(Λ^),那么图卷积操作便可以化简为:
x⋆Ggθ=UgθUTx=U∑k=0KβkTk(Λ^)UTx=∑k=0KβkTk(UΛ^UT)x=∑k=0KβkTk(L^)x\begin{aligned} x \star_{G}g_{\theta} &= Ug_{\theta}U^Tx \\ &=U \sum_{k=0}^{K} \beta_{k} T_{k}(\hat{\Lambda}) U^{T}x \\ &= \sum_{k=0}^{K} \beta_{k} T_{k}\left(U \hat{\Lambda} U^{T}\right) x \\ &= \sum_{k=0}^{K} \beta_{k} T_{k}\left( \hat{L} \right) x \end{aligned} x⋆G​gθ​​=Ugθ​UTx=Uk=0∑K​βk​Tk​(Λ^)UTx=k=0∑K​βk​Tk​(UΛ^UT)x=k=0∑K​βk​Tk​(L^)x​
第二行到第三行推导过程略,如果是大佬可以自行推导。.这样一来,我们便不再需要对拉普拉斯矩阵进行特征分解获得其特征向量了,可以直接使用拉普拉斯矩阵

ChebNet特点

  1. 卷积核中只有参数βk\beta_kβk​需要学习,一共k+1k+1k+1个参数,大大减少了参数量;
  2. 采用切比雪夫多项式代替谱域图卷积的卷积核后,不需要再对拉普拉斯矩阵进行特征分解,省略了最耗时的步骤;
  3. 卷积核有了严格的空间局限性,kkk就是卷积核的“感受野半径”,即将距离中心节点kkk个节点作为邻域节点(k=1k=1k=1时便相当于普通的3×33\times33×3卷积,邻域为1);

GCN

GCN,出自论文Semi-Supervised Classification With Graoh Convolutional Networks,可以视为对ChebNet的进一步简化,GCN仅仅考虑1阶切比雪夫多项式的情况:
T0(L^)=I,T1(L^)=L^L^=2λmax⁡L−Inλmax⁡=2L=In−D−1/2WD−1/2\begin{aligned} T_0(\hat{L}&)=I, T_1(\hat{L})=\hat{L} \\ \hat{L}&=\frac{2}{\lambda_{\max }} L-I_{n} \\ \lambda&_{\max} = 2 \\ L=I_n-&D^{-1/2}WD^{-1/2} \end{aligned} T0​(L^L^λL=In​−​)=I,T1​(L^)=L^=λmax​2​L−In​max​=2D−1/2WD−1/2​
那么图卷积操作便可以写为:
x⋆Ggθ=∑k=0KβkTk(L^)x=∑k=01βkTk(L^)x=β0T0(L^)x+β1T1(L^)x=(β0+β1L^)x=(β0+β1(L−In))x=(β0−β1(D−1/2WD−1/2))x\begin{aligned} x \star_{G}g_{\theta} &= \sum_{k=0}^{K} \beta_{k} T_{k}\left( \hat{L} \right) x = \sum_{k=0}^{1} \beta_{k} T_{k}\left( \hat{L} \right) x \\ &= \beta_0T_0(\hat{L})x + \beta_1T_1(\hat{L})x \\ &= (\beta_0+\beta_1\hat{L})x \\ &= (\beta_0+\beta_1(L-I_n))x \\ &= (\beta_0-\beta_1(D^{-1/2}WD^{-1/2}))x \end{aligned} x⋆G​gθ​​=k=0∑K​βk​Tk​(L^)x=k=0∑1​βk​Tk​(L^)x=β0​T0​(L^)x+β1​T1​(L^)x=(β0​+β1​L^)x=(β0​+β1​(L−In​))x=(β0​−β1​(D−1/2WD−1/2))x​
进一步简化,令β0=−β1=θ\beta_0=-\beta_1=\thetaβ0​=−β1​=θ,这样使得每个卷积核需要学习的参数只有一个,那么此时图卷积操作的公式为:x⋆Ggθ=(θ(D−1/2WD−1/2+In))xx \star_{G} g_{\theta}=\left(\theta\left(D^{-1 / 2} W D^{-1 / 2}+I_{n}\right)\right) xx⋆G​gθ​=(θ(D−1/2WD−1/2+In​))x
由于D−1/2WD−1/2+InD^{-1 / 2} W D^{-1 / 2}+I_{n}D−1/2WD−1/2+In​的特征值范围在[0,2][0,2][0,2],如果在深度神经网络中使用该算子,那么在经过很多层的梯度反传之后,会导致数值发散和梯度弥散/爆炸。原文中,为了解决该问题,作者提出了一个renormalization trick。作者定义了一个新的邻接矩阵W~=W+In\tilde{W}=W+I_nW~=W+In​,新的度矩阵便为D^=∑iW~ij\hat{D}=\sum_{i} \tilde{W}_{i j}D^=∑i​W~ij​。那么最终的图卷积操作的公式为:x⋆Ggθ=θ(D~−1/2W~D~−1/2)xx \star_{G} g_{\theta}=\theta\left(\tilde{D}^{-1 / 2} \tilde{W} \tilde{D}^{-1 / 2}\right) xx⋆G​gθ​=θ(D~−1/2W~D~−1/2)x
关于GCN的思考:

  1. 在忽略输入和输出通道的情况下,一个卷积核需要学习的参数只有一个θ\thetaθ,极大程度上减少了参数量;
  2. 虽然卷积核减小了(GCN采用k=1k=1k=1时的切比雪夫多项式,邻域大小为1,相对于3×33\times33×3的普通卷积),但论文作者认为可以通过堆叠多层GCN来扩大感受野;
  3. 将一层GCN类比到图像当中,相对于一个3×33\times33×3的卷积核只有一个参数,虽然模型参数量极大程度减小了,但模型的能力也被削弱,可能难以学习一些复杂的任务;

图卷积(4)——谱域图卷积(3)相关推荐

  1. 图卷积神经网络(part3)--三个经典谱域图卷积模型

    学习笔记,仅供参考,有错必究 文章目录 三个经典谱域图卷积模型 概述 SCNN SCNN的缺点 ChebNet GCN 三个经典谱域图卷积模型 概述 三个图谱卷积模型(SCNN.ChebNet.GCN ...

  2. gcn 图卷积神经网络_谱域图卷积模型---SCNN,ChebNet,GCN

    对于图神经网络(GNN)而言,其实现卷积主要有两种两种方法,分别是谱域图卷积方法和空域图卷积方法.这次主要介绍使用谱方法实现卷积的三个模型,即SCNN,ChebNet,GCN. 近几年图神经网络的越来 ...

  3. 图卷积神经网络1-谱域图卷积:拉普拉斯变换到谱域图卷积

    知乎主页 备注:本篇博客摘自某培训机构上的图神经网络讲解的视频内容,该视频关于图神经网络入门讲解.经典算法的引入和优缺点的介绍比较详细,逻辑主线也比较清晰.因此记录分享下. 目录: 图卷积近年发展 图 ...

  4. 【Pytorch神经网络理论篇】 26 基于空间域的图卷积GCNs(ConvGNNs):定点域+谱域+图卷积的操作步骤

    图卷积网络(Graph Convolutional Network,GCN)是一种能对图数据进行深度学习的方法.图卷积中的"图"是指数学(图论)中用顶点和边建立的有相关联系的拓扑图 ...

  5. 【Pytorch神经网络理论篇】 25 基于谱域图神经网络GNN:基础知识+GNN功能+矩阵基础+图卷积神经网络+拉普拉斯矩阵

    图神经网络(Graph Neural Network,GNN)是一类能够从图结构数据中学习特征规律的神经网络,是解决图结构数据(非欧氏空间数据)机器学习问题的最重要的技术. 1 图神经网络的基础知识 ...

  6. 使用matlab读取图像并通过matlab自带的fft2,fftshift,ifftshift,ifft2等函数获取该图像的傅里叶频谱图,幅度图,相位谱图,幅度图,相位谱图,幅度谱重建图以及相位谱重建

    %% 读取图像.预处理 Picture1 = imread('Cameraman.tif');tryPicture1=rgb2gray(Picture1); % 如果是RGB图像,转成灰度图 catc ...

  7. 图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导

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

  8. 图卷积神经网络3-空域卷积:GNN/GraphSAGE/PGC的引入和介绍

    知乎主页https://www.zhihu.com/people/shuang-shou-cha-dai-53https://www.zhihu.com/people/shuang-shou-cha- ...

  9. 图卷积神经网络4-空域卷积:空域卷积局限性分析和过平滑解决方案

    知乎主页https://www.zhihu.com/people/shuang-shou-cha-dai-53https://www.zhihu.com/people/shuang-shou-cha- ...

最新文章

  1. 对分组交换(packet switching)高效迅速灵活可靠四个优点的理解
  2. c语言题中的一些陷阱
  3. .NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(二)
  4. python django框架 比php_ThinkPHP, Django这两个框架孰优孰略,忽略语言本身?
  5. 基于Vue的WebApp项目开发(四)
  6. ECMAScript 继承机制实现
  7. 【控制】控制学习路线资源整理
  8. 小爱音响调用php接口_PHP调用语音合成接口
  9. java jri_Java调用R(二)_JRI | 学步园
  10. 机器人瓦力机械舞_25个与机器人有关的“前卫”知识,你知道几个?
  11. python之yield
  12. 用matlab抽样定理验证,用MATLAB验证时域抽样定理
  13. js语音识别_js 语音识别_js 语音识别库 - 云+社区 - 腾讯云
  14. 【Caffe安装】Ubuntu14.04上Caffe配置安装(Only CPU)
  15. myloader还原恢复详解
  16. 0x0000011b解决办法
  17. 解决微信小程序银行卡号输入转换格式
  18. 基础训练:龟兔赛跑预测
  19. 【游戏人生】一个游戏程序员的学习资料
  20. 虚拟现实中漫游方式的分类

热门文章

  1. WPS再工具栏中添加mathtype
  2. 使用vue预览Word文件
  3. 围绕github的一个创业思路
  4. android 9.0 10.0 设置wifi列表黑名单(ssid不显示wifi列表)
  5. android n名称,Android N正式命名为“牛轧糖”,谷歌这一桌子甜点你吃过几个?
  6. 大疆测试面经(部分附答案)
  7. 锐龙r7 5700x参数r7 5700x相当于英特尔什么级别
  8. 基于MPC的自适应巡航控制(Matlab代码实现)
  9. wps怎样批量删掉批注
  10. 工作中:解决wps文字无法打开数据源