0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解图神经网络的数学原理2

jf_78858299 来源:人工智能大讲堂 作者:人工智能大讲堂 2023-03-17 09:58 次阅读

整合在一起

现在我们已经完成了消息传递、聚合和更新步骤,让我们把它们放在一起,在单个节点i上形成单个GNN层:

图片

这里我们使用求和聚合和一个简单的前馈层作为函数F和H。设hi∈Rd, W1,W2⊆Rd ' ×d其中d '为嵌入维数。

使用邻接矩阵

到目前为止,我们通过单个节点i的视角观察了整个GNN正向传递,当给定整个邻接矩阵a和X⊆RN×d中所有N=∥V∥节点特征时,知道如何实现GNN正向传递也很重要。

在 MLP 前向传递中,我们想要对特征向量 xi 中的项目进行加权。这可以看作是节点特征向量 xi∈Rd 和参数矩阵 W⊆Rd′×d 的点积,其中 d′ 是嵌入维度:

图片

如果我们想对数据集中的所有样本(矢量化)这样做,我们只需将参数矩阵和特征矩阵相乘,就可以得到转换后的节点特征(消息):

图片

在gnn中,对于每个节点i,消息聚合操作包括获取相邻节点特征向量,转换它们,并将它们相加(在和聚合的情况下)。

单行Ai对于Aij=1的每个指标j,我们知道节点i和j是相连的→eij∈E。例如,如果A2=[1,0,1,1,0],我们知道节点2与节点1、3和4连接。因此,当我们将A2与Z=XW相乘时,我们只考虑列1、3和4,而忽略列2和5:

图片

图片

图片

比如说A的第二行。

图片

矩阵乘法就是A中的每一行与Z中的每一列的点积,这就是消息聚合的含义!!

获取所有N的聚合消息,根据图中节点之间的连接,将整个邻接矩阵A与转换后的节点特征进行矩阵乘法:

图片

但是这里有一个小问题:观察到聚合的消息没有考虑节点i自己的特征向量(正如我们上面所做的那样)。所以我们将自循环添加到A(每个节点i连接到自身)。

这意味着对角线的而数值需要进行修改,用一些线性代数,我们可以用单位矩阵来做这个!

图片

图片

添加自循环可以允许GNN将源节点的特征与其邻居节点的特征一起聚合!!

有了这些,你就可以用矩阵而不是单节点来实现GNN的传递。

⭐要执行平均值聚合(mean),我们可以简单地将总和除以1,对于上面的例子,由于A2=[1,0,0,1,1]中有三个1,我们可以将∑j∈N2Wxj除以3,但是用gnn的邻接矩阵公式来实现最大(max)和最小聚合(min)是不可能的。

GNN层堆叠

上面我们已经介绍了单个GNN层是如何工作的,那么我们如何使用这些层构建整个“网络”呢?信息如何在层之间流动,GNN如何细化节点(和/或边)的嵌入/表示?

  • 第一个GNN层的输入是节点特征X⊆RN×d。输出是中间节点嵌入H1⊆RN×d1,其中d1是第一个嵌入维度。H1由h1i: 1→N∈Rd1组成。
  • H1是第二层的输入。下一个输出是H2⊆RN×d2,其中d2是第二层的嵌入维度。同理,H2由h2i: 1→N∈Rd2组成。
  • 经过几层之后,在输出层L,输出是HL⊆RN×dL。最后,HL由hLi: 1→N∈RdL构成。

这里的{d1,d2,…,dL}的选择完全取决于我们,可以看作是GNN的超参数。把这些看作是为MLP层选择单位(“神经元”的数量)。

图片

节点特征/嵌入(“表示”)通过GNN传递。虽然结构保持不变,但节点表示在各个层中不断变化。边表示也将改变,但不会改变连接或方向。

HL也可以做一些事情:

