ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

学习笔记·GNN&GCN

2022-06-20 19:33:59  阅读:190  来源: 互联网

标签:0.1 0.2 笔记 GCN 卷积 bmatrix tilde GNN 节点


目录

博文介绍

对于初学者来说,GNN还是好理解的,但是对于GCN来说,我刚开始根本不理解其中的卷积从何而来!! 这篇博文分为两部分,第一部分是我对GNN的理解,第二部分是我个人对GCN中卷积的理解。

GNN

看了B站上up主小淡鸡的视频(视频:传送门)收益匪浅,我认为,GNN的目的就是怎样聚合各节点之间的信息。


GNN的流程

GNN示意图@小淡鸡


聚合

以上图\(A\)节点为例,\(A\)的邻居是节点\(B, C, D\), 经过一次聚合后:聚合到的信息为:
邻居信息\(N = a \times (2,2,2,2,2) + b \times (3,3,3,3,3) + c \times (4,4,4,4,4)\)
这里\(a,b,c\)都是权重参数


更新

\(A = \sigma (W((1,1,1,1,1))+ \alpha \times N)\)
\(\sigma\)是激活函数(relu,sigmoid 等)这里有点像普通神经网络的线性层
\(W\)是模型需要学习的参数。


循环

图经过一次聚合后:
\(A\)有节点\(B, C, D\)的信息
\(B\)有节点\(A, C\)的信息
\(C\)有节点\(A, B, D, E\)的信息
\(D\)有节点\(A, C\)的信息
\(E\)有节点\(C\)的信息
第二次聚合,再以\(A\)节点为例,此时\(A\)聚合\(C\)的时候,\(C\)中有上一层聚合到的\(E\)的信息,所以这时\(A\)获得了二阶邻居\(E\)的特征。


GCN

GCN的卷积意义难以理解,我接下来会用图片(image)的卷积来讲解。


首先看一下公式:$$
H^{(l+1)} = \sigma (\tilde{D}^{-1/2} \tilde{A} \tilde{D}^{1/2} H^{(l)} W^{(l)}) $$
GCN
这里\(A\)是邻接矩阵, \(\tilde{D}\)是\(\tilde{A}\)的行求和所组成的对角阵, 也就是节点的度矩阵。


公式推导(物理意义)

先看这个图
例子
该图的邻接矩阵\(A\):

\[\begin{bmatrix} 0&1&1\\ 1&0&0\\ 1&0&0 \end{bmatrix} \]

节点特征值\(H^{(l)}\)为:

\[\begin{Bmatrix} [0.1&0.4]\\ [0.2&0.3]\\ [0.1&0.2] \end{Bmatrix} \]

我们首先看一下\(A H^{(l)}\)是啥:

\[\begin{bmatrix} 0&1&1\\ 1&0&0\\ 1&0&0 \end{bmatrix} · \begin{bmatrix} 0.1&0.4\\ 0.2&0.3\\ 0.1&0.2 \end{bmatrix} = \begin{bmatrix} 0.2+0.1&0.3+0.2\\ 0.1&0.4\\ 0.1&0.4 \end{bmatrix} \]

可以看到这做到了汇聚(上一节提到的GNN)的作用
再加上自己的特征值,也就是\(\tilde{A} H^{(l)}\) (这里\(\tilde{A} = A + I\)):

\[\begin{bmatrix} 1&1&1\\ 1&1&0\\ 1&0&1 \end{bmatrix} · \begin{bmatrix} 0.1&0.4\\ 0.2&0.3\\ 0.1&0.2 \end{bmatrix} = \begin{bmatrix} 0.1+0.2+0.1&0.4+0.3+0.2\\ 0.1+0.2&0.4+0.3\\ 0.1+0.1&0.4+0.2 \end{bmatrix} \]

这些矩阵乘法从数学上实现了个节点之间的聚合
Note:公式:\(H^{(l+1)} = \sigma (\tilde{D}^{-1/2} \tilde{A} \tilde{D}^{1/2} H^{(l)} W^{(l)})\)中的\(\tilde{D}^{-1/2}\)的作用其实是为了归一化


理解GCN,卷积从何而来

首先, 以两层的特征提取器举例:

\[Z = f(X, A) = softmax(\hat{A} · ReLU(\hat{A}X · W^{(0)}) · W^{(1)})) \]

在这里插入图片描述

这里\(\hat{A} = \tilde{D}^{-1/2} \tilde{A} \tilde{D}^{1/2}\), \(X\)是特征向量, \(W\)是要学习的参数。

类比图片

我们可以这么理解,如下图,图(graph) 的分类可以近似成 图片(image) 的像素级分类(即对每个像素(节点)进行分类)

  • 每个节点代表一个像素,其特征维度(向量\(X_1\)的长度)代表通道数\(C\)
  • 归一化后的邻接矩阵 \(\hat{A}\) 的每一行可以认为卷积核的形状参数 (比如说,对1号像素(节点)使用3X3的卷积核,对2号像素(节点)使用2X2的卷积核,等等),注意这里\(\hat{A}\)是固定不变的。
  • W就是所对应的卷积核参数

好, 现在根据形状参数 \(\hat{A}\) 给 图片\(I \in \mathbb{R}^{N \times C}\) 做卷积(这里图片有N个像素),得到特征图\(H^{(2)} \in \mathbb{R}^{N \times F}\),现在特征图的每个像素的特征值维度是\(\mathbb{R}^{1 \times F}\),因为是像素级分类,我们就可以让每个像素进入分类器(全连接层)了!这样像素级(GCN)分类就做完了.
在这里插入图片描述

标签:0.1,0.2,笔记,GCN,卷积,bmatrix,tilde,GNN,节点
来源: https://www.cnblogs.com/wangweixing/p/16394446.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有