图卷积(4)——谱域图卷积(3)
图卷积(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⋆Ggθ=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−1Fk,i,jUTxk,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(UFkUTxk)
UTxkU^Tx_kUTxk表是从空域到谱域,FkUTxkF_kU^Tx_kFkUTxk表示对每一个“频率分量”放大或者缩小,最后UFkUTxkUF_kU^Tx_kUFkUTxk表示从谱域到空域。
SCNN的缺点
- 从上述公式可以看出,FFF的参数量为k×i×j×nk \times i \times j \times nk×i×j×n,参数复杂度过大,计算复杂度为O(n)O(n)O(n),当节点数nnn过多时容易过拟合;
- 计算拉普拉斯矩阵的特征值分解十分耗时,计算复杂度为O(n3)O(n^{3})O(n3),当面临社交网络这种节点数达到上百万的情况时,计算消耗过于庞大;
- 无法保证局部连接;
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}Λ^=λmax2−In,则gθ(Λ)=∑k=0KβkTk(Λ^)g_{\theta}(\Lambda)=\sum_{k=0}^{K} \beta_{k} T_{k}(\hat{\Lambda})gθ(Λ)=∑k=0KβkTk(Λ^),那么图卷积操作便可以化简为:
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⋆Ggθ=UgθUTx=Uk=0∑KβkTk(Λ^)UTx=k=0∑KβkTk(UΛ^UT)x=k=0∑KβkTk(L^)x
第二行到第三行推导过程略,如果是大佬可以自行推导。.这样一来,我们便不再需要对拉普拉斯矩阵进行特征分解获得其特征向量了,可以直接使用拉普拉斯矩阵。
ChebNet特点
- 卷积核中只有参数βk\beta_kβk需要学习,一共k+1k+1k+1个参数,大大减少了参数量;
- 采用切比雪夫多项式代替谱域图卷积的卷积核后,不需要再对拉普拉斯矩阵进行特征分解,省略了最耗时的步骤;
- 卷积核有了严格的空间局限性,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λmaxL−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^=λmax2L−Inmax=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⋆Ggθ=k=0∑KβkTk(L^)x=k=0∑1β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
进一步简化,令β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⋆Ggθ=(θ(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^=∑iW~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⋆Ggθ=θ(D~−1/2W~D~−1/2)x
关于GCN的思考:
- 在忽略输入和输出通道的情况下,一个卷积核需要学习的参数只有一个θ\thetaθ,极大程度上减少了参数量;
- 虽然卷积核减小了(GCN采用k=1k=1k=1时的切比雪夫多项式,邻域大小为1,相对于3×33\times33×3的普通卷积),但论文作者认为可以通过堆叠多层GCN来扩大感受野;
- 将一层GCN类比到图像当中,相对于一个3×33\times33×3的卷积核只有一个参数,虽然模型参数量极大程度减小了,但模型的能力也被削弱,可能难以学习一些复杂的任务;
图卷积(4)——谱域图卷积(3)相关推荐
- 图卷积神经网络(part3)--三个经典谱域图卷积模型
学习笔记,仅供参考,有错必究 文章目录 三个经典谱域图卷积模型 概述 SCNN SCNN的缺点 ChebNet GCN 三个经典谱域图卷积模型 概述 三个图谱卷积模型(SCNN.ChebNet.GCN ...
- gcn 图卷积神经网络_谱域图卷积模型---SCNN,ChebNet,GCN
对于图神经网络(GNN)而言,其实现卷积主要有两种两种方法,分别是谱域图卷积方法和空域图卷积方法.这次主要介绍使用谱方法实现卷积的三个模型,即SCNN,ChebNet,GCN. 近几年图神经网络的越来 ...
- 图卷积神经网络1-谱域图卷积:拉普拉斯变换到谱域图卷积
知乎主页 备注:本篇博客摘自某培训机构上的图神经网络讲解的视频内容,该视频关于图神经网络入门讲解.经典算法的引入和优缺点的介绍比较详细,逻辑主线也比较清晰.因此记录分享下. 目录: 图卷积近年发展 图 ...
- 【Pytorch神经网络理论篇】 26 基于空间域的图卷积GCNs(ConvGNNs):定点域+谱域+图卷积的操作步骤
图卷积网络(Graph Convolutional Network,GCN)是一种能对图数据进行深度学习的方法.图卷积中的"图"是指数学(图论)中用顶点和边建立的有相关联系的拓扑图 ...
- 【Pytorch神经网络理论篇】 25 基于谱域图神经网络GNN:基础知识+GNN功能+矩阵基础+图卷积神经网络+拉普拉斯矩阵
图神经网络(Graph Neural Network,GNN)是一类能够从图结构数据中学习特征规律的神经网络,是解决图结构数据(非欧氏空间数据)机器学习问题的最重要的技术. 1 图神经网络的基础知识 ...
- 使用matlab读取图像并通过matlab自带的fft2,fftshift,ifftshift,ifft2等函数获取该图像的傅里叶频谱图,幅度图,相位谱图,幅度图,相位谱图,幅度谱重建图以及相位谱重建
%% 读取图像.预处理 Picture1 = imread('Cameraman.tif');tryPicture1=rgb2gray(Picture1); % 如果是RGB图像,转成灰度图 catc ...
- 图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导
文章目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral domai ...
- 图卷积神经网络3-空域卷积:GNN/GraphSAGE/PGC的引入和介绍
知乎主页https://www.zhihu.com/people/shuang-shou-cha-dai-53https://www.zhihu.com/people/shuang-shou-cha- ...
- 图卷积神经网络4-空域卷积:空域卷积局限性分析和过平滑解决方案
知乎主页https://www.zhihu.com/people/shuang-shou-cha-dai-53https://www.zhihu.com/people/shuang-shou-cha- ...
最新文章
- 对分组交换(packet switching)高效迅速灵活可靠四个优点的理解
- c语言题中的一些陷阱
- .NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(二)
- python django框架 比php_ThinkPHP, Django这两个框架孰优孰略,忽略语言本身?
- 基于Vue的WebApp项目开发(四)
- ECMAScript 继承机制实现
- 【控制】控制学习路线资源整理
- 小爱音响调用php接口_PHP调用语音合成接口
- java jri_Java调用R(二)_JRI | 学步园
- 机器人瓦力机械舞_25个与机器人有关的“前卫”知识,你知道几个?
- python之yield
- 用matlab抽样定理验证,用MATLAB验证时域抽样定理
- js语音识别_js 语音识别_js 语音识别库 - 云+社区 - 腾讯云
- 【Caffe安装】Ubuntu14.04上Caffe配置安装(Only CPU)
- myloader还原恢复详解
- 0x0000011b解决办法
- 解决微信小程序银行卡号输入转换格式
- 基础训练:龟兔赛跑预测
- 【游戏人生】一个游戏程序员的学习资料
- 虚拟现实中漫游方式的分类