我们可以沿着第一个轴(即∑Nk=1hLk)将其相加,得到RdL中的向量。这个向量是整个图的最新维度表示。它可以用于图形分类(例如:这是什么分子?)

图片

我们可以在HL中连接向量(即⨁Nk=1hk,其中⊕是向量连接操作),并将其传递给一个Graph Autoencoder。当输入图有噪声或损坏,而我们想要重建去噪图时,就需要这个操作。

图片

我们可以做节点分类→这个节点属于什么类?在特定索引hLi (i:1→N)处嵌入的节点可以通过分类器(如MLP)分为K个类(例如:这是碳原子、氢原子还是氧原子?)

图片

我们还可以进行链接预测→某个节点i和j之间是否存在链接?hLi和hLj的节点嵌入可以被输入到另一个基于sigmoid的MLP中,该MLP输出这些节点之间存在边的概率。

图片

这些就是GNN在不同的应用中所进行的操作,无论哪种方式,每个h1→N∈HL都可以被堆叠,并被视为一批样本。我们可以很容易地将其视为批处理。

对于给定的节点i, GNN聚合的第l层具有节点i的l跳邻域。节点看到它的近邻,并深入到网络中,它与邻居的邻居交互。

这就是为什么对于非常小、稀疏(很少边)的图,大量的GNN层通常会导致性能下降:因为节点嵌入都收敛到一个向量,因为每个节点都看到了许多跳之外的节点。对于小的图,这是没有任何作用的。

这也解释了为什么大多数GNN论文在实验中经常使用≤4层来防止网络出现问题。

以节点分类为例训练GNN

在训练期间,对节点、边或整个图的预测可以使用损失函数(例如:交叉熵)与来自数据集的ground-truth标签进行比较。也就是说gnn能够使用反向传播和梯度下降以端到端方式进行训练。

训练和测试数据

与常规ML一样,图数据也可以分为训练和测试。这有两种方法:

1、Transductive

训练数据和测试数据都在同一个图中。每个集合中的节点相互连接。只是在训练期间,测试节点的标签是隐藏的,而训练节点的标签是可见的。但所有节点的特征对于GNN都是可见的。

我们可以对所有节点进行二进制掩码(如果一个训练节点i连接到一个测试节点j,只需在邻接矩阵中设置Aij=0)。

图片

训练节点和测试节点都是同一个图的一部分。训练节点暴露它们的特征和标签,而测试节点只暴露它们的特征。测试标签对模型隐藏。二进制掩码需要告诉GNN什么是训练节点,什么是测试节点。

2、Inductive

另外一种方法是单独的训练图和测试图。这类似于常规的ML,其中模型在训练期间只看到特征和标签,并且只看到用于测试的特征。训练和测试在两个独立的图上进行。这些测试图分布在外,可以检查训练期间的泛化质量。

图片

与常规ML一样,训练数据和测试数据是分开保存的。GNN只使用来自训练节点的特征和标签。这里不需要二进制掩码来隐藏测试节点,因为它们来自不同的集合。

反向传播和梯度下降

在训练过程中,一旦我们向前通过GNN,我们就得到了最终的节点表示hLi∈HL, 为了以端到端方式训练,可以做以下工作:

  • 将每个hLi输入MLP分类器,得到预测^yi
  • 使用ground-truth yi和预测yi→J(yi,yi)计算损失
  • 使用反向传播来计算∂J/∂Wl,其中Wl是来自l层的参数矩阵
  • 使用优化器更新GNN中每一层的参数Wl
  • (如果需要)还可以微调分类器(MLP)网络的权重。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409144
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98749
  • 数学
    +关注

    关注

    0

    文章

    99

    浏览量

    19034
