图数据分析到图卷积神经网络
图数据(0,1板块)
目录:
0、引入
1、图数据
1.1 何为图数据1.2 图相关的理论铺垫1.2.1 线性代数——从矩阵的乘法到以特征向量为基的线性变换1.2.2 谱图理论1.3 图数据应用——谱聚类第1板块 总结
2、图卷积神经网络综述
3、图卷积神经网络的实践
0.引入——卷积神经网络到图数据
\qquad卷积神经网络的发展极大促进了深度学习的发展,广泛应用于图像识别和自然语言处理领域,卷积神经网络几乎能做到将很多问题毕其功于一役,以下特点可谓功不可没:
1、利用平移不变性抽取局部的特征——局部不变性
2、通过多层的卷积来实现低级到高级抽象特征的抽取
3、权重共享,降低训练成本
\qquad卷积神经网络已经为很多种数据类型的深度学习任务,诸如图像、文本等领域带来了飞跃式的发展,而机器学习中一类广泛而特殊的数据——图数据,具备典型的局部连接特征,人们开始思考卷积神经网络应用于此可行性。
1.图数据
1.1 何为图数据
\qquad重点是节点、边、邻接矩阵、度矩阵、拉普拉斯矩阵的概念
\qquad何谓图?图由节点和边构成,节点和边都带有自己的特征信息。下面是大头之前做过的一个国际贸易额可视化图:
\qquad图数据主要包含以下构成:
- 节点的特征数据Xk×nX_{k\times n}Xk×n,假设有nnn个节点,不妨记为Xk×n=[x1,x2,x3...xn]TX_{k\times n}=[x_1,x_2,x_3...x_n]^TXk×n=[x1,x2,x3...xn]T,其中xix_ixi为来自节点iii的kkk维特征,xi=[xi,1,xi,2...xi,k]x_i=[x_{i,1},x_{i,2}...x_{i,k}]xi=[xi,1,xi,2...xi,k]。看图来说,节点数据可以是国家进出口贸易总额、国家GDP、国家人口数等等
- 节点的邻居关系。对于无向图来说,邻接矩阵由An×nA_{n\times n}An×n表示,Ai,j=1A_{i,j}=1Ai,j=1,表示节点iii和jjj之间存在边连接,反之Ai,j=0A_{i,j}=0Ai,j=0表示两点之间无连接。看图来说,就是两个国家之间是否有贸易往来。
- 节点之间的关系信息。常见于含权重的邻接矩阵,此处我们单独定义节点之间关系权重矩阵Wn×nW_{n\times n}Wn×n,权重矩阵描述的是边的特征信息。看图来说可以是国家之间的进出口贸易额,WCN,USAW_{CN,USA}WCN,USA表示中美贸易额。
- 节点的度信息。用矩阵DDD表示,这是一个对角阵。对于无向图来说,第iii个节点节点与did_idi节点相连,那么其节点的度就是did_idi。di=∑jnAi,jd_i=\sum_{j}^n A_{i,j}di=∑jnAi,j
- 节点的加权度信息,用矩阵DwD_wDw表示,也是对角阵,Dw(i,i)=∑jnAi,jD_{w(i,i)}=\sum_{j}^n A_{i,j}Dw(i,i)=∑jnAi,j
\qquad图数据具有典型的局部连接结构,适用于抽取多尺度的局部特征,再组合成具有强表示能力的特征。但是图数据由于其本身特性,传统的CNN的卷积核并不适用,主要原因是图数据不具备规则的欧几里得空间结构,节点之间不具备稳定的局部位置关系。类比图片随着节点index排序的变化,相同的图会呈现完全迥异的欧几里得空间结构,并且每个节点周围的邻居节点数也是不一样的,因此直接的CNN到GCN是无法迁移的。
1.2 图相关的理论铺垫
1.2.1 线性代数——从矩阵的乘法到以特征向量为基的线性变换
\qquad首先从矩阵的乘法说起,我一直是这样理解一个矩阵的乘法的,无论是矩阵还是向量左乘以一个矩阵BBB时候,其结果都是以矩阵BBB的列向量作为基(或者坐标轴),以右乘的对象作为坐标,在这组基张成的线性空间里构造一个对象。以我们常见的向量为例,向量xxx并不只是单纯的一个向量xxx,而是IxIxIx,其中III是规模合适的单位阵,也就是说我们的向量xxx是某个不露面的向量在基于单位矩阵列向量这组正交基下的一组坐标。
\qquad更进一步,做给定矩阵AAA,规模合适的列向量xxx,我们令y=Axy=Axy=Ax,其实基于上文所述,可改写为Iy=AxIy=AxIy=Ax,关于这个矩阵乘法,可以理解为我们在矩阵AAA的列向量作为基,以向量xxx各维度标量的数值作为坐标,生成的线性空间中的对象,该对象在单位矩阵列向量的正交基下的坐标表示为yyy。
\qquad再进一步,对于一个向量xxx,其本质上是某个线性空间的对象在单位矩阵正交基下的坐标表示,那么我们如何将这个对象转化为以某个可逆矩阵PPP为基下的坐标表示呢?下面填空题就来了:x=P(??)x=P(??)x=P(??),答案是P−1xP^{-1}xP−1x,如果一个向量在单位矩阵为基下的坐标表示为xxx,那么其在PPP的列向量为基之下的坐标表示就为:P−1xP^{-1}xP−1x。如果这个矩阵PPP恰好是一个正交阵,那么自然有P−1x=PTxP^{-1}x=P^TxP−1x=PTx,某向量在单位矩阵为基下的坐标表示xxx,那其在正交阵PPP下的表示为PTxP^TxPTx.
\qquad举个不是那么雅观的例子,线性空间里面的某个对象,就像是现实中的一头猪,猪的坐标就像是我们在给猪拍照,猪的官方照——也就是这个线性空间的对象在单位矩阵为基下的坐标表示,是最常用的也是约定俗成的即Pig=IPigPig=IPigPig=IPig,然后我们可以调整镜头,在不同的坐标系下去看这头猪,拍下形色各异的照片,但是猪就是这一头猪,不管在什么样的视角——矩阵左乘,拍出什么样的照片——该组基下的坐标,这头猪都是同一头猪,从头到尾都是这一头猪——Iy=Ax=Bz=...Iy=Ax=Bz=...Iy=Ax=Bz=...
\qquad基于以上叙述,让我们再换一个更深入的视角来重新审视矩阵的乘法,矩阵乘法带来了什么样的线性变换。我们针对一个可以特征对角化的矩阵AAA来说,A=SΛS−1A=S\Lambda {S^{-1} }A=SΛS−1,矩阵乘法AxAxAx可以通过特征对角化分解为:Ax=SΛS−1xAx=S\Lambda {S^{-1} }xAx=SΛS−1x,据前文所述,S−1x{S^{-1}}xS−1x是将单位阵为基下向量的坐标xxx基变换到了矩阵SSS之下的坐标,随后我们通过特征对角阵Λ\LambdaΛ对基变换后的坐标逐个维度根据矩阵AAA的特征值做了拉伸,拉伸过后的坐标,依旧是在矩阵SSS为基下的坐标,最后我们左乘矩阵SSS,将拉伸后的坐标基变换到单位矩阵坐标系下。至此我们将某个矩阵乘以一个向量分解为:
- S−1x{S^{-1}}xS−1x——基变换到坐标系S下
- ΛS−1x\Lambda {S^{-1}}xΛS−1x——新坐标系下的坐标根据矩阵AAA特征值逐维度做拉伸
- SΛS−1xS\Lambda {S^{-1} }xSΛS−1x——逐维度拉伸后再将拉伸后坐标转移回单位阵坐标系下
\qquad由此我们可以看到,左乘以某个矩阵,作为一个线性变换,对变换的对象做了如上的一些操作,这里我们需要注意,只是更换坐标系是不会从本质上对变换对象产生影响的——换个角度去看猪,猪还是那头猪,真正对变换对象产生影响的是特征对角阵Λ\LambdaΛ。这里我们不妨把特征对角阵Λ\LambdaΛ换成一个单位矩阵III,言外之意是我们对基变换后的向量各维度不做拉伸保持原样,变换如下:
SIS−1x=SS−1x=xSI {S^{-1} }x=S {S^{-1} }x=xSIS−1x=SS−1x=x
\qquad向量xxx看破一切地表示,我还是原来那个我,只要你不拉伸,左乘的矩阵的特征对角阵Λ\LambdaΛ是个单位阵,那经历这个变换后,注定还是那个我。这也暗含了一个讯息:如果一个矩阵AAA的特征值全为1,那么这个矩阵必然为单位阵,即A=IA=IA=I。
\qquad最后我们来探讨一个问题,如果一个向量多次左乘同一个矩阵回来带什么样的效果?
Akx=(SΛS−1)kxA^{k}x=(S\Lambda {S^{-1} })^{k}xAkx=(SΛS−1)kx
=SΛkS−1x=S\Lambda^{k} {S^{-1} }x=SΛkS−1x
\qquad可见当k趋于无穷时,若矩阵AAA的最大特征值≥1\geq 1≥1,AkxA^{k}xAkx会无限趋近于矩阵AAA最大特征值的特征向量方向,其他方向的拉伸相较于最大特征向量方向的拉伸将会不值一提。这也很明白的解释了在马尔科夫转移阵里面,如果存在一个稳定状态,那么稳定状态也一定是马尔科夫阵最大特征值得特征向量方向。
\qquad
1.2.2 谱图理论
(1)矩阵的乘法意味着线性变化,节点特征向量左乘以邻接矩阵、拉普拉斯矩阵都意味对节点特征进行怎样的变换?
\qquad由于我们在进行图卷积神经网络相关的分析时候,面对的对象都是诸如邻接矩阵、度矩阵、拉普拉斯矩阵等,因此在介绍图卷积神经网络之前,先对谱图理论展开介绍。
\qquad首先,对于一个无向图GGG,节点数据为x=[x1,x2...xn]Tx=[x_1,x_2...x_n]^Tx=[x1,x2...xn]T,度矩阵DDD,邻接矩阵AAA,邻接矩阵和度矩阵满足关系
D(i,i)=∑jnA(i,j)D_{(i,i)}=\sum_{j}^n A_{(i,j)}D(i,i)=j∑nA(i,j)
\qquad定义拉普拉斯矩阵LLL满足L=D−AL=D-AL=D−A。
\qquad节点数据左乘邻接矩阵或者是拉普拉斯矩阵,都是在做将节点邻居的数据汇总到中心节点的变换。具体来看,对于标准化后的邻接矩阵:
A∗=D−1AA^*=D^{-1}AA∗=D−1A
A∗x(i)=∑jnA(i,j)D(i,i)xjA^*x_{(i)}=\sum_{j}^n \frac{A_{(i,j)}}{D_{(i,i)}}x_jA∗x(i)=j∑nD(i,i)A(i,j)xj
\qquad即经过左乘邻接矩阵,将节点数据x(i)x_{(i)}x(i)更新为与节点iii相连的节点的数据的平均值。对于标准化后的拉普拉斯矩阵,拉普拉斯矩阵的标准化,常用的标准化方法有两种,一种是对称标准化L∗=D−12LD−12=I−D−12AD−12L^*=D^{-\frac{1}{2}}LD^{-\frac{1}{2}}=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2}}L∗=D−21LD−21=I−D−21AD−21,另一类是做成度矩阵的逆来做标准化L∗=D−1L=I−D−1AL^*=D^{-1}L=I-D^{-1}AL∗=D−1L=I−D−1A。此处我们采取第一种标准化,有:
L∗x(i)=∑jnA(i,j)D(i,i)(x(i)−x(j))L^*x_{(i)}=\sum_{j}^n\frac{A_{(i,j)}}{D_{(i,i)}}(x_{(i)}-x_{(j)})L∗x(i)=j∑nD(i,i)A(i,j)(x(i)−x(j))
=x(i)−∑jnA(i,j)D(i,i)x(j)=x_{(i)}-\sum_{j}^n\frac{A_{(i,j)}}{D_{(i,i)}}x{(j)}=x(i)−j∑nD(i,i)A(i,j)x(j)
\qquad即经过左乘拉普拉斯矩阵,将节点数据x(i)x_{(i)}x(i)更新为中心节点和周围节点的加权平均差异。这也是在拉普拉斯算子用于图像分割的主要原理,图像上的拉普拉斯算子是围绕中心节点和周围节点的二阶差分,如果中心节点和周围节点和差异很大,这意味着中心节点位于不同的色块的交界处。
\qquad
\qquad
\qquad
(2)拉普拉斯矩阵的谱分解
\qquad这里的谱分解是从信号角度去理解拉普拉斯矩阵,就其本质就是对拉普拉斯矩阵做特征对角化,特征向量类比信号处理中的频率,是某个基,类似小波基、傅里叶基等;特征值就是频谱,反映了这个频率或者基的重要性程度,绝对值最大的特征值的绝对值就是矩阵的谱半径。这些都是很直观的概念,只是换了个说法。
\qquad关于拉普拉斯矩阵的特征值,对于标准化以后的拉普拉斯矩阵LLL,将其特征值从小到大排序,λ1≤λ2≤...≤λn\lambda_1 \leq \lambda_2 \leq ... \leq \lambda_nλ1≤λ2≤...≤λn,则有:
1. λ1=0\lambda_1=0λ1=0,拉普拉斯矩阵满足半正定性
[证明]λ1=0\lambda_1=0λ1=0意味着拉普拉斯矩阵是半正定的,对任意向量f∈Rnf\in \mathbb{R}^nf∈Rn,满足:
ftLf=12∑i,jnAi,jD(i,i)(fi−fj)2f^tLf={{1}\over{2}}\sum_{i,j}^n\frac{A_{i,j}}{D_{(i,i)}}(f_i-f_j)^2ftLf=21i,j∑nD(i,i)Ai,j(fi−fj)2
\qquad\qquad由二次型的非负性,易得半正定性。且由拉普拉斯矩阵满足:
L[1,1,1...1]T=I[1,1,1...1]T−D−1A[1,1,1...1]TL[1,1,1...1]^T=I[1,1,1...1]^T-D^{-1}A[1,1,1...1]^TL[1,1,1...1]T=I[1,1,1...1]T−D−1A[1,1,1...1]T
=[1−∑jnA(1,j)D(1,1),1−∑jnA(2,j)D(2,2)...1−∑jnA(n,j)D(n,n)]T=[1-\sum_{j}^n\frac{A_{(1,j)}}{D_{(1,1)}},1-\sum_{j}^n\frac{A_{(2,j)}}{D_{(2,2)}}...1-\sum_{j}^n\frac{A_{(n,j)}}{D_{(n,n)}}]^T=[1−j∑nD(1,1)A(1,j),1−j∑nD(2,2)A(2,j)...1−j∑nD(n,n)A(n,j)]T
=0⋅[1,1,1...1]T=0\cdot [1,1,1...1]^T=0⋅[1,1,1...1]T
\qquad\qquad易得拉普拉斯矩阵存在一个特征向量[1,1,1…1]^T,其对应的特征值为0,即拉普拉斯矩阵最小的特征值λ1=1\lambda_1=1λ1=1
- λk=0\lambda_k=0λk=0当且仅当图GGG有k个联通区域,特征值为零的数量对应着联通区域的数量。此处不加证明地说明,拉普拉斯矩阵具有k重0特征值的时候,说明图中有k个独立的联通分量,0特征值对应的特征向量即为各个联通分量的节点组合,例如[0,0,0,1,0,1,1]T[0,0,0,1,0,1,1]^T[0,0,0,1,0,1,1]T该特征值意味着第4,6,7个节点彼此联通且不和其他节点联通
1.3 图数据应用——谱聚类
\qquad在介绍过谱图理论的基本内容之后,我们来看一些应用的内容,在无向图上基于拉普拉斯矩阵的谱聚类。
1. 聚类的两种思路
\qquad聚类方法一般有两种思路:
- 样本点在空间中的距离,根据节点的特征取值,即节点在特征空间中的位置进行聚类,例如k-means,层次聚类,GMM(高斯混合模型),SOM(自组织映射神经网络)等,其定义的等距离关系都是一个高维空间的低维球面。
- 节点之间的关系强度,可以不必给出节点在特征空间的位置,只依据节点之间的关系(距离)来实现聚类,这类聚类以谱聚类为代表。
\qquad基于空间重点的位置的第一种思路只能处理特征空间中的凸集,基于节点之间的关系的聚类方法却没有这个限制,在数据的适用性上更广泛一些,下面两幅图片分别是特征空间的凸集数据和非凸集数据,谱聚类的方法两种情况下都会适用。
注:其实这里我们还会有一类思路,我们可以利用SNE或者t-SNE的方法将原本不满足非凸的数据,转换为凸集,这样很多是适用于凸集的方法便可以派上用场。SNE和t_SNE选择高斯分布或者t分布作为拟合的分布,天然就带来了转换非凸的效果。由此看来,t-SNE的方法不仅仅可以实现数据的降维,还可以进行数据形态的变换。
2、谱聚类时距离的定义
\qquad谱聚类根据节点之间的距离关系来聚类,距离的定义可以是样本特征空间的欧氏距离,也可以是样本特征向量的夹角余弦值,也可以是径向基函数等定义的特殊距离。给定无向图G=(V,E)G=(V,E)G=(V,E),节点V={1,2,3...n}V=\{1,2,3...n\}V={1,2,3...n},边数据E={W(i,j)}i,j=1,2,…nE=\{W_{(i,j)}\}_{i,j=1,2,…n}E={W(i,j)}i,j=1,2,…n,记录样本间距离的矩阵为加权的邻接矩阵WWW,其元素W(i,j)W_{(i,j)}W(i,j)表示的是节点iii、jjj之间的距离。在加权的邻接矩阵下,我们定义度矩阵为DDD,其中D(i,i)=∑jnW(i,j)D_{(i,i)}=\sum_{j}^nW_{(i,j)}D(i,i)=∑jnW(i,j)
3、对图做切分
\qquad进行图聚类时,我们要做的是对图中的节点进行切分,这样的切分势必会切断节点之间边的联系,如果我们能够根据这个切断的联系来构造一个损失函数,那我们追求的就是是切断损失最小的图的切分,下面我们以二切分为例,再说明下这个问题。
\qquad如上图,加入我们要把一整个图一分为二,那么理应选择一个切分,只截断最少的边,切分生成如上图的两个子图,两个子图之间的连接尽可能少,连接尽可能保留在子图内部。我们定义子图之间的的连接权值:
W(A,B)=∑i∈A,j∈BW(i,j)W(A,B)=\sum_{i\in A,j\in B}W_{(i,j)}W(A,B)=i∈A,j∈B∑W(i,j)
\qquad其中WWW为带权重的邻接矩阵,我们要追求对于AB最优划分,令子图之间连接,即W(A,B)W(A,B)W(A,B)最小,问题转化为:
{A^,B^}=argmincut(A,B)=argminW(A,B)\{\hat{A},\hat{B}\}=argmin\quad cut(A,B)=argmin\quad W(A,B){A^,B^}=argmincut(A,B)=argminW(A,B)
\qquad将问题推广到寻找一张图最优的K个子图的最优划分,那么我们追求的就是子图之间的连接权重的最小化,下面定义这k个子图之间的连接权重为:
cut(A1,A2,A3...Ak)=∑ikW(Ai,Aiˉ)cut(A_1,A_2,A_3...A_k)=\sum_{i}^k W(A_i,\bar{A_i})cut(A1,A2,A3...Ak)=i∑kW(Ai,Aiˉ)
\qquad其中Aiˉ\bar{A_i}Aiˉ表示子图AIA_IAI在图上的补集,这样我们就把划分问题转为了一个优化求最小值的问题。但是直接这样处理会带来一些问题,我们没有对划分的损失函数针对子图的规模做加权平均处理,因此不可避免地子图越大损失函数越大,算法更倾向于将单独的点划分为独立的图,为了避免这个问题,我们对子图之间的连接权重做加权处理,该方法称为Normalized cut。
4、Normalized Cut
\qquad相较于之前的划分方式,此处我们计算子图之间的连接权重时,通过子图内部的节点的度数据之和进行加权,记节点iii的度为di=∑jnW(i,j)d_i=\sum_{j}^n W_{(i,j)}di=∑jnW(i,j),Normalized Cut计算方式如下:
NormalizedCut(A1,A2,A3...Ak)=min∑ikW(Ai,Aiˉ)∑j∈AidjNormalized Cut(A_1,A_2,A_3...A_k)=min \quad \sum_{i}^k \frac{W(A_i,\bar{A_i})}{\sum_{j\in A_i}d_j}NormalizedCut(A1,A2,A3...Ak)=mini∑k∑j∈AidjW(Ai,Aiˉ)
\qquad谱聚类的模型便是:
{Ak^}kK=argminNormalizedCut(A1,A2,A3...Ak)\{\hat{A_k}\}_k^K=argmin \quad Normalized Cut(A_1,A_2,A_3...A_k){Ak^}kK=argminNormalizedCut(A1,A2,A3...Ak)
\qquad引入指示变量矩阵Yn×KY_{n \times K}Yn×K:
yi∈{0,1}Ky_i\in \{0,1\}^Kyi∈{0,1}K
∑j=1Kyi,j=1\sum_{j=1}^K y_{i,j}=1j=1∑Kyi,j=1
\qquad其中y_{i,j}表示第i个样本属于第j个子图划分。指示矩阵满足性质:
YTY=∑i=1nyiyiTY^TY=\sum_{i=1}^ny_iy_i^TYTY=i=1∑nyiyiT
\qquad对于y_iy_i^T,若y_i属于k类,则仅在对角线的(k,k)(k,k)(k,k)位置上为1,其他位置均为零,由此可知累加∑i=1nyiyiT\sum_{i=1}^ny_iy_i^T∑i=1nyiyiT为对角阵,若记NkN_kNk为属于第k个划分的节点数,则
YTY=diag(N1,N2...NK)Y^TY=diag(N_1,N_2...N_K)YTY=diag(N1,N2...NK)
为方便书写,我们记Ncut=NormalizedCut(A1,A2,A3...Ak)Ncut=Normalized Cut(A_1,A_2,A_3...A_k)Ncut=NormalizedCut(A1,A2,A3...Ak),所以:
Y^=argminNcut\hat{Y}=argmin \quad NcutY^=argminNcut
\qquad将Ncut写成矩阵的形式:
Ncut=Trace[diag(W(A1,A1ˉ)∑j∈A1dj,W(A2,A2ˉ)∑j∈A2dj...W(AK,AKˉ)∑j∈AKdj)]Ncut=Trace[diag( \frac{W(A_1,\bar{A_1})}{\sum_{j\in A_1}d_j},\frac{W(A_2,\bar{A_2})}{\sum_{j\in A_2}d_j}...\frac{W(A_K,\bar{A_K})}{\sum_{j\in A_K}d_j})]Ncut=Trace[diag(∑j∈A1djW(A1,A1ˉ),∑j∈A2djW(A2,A2ˉ)...∑j∈AKdjW(AK,AKˉ))]
=Trace[diag(W(A1,A1ˉ),W(A2,A2ˉ)...W(AK,AKˉ))⋅diag(∑j∈A1dj,∑j∈A2dj...∑j∈AKdj)−1]=Trace[diag( W(A_1,\bar{A_1}), W(A_2,\bar{A_2})... W(A_K,\bar{A_K}))\cdot diag(\sum_{j\in A_1}d_j,\sum_{j\in A_2}d_j...\sum_{j\in A_K}d_j)^{-1}]=Trace[diag(W(A1,A1ˉ),W(A2,A2ˉ)...W(AK,AKˉ))⋅diag(j∈A1∑dj,j∈A2∑dj...j∈AK∑dj)−1]
=Trace[O,P−1]=Trace[O,P^{-1}]=Trace[O,P−1]
\qquad下面我们尝试给矩阵OOO、PPP换一个表达,由于D=diag(d1,d2,...dn)D=diag(d_1,d_2,...d_n)D=diag(d1,d2,...dn),由前文关于YTYY^TYYTY的叙述,我们可以将矩阵P写作:
P=YTDYP=Y^TDYP=YTDY
\qquad对于矩阵O,我们记全部节点的图为V:
O=diag(W(A1,A1ˉ),W(A2,A2ˉ)...W(AK,AKˉ))O=diag( W(A_1,\bar{A_1}), W(A_2,\bar{A_2})... W(A_K,\bar{A_K}))O=diag(W(A1,A1ˉ),W(A2,A2ˉ)...W(AK,AKˉ))
O=diag(W(Ai,V))−diag(W(Ai,Ai))O=diag( W(A_i,V))-diag( W(A_i,A_i))O=diag(W(Ai,V))−diag(W(Ai,Ai))
=diag(∑j∈Aidj)−diag(W(Ai,Ai))=diag(\sum_{j\in A_i}d_j)-diag( W(A_i,A_i))=diag(j∈Ai∑dj)−diag(W(Ai,Ai))
\qquad其中第一项我们已经给出过了,等于YTDYY^TDYYTDY,第二项可以写成YTWYY^TWYYTWY,这是因为:
YTWY=∑i=1n∑j=1nW(i,j)yiTyjY^TWY=\sum_{i=1}^n \sum_{j=1}^n W_{(i,j)}y_i^Ty_jYTWY=i=1∑nj=1∑nW(i,j)yiTyj
\qquad矩阵对角线元素为:
YTWY(k,k)=∑i∈Ak∑j∈AkW(i,j)yiTyjY^TWY_{(k,k)}=\sum_{i\in A_k} \sum_{j\in A_k} W_{(i,j)}y_i^Ty_jYTWY(k,k)=i∈Ak∑j∈Ak∑W(i,j)yiTyj
=∑i∈Ak∑j∈AkW(i,j)=W(Ak,Ak)=\sum_{i\in A_k} \sum_{j\in A_k} W_{(i,j)}=W(A_k,A_k)=i∈Ak∑j∈Ak∑W(i,j)=W(Ak,Ak)
\qquad即YTWYY^TWYYTWY对角线元素和矩阵O是相同的,故我们这里进行迹运算,结果是一样的。综上所述,在对矩阵YYY列向量仅有一维度为1其他维度为0的约束下,求解最优化问题:
argminYNcut=argminYTrace[(YT(D−W)Y)⋅(YTDY)−1]argmin_Y\quad Ncut=argmin_Y\quad Trace[(Y^T(D-W)Y)\cdot(Y^TDY)^{-1}]argminYNcut=argminYTrace[(YT(D−W)Y)⋅(YTDY)−1]
=argminYTrace[(YTLY)⋅(YTDY)−1]=argmin_Y\quad Trace[(Y^TLY)\cdot(Y^TDY)^{-1}]=argminYTrace[(YTLY)⋅(YTDY)−1]
以上形式刚好是广义瑞利商的形式,我们不加证明来看下广义瑞利商的性质:
\qquad由此我们可以确定我们的矩阵Y的行向量为拉普拉斯矩阵的n个特征向量中的k个,由瑞利商的性质可知,除了特征向量[1,1...1]T[1,1...1]^T[1,1...1]T之外,当我们选定特征值最小的其他k个对应的特征向量来构成我们的矩阵Y时,我们的求和式目标函数取得最小值。这里的思路和我们通过过定义损失函数来逐个求解主成分分析的主成分时一样。
\qquad至此我们已经说明了谱聚类的完整过程,谱聚类的运用很简单,只需要围绕拉普拉斯矩阵做特征对角化求解特征值和特征向量即可,但是求解谱聚类的过程蕴含的思想对于理解图数据很有意义。
注:关于瑞利商的推导和应用我们另写文章
总结
\qquad关于图数据的分析集中在围绕反映图结构的拉普拉斯矩阵的分析中,核心对象是拉普拉斯矩阵的特征值、特征向量,从信号处理的角度审视,将矩阵线性空间的基和变化拉伸程度转换为频率和频率的重要性程度,但是换汤不换药,其本质还是矩阵的特征分解,还是落脚在对于矩阵运算的理解上。因此我们在这个版块里花了大量的笔墨去讲述理解矩阵乘法的全新视角,这是很有意义的一件事。
\qquad关于图卷积神经网络的思想,一言以蔽之,空域卷积是基于权重矩阵非零元素的整体的一个卷积操作,参数很多,缺少权重共享降低运算量;频谱方法下的卷积,从信号处理角度理解,是对频率的一个滤波操作,通过构建不同的频率滤波器来提取不同特征,简单说就是通过给拉普拉斯矩阵换个特征对角阵来实现滤波操作;其他的基于切比雪夫不等式的方法,都是为了提升运算的效率而采用的频谱方法的简化。关于图卷积神经网络的内容我们将在下一个板块里详细展开。
图数据分析到图卷积神经网络相关推荐
- 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络 (二)
在从图(Graph)到图卷积(Graph Convolution): 漫谈图神经网络 (一)中,我们简单介绍了基于循环图神经网络的两种重要模型,在本篇中,我们将着大量笔墨介绍图卷积神经网络中的卷积操作 ...
- 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (一)
本文属于图神经网络的系列文章,文章目录如下: 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (一) 从图(Graph)到图卷积(Graph Convolutio ...
- 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (二)
本文属于图神经网络的系列文章,文章目录如下: 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (一) 从图(Graph)到图卷积(Graph Convolutio ...
- 【转载】从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (二)
从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (二) 作者: SivilTaram 出处:https://www.cnblogs.com/SivilTaram/ ...
- 一文秒懂图卷积神经网络Graph Convolutional Network(GCN)——从图信号处理(GSP)到图卷积神经网络详细推导
图卷积神经网络详解 1 为什么会出现图卷积神经网络? 2 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral do ...
- 从图(Graph)到图卷积(Graph Convolution):漫谈图 神经⽹络模型 (⼀)
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者最近看了一些图与图卷积神经网络的论文,深感其强大,但一些Sur ...
- 图深度学习——卷积神经网络循环神经网络自编码器
卷积神经网络 常用做图像分类任务.举例:识别图中的兔子 前馈神经网络做兔子图像识别 图像可以通过矩阵表示,然后将矩阵转换成向量,就可以作为前馈神经网络的输入,但是 1.参数量就非常大,需要大量数据进行 ...
- 从卷积神经网络(CNN)到图卷积神经网络(GCN)详解
目录 一.CNN和GCN的关系 二."图"的预备知识 三.图卷积网络(GCN) 四.针对于高光谱图像分类的网络优化 五.频域的图卷积神经网络 最近看到一篇引用量非常高的文章,是用图 ...
- 基于步态能量图和CNN卷积神经网络的人体步态识别matlab仿真
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 步态能量图(Gait Engery Image, GEI)是步态检测中最非常常用的特征,提取方法简单 ...
最新文章
- opencv图像处理
- Linux .bin安装文件制作
- mybatisplus 操作另一个数据库的数据_MySQL数据库的基础操作
- Python 并行编程
- 个人“乱七八糟”笔记和摘要之二
- 进击的程序媛:毕业于斯坦福,Google 元老级员工,曾任雅虎 CEO | 人物志
- DinnerNow中的ASP.NET Ajax Extensions应用---选餐流程
- 创建型模式专题总结:Creational Pattern(转自Terrylee)
- Privoxy教程使用详解
- 一级计算机脚注怎么加,word怎么插入脚注 word添加脚注图文教程
- 班长投票小程序的java代码
- 大话西游2人数最多服务器,大话西游2:全服最火服务器!凌烟阁人山人海遍地200级玩家...
- 向98年的华为学习:没有高管办公室的青铜器软件
- 这个国庆,我去佛山看舞狮,太惊艳!
- 获取post请求的数据
- H264中4x4、8x8和16x16尺寸对应场景
- thinkphp 之接收请求参数并过滤
- halcon measure_pos和measure_pairs详解
- 数据库系统原理 - - (1)数据库系统概论
- 关于时间转换总是显示1970年的问题
热门文章
- java删除修改的代码怎么写_Java代码增删查改完整流程
- LTE学习笔记--PRACH
- WPS转换成PDF在线
- icinga用NSCA监控远程Linux服务器
- f16_Automated Trading strategy_Kelly Criterion投资比_Vectorized Backtest_drawndown_value-at-risk_socket
- 软件项目管理第4版课后习题-期末复习题型分册版-练习版无答案
- 独立游戏(一) 如何通过广告获取收益
- SG函数SG定理游戏的和公平组合游戏
- 世界上第一台通用计算机是多少年诞生的,世界上第一台通用计算机ENIAC是( )年诞生的。...
- 计算机传真机电话,为什么计算机能发传真?语音信箱真是把语音投入到信箱里吗?...