计算机视觉及其后的图神经网络教程(第一部分)

本文介绍了图神经网络(GNNs)的基础知识,探讨了为何图数据结构在计算机视觉中具有实用性,以及在图上定义卷积的难点。作者通过实例展示了如何将图像表示为图,并讨论了将卷积运算扩展到图的挑战。GNNs在保持灵活性的同时,需要通过控制先验条件来避免过拟合,这为未来研究提供了有趣的途径。
摘要由CSDN通过智能技术生成

概述

我在本文将回答那些不熟悉图或图神经网络的AI/ML/CV的用户通常会问的问题。我提供了Pythorch的例子来澄清这种相对新颖和令人兴奋的模型背后的思路。

问题

我在本部分教程中提出的问题是:

  • 为什么图这种数据结构有用?

  • 为什么在图上定义卷积是困难的?

  • 什么使神经网络成为图神经网络?

为了回答这些问题,我将提供激励性的示例、论文和python代码,使其成为图神经网络(GNNs)的教程。读者需要一些基本的机器学习和计算机视觉知识,但是,我随着我的讲述我也会提供一些背景和直观的解释。

首先,让我们简单回顾一下什么是图?图是由有向/无向边连接的一组节点(顶点)。节点和边通常来自于关于问题的一些专家知识或直觉。因此,它可以是分子中的原子、社交网络中的用户、交通系统中的城市、团队运动中的运动员、大脑中的神经元、动态物理系统中的相互作用对象、图像中的像素、边界框或分割遮罩。换言之,在许多实际情况下,实际上是您决定了什么是图中的节点和边。

在许多实际情况下,实际上是你来决定图中的节点和边是什么。

这是一个非常灵活的数据结构,它概括了许多其他的数据结构。例如,如果没有边,那么它就成为一个集合;如果只有“垂直”边,并且任何两个节点正好由一条路径连接,那么我们就有一棵树。这种灵活性是好的和坏的,我将在本教程中讨论。

1 为什么图这种数据结构有用?

在计算机视觉(cv)和机器学习(ml)的背景下,研究图形和从中学习的模型至少可以给我们带来四个好处:

  1. 我们可以更接近解决以前太具挑战性的重要问题,例如:癌症的药物发现(Veselkov等人,Nature,2019);更好地理解人脑连接体(Diez&Sepulcre,Nature Communications,2019);能源和环境挑战的材料发现(Xie等人,自然通讯,2019)。

  2. 在大多数cv/ml应用程序中,数据实际上可以看作是图,即使您曾经将它们表示为另一个数据结构。将你的数据表示为图形可以给你带来很多灵活性,并且可以给你一个非常不同和有趣的视角来看待你的问题。例如,您可以从“超级像素”学习,而不是从图像像素学习,如(Liang等人,ECCV2016)和我们即将发表的BMVC论文中所述。图还允许您在数据中施加一种关系归纳偏差-一些关于该问题的先验知识。例如,如果你想对人体姿势进行推理,你的关系偏差可以是人体骨骼关节的图(Yan等人,AAAI,2018);或者如果你想对视频进行推理,你的关系偏差可以是移动边界框的图(Wang&Gupta,ECCV2018)。另一个例子是将面部地标表示为图(Antonakos等人,CVPR,2015),以对面部属性和身份进行推理。

  3. 您最喜欢的神经网络本身可以看作是一个图,其中节点是神经元,边是权重,或者节点是层,边表示向前/向后传递的流(在这种情况下,我们讨论的是在tensorflow、pytorch和其他dl框架中使用的计算图)。应用程序可以是计算图的优化、神经结构搜索、分析训练行为等。

  4. 最后,您可以更有效地解决许多问题,其中数据可以更自然地表示为图形。这包括但不限于分子和社会网络分类(Knyazev et al.,Neurips-W,2018)和生成(Simonovsky&Komodakis,ICANN,2018)、三维网格分类和对应(Fey et al.,CVPR,2018)和生成(Wang et al.,ECCVV,2018)、动态交互对象的建模行为(Kipf et al.,ICML,2018),视觉场景图建模(见即将召开的ICcv研讨会)和问答(Narasimhan,Neurips,2018),程序合成(Allamanis等人,ICLR,2018),不同的强化学习任务(Bapst等人,ICML,2019)和许多其他令人兴奋的问题。