收藏 人收藏

    评论

    相关推荐

    matlab 中亮剑数学 全面掌握控制 神经网络就在脚下

    `如果想学控制,你的数学就是造诣,神经网络的基础离散数学数学建模实际问题分析,如何matlab求解,这里给你解答,这里是数学视频,偏导数分
    发表于 07-30 11:46

    关于开关磁阻电机的matlab BP神经网络数学建模方面的资料

    求大神们 给点关于开关磁阻电机的matlab BP神经网络数学建模方面的资料
    发表于 11-17 11:16

    卷积神经网络入门资料

    卷积神经网络入门详解
    发表于 02-12 13:58

    【PYNQ-Z2试用体验】神经网络基础知识

    超过阈值,输出就一跃而起。但我们一般用S函数作为激活函数。如下图:2 该函数相比阶越函数更加接近现实。神经网络原理如图所示是一个具有两层的神经网络,每层有两个
    发表于 03-03 22:10

    卷积神经网络如何使用

    卷积神经网络(CNN)究竟是什么,鉴于神经网络在工程上经历了曲折的历史,您为什么还会在意它呢? 对于这些非常中肯的问题,我们似乎可以给出相对简明的答案。
    发表于 07-17 07:21

    【案例分享】ART神经网络与SOM神经网络

    今天学习了两个神经网络,分别是自适应谐振(ART)神经网络与自组织映射(SOM)神经网络。整体感觉不是很难,只不过一些最基础的概念容易理解不清。首先ART神经网络是竞争学习的一个代表,
    发表于 07-21 04:30

    BP神经网络的基础数学知识分享

    一文看懂BP神经网络的基础数学知识
    发表于 06-16 07:14

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反向传播优化输入变量权重的层,以提高模型的预测
    发表于 07-12 08:02

    卷积神经网络模型发展及应用

    神经网络研究的第一次浪潮。1969 年美国数学家及人工智能先驱 Minsky在其著作中证 明感知器本质上是一种线性模型[21],只能处理线性分 类问题,最简单的异或问题都无法正确分类,因此神 经网络的研究也
    发表于 08-02 10:39

    卷积神经网络数学原理介绍

    在之前的系列中,我们学习了密集连接的神经网络(densely connected neural networks)。这些网络神经元被分成组,形成连续的层,相邻的两个层之间的神经元相互
    的头像 发表于 04-22 11:44 4581次阅读

    深入卷积神经网络背后的数学原理

    在计算机神经视觉技术的发展过程中,卷积神经网络成为了其中的重要组成部分,本文对卷积神经网络数学原理进行了介绍。
    的头像 发表于 04-25 14:52 3362次阅读

    深度:了解训练神经网络时所用到的数学过程

    模型的训练、调参是一项非常费时费力的工作,了解神经网络内部的数学原理有利于快速找出问题所在。
    的头像 发表于 07-15 15:22 3839次阅读
    深度:了解训练<b class='flag-5'>神经网络</b>时所用到的<b class='flag-5'>数学</b>过程

    图解:卷积神经网络数学原理解析

    图解:卷积神经网络数学原理解析 源自:数学中国 过去我们已经知道被称为紧密连接的神经网络。这些网络神经
    的头像 发表于 09-16 10:01 1073次阅读
    图解:卷积<b class='flag-5'>神经网络</b><b class='flag-5'>数学原理</b>解析

    详解神经网络数学原理1

    。 本文将流行的图神经网络及其数学细微差别的进行详细的梳理和解释,图深度学习背后的思想是学习具有节点和边的图的结构和空间特征,这些节点和边表示实体及其交互。
    的头像 发表于 03-17 09:58 450次阅读
    <b class='flag-5'>详解</b>图<b class='flag-5'>神经网络</b>的<b class='flag-5'>数学原理</b>1

    详解神经网络数学原理3

    。 本文将流行的图神经网络及其数学细微差别的进行详细的梳理和解释,图深度学习背后的思想是学习具有节点和边的图的结构和空间特征,这些节点和边表示实体及其交互。
    的头像 发表于 03-17 09:58 619次阅读
    <b class='flag-5'>详解</b>图<b class='flag-5'>神经网络</b>的<b class='flag-5'>数学原理</b>3