由于我之前的研究是关于识别和分析面部和情绪的,所以我特别喜欢下面这个图。

2 为什么在图上定义卷积是困难的?

为了回答这个问题,我首先给出了一般使用卷积的一些动机,然后用图的术语来描述“图像上的卷积”,这应该使向“图上的卷积”的过渡更加平滑。

2.1 为什么卷积有用?

让我们理解为什么我们如此关心卷积,为什么我们想用它来绘制图形。与完全连接的神经网络(a.k.a.nns或mlps)相比,卷积网络(a.k.a.cnns或convnets)具有以下根据一辆漂亮的老雪佛兰的图像解释的某些优点。

首先,ConvNets利用图像中的自然先验,在(Bronstein等人,2016)中对此进行了更正式的描述,例如

  1. 平移不变性-如果我们将上图中的汽车向左/向右/向上/向下平移,我们仍然应该能够将其识别为汽车。通过在所有位置共享过滤器,即应用卷积,可以利用这一点。
  2. 位置-附近的像素紧密相关,通常代表某种语义概念,例如滚轮或窗户。通过使用相对较大的滤波器可以利用这一点,该滤波器可以捕获局部空间邻域中的图像特征。
  3. 组成性(或层次结构)-图像中较大的区域通常是其包含的较小区域的语义父级。例如,汽车是车门、车窗、车轮、驾驶员等的父对象,而驾驶员是头部、手臂等的父对象。这是通过叠加卷积层和应用池隐式利用的。

其次,卷积层中可训练参数(即滤波器)的数量不取决于输入维数,因此从技术上讲,我们可以在28×28和512×512图像上训练完全相同的模型。换句话说,模型是参数化的。

理想情况下,我们的目标是开发一种与Graph Neural Nets一样灵活的模型,可以从任何数据中进行摘要和学习,但是与此同时,我们希望通过打开/关闭某些先验条件来控制(调节)这种灵活性的因素。

所有这些出色的属性使ConvNets不太容易过度拟合(训练集的准确性较高,而验证/测试集的准确性较低),在不同的视觉任务中更为准确,并且可以轻松地扩展到大型图像和数据集。 因此,当我们要解决输入数据采用图结构的重要任务时,将所有这些属性转移到图神经网络GNN以规范其灵活性并使其具有可扩展性就很有吸引力。 理想情况下,我们的目标是开发一种与GNN一样灵活的模型,并且可以从任何数据中进行摘要和学习,但是与此同时,我们希望通过打开/关闭某些先验条件来控制(调节)这种灵活性的因素。 这可以打开许多有趣方向的研究。 然而,控制这种折衷是具有挑战性的。

2.2 用图对图像进行卷积

让我们考虑一个具有N个节点的无向图G。 边E表示节点之间的无向连接。 节点和边通常来自您对问题的直觉。 对于图像,我们的直觉是节点是像素或超像素(一组怪异形状的像素),边缘是它们之间的空间距离。 例如,左下方的MNIST图像通常表示为28×28尺寸的矩阵。 我们也可以将其表示为一组N = 28 * 28 = 784像素。 因此,我们的图形G将具有N = 784个节点,并且边缘位置较近的像素的边缘将具有较大的值(下图中的较厚边缘),而远程像素的边缘将具有较小的值(较薄的边缘)。

当我们在图像上训练神经网络或ConvNets时,我们在图上隐式定义了图像-下图是一个规则的二维网格。 由于此网格对于所有训练和测试图像都是相同的,并且是规则的,即,网格的所有像素在所有图像上都以完全相同的方式彼此连接(即,具有相同的邻居数,边长等)。 ),则此规则网格图没有任何信息可帮助我们将一个图像与另一个图像区分开。 下面,我可视化一些2D和3D规则网格,其中节点的顺序用颜色编码。 顺便说一句,我正在Python中使用NetworkX来做到这一点,e.g. G = networkx.grid_graph([4, 4]).

有了这个4×4的规则网格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值