Vision HGNN: An Image is More than a Graph of Nodes
视觉HGNN:图像不仅仅是节点的图形
https://openaccess.thecvf.com/content/ICCV2023/papers/Han_Vision_HGNN_An_Image_is_More_than_a_Graph_of_ICCV_2023_paper.pdf
相关引用:A Survey on Hypergraph Neural Networks:An In-Depth and Step-by-Step Guide
ViG内容节选:
图表示图像的优点包括:1)图是一种广义的数据结构,网格和序列可以看作图的特例;2)图比网格或序列更灵活地对复杂对象进行建模,因为图像中的对象通常不是形状不规则的方形;3)一个物体可以被看作是多个部分的组合(例如,人可以大致分为头、上半身、手臂和腿),图结构可以构建这些部分之间的联系;4)GNN 的先进研究可以转移到解决视觉任务。
ViHGNN 与原始 ViG 相比的两个本质改进:1)图像的超图结构表示,2)超图结构学习。
摘要
基于图的建模领域已经证明了其在多种真实世界数据类型中的适应性。然而,直到视觉图神经网络(ViG)的引入,其在通用计算机视觉任务中的应用一直受到限制。ViG将输入图像划分为多个小块,这些小块被视为节点,通过与最近邻节点的连接来构建图。尽管如此,这种图构建方法仅限于简单的成对关系,导致边缘过多,以及不必要的内存和计算成本。在本文中,我们通过超越传统的“成对”连接,并利用超图的强大功能来封装图像信息,来增强ViG。我们的目标是包含更复杂的块间关联。在训练和推理阶段,我们巧妙地使用模糊C均值方法建立和更新超图结构,确保计算负担最小化。这种增强产生了视觉超图神经网络(ViHGNN)。该模型的有效性通过其在图像分类和目标检测任务上的最先进性能得到实证支持,这得益于超图结构学习模块,该模块揭示了更高阶的关系。我们的代码可在以下链接获取:[VITA-Group/ViHGNN GitHub](https://github.com/VITA-Group/ViHGNN)。
1. 引言
深度学习领域取得的快速进步为多种计算机视觉模型带来了显著的成功。这些模型包括卷积神经网络(CNNs)[35, 33, 22]、视觉变换器(ViTs)[11, 2]以及基于MLP的视觉模型[54, 55]。在这些网络中,输入图像要么作为欧几里得空间中的规则像素网格进行表示,要么作为块序列进行表示。
然而,通过图结构进行更多样化的图像处理的潜力尚未被充分利用。最近的发展,ViG [18],巧妙地利用图神经网络(GNNs)在大规模视觉任务中取得了实质性的进步。为了减轻节点过度增殖的问题,ViG借鉴了ViT的分区概念,将图像分割成更小的块,并将每个块指定为一个节点。因此,ViG框架在节点及其最近邻之间建立连接,构建了一个适应性强的图。此外,图本身作为一个通用的数据结构出现,将网格和序列作为其更广泛图上下文中的不同实例。
尽管ViG的成功有效地展示了将图像视为图在增强视觉感知的灵活性和有效性方面的优势,但使用图作为图像表示的最佳数据结构存在局限性。这些局限性主要基于两个原因:
- 关系复杂性:简单图的一个基本限制在于其只能连接两个节点,因此只能容纳成对关系。当涉及到图像中固有的高阶关系建模时,这种不足就变得明显。以计算机视觉中的对象识别任务为例,图像通常被划分为块,每个块代表对象的一个部分。这种划分引入了复杂的对象间和对象内依赖性,简单的图难以捕捉。这种复杂性来自于属于相同或不同对象的块之间的相互作用。因此,传统的图结构发现很难有效地模拟块之间的这种多方面的关系。
- 边生成的冗余:与简单图表示相关的另一个缺点是图像表示过程中冗余边的生成。ViG通过为每个块节点识别最近邻,并随后在这些节点对之间形成边来构建其图。在这个过程中,所有图像块都被转换为特征向量,并计算特征距离以确定最近邻。当考虑到图像中的对象通常是多个块的组合时,这种方法就变得有问题了,这导致属于同一对象的块具有相似的特征向量。因此,图构建方法可能会无意中产生多余的边。在最坏的情况下,一个有n个块的图像可能会产生多达条边,导致二次复杂性。
上述考虑强调了依赖简单图作为图像表示的基本数据结构固有的局限性。因此,探索有效解决这些问题的替代方法变得至关重要,从而增强视觉感知模型的精细化。鉴于此,我们提出了ViG的一个强大演变,其中超图承担了图像表示的角色。这个创新框架,名为视觉超图神经网络(ViHGNN),引入了一种动态的图像表示方法。具体来说,超图作为图的一般化扩展,其特点是一系列节点和超边。与简单图中的成对连接不同,超图中的超边可以连接任意数量的节点。从本质上讲,图可以被视为超图的一种特殊形式,只考虑数据点之间的成对连接。
独特地,超图在捕捉图像中存在的复杂相关性方面表现出更优越的能力,超越了成对关系的局限性。有关具体示例,请参见图1。
然而,一个基本挑战仍然存在:确定图像表示的最佳超图结构。这包含了一个引人注目的“先有鸡还是先有蛋”的困境:希望使用超图进行图像表示的愿望与缺乏现成可用的超图结构之间的矛盾。受ViG图构建方法的启发,我们首先使用块特征构建初始超图。随后,通过初始超图结构生成块嵌入,然后利用这些嵌入构建更新的超图结构。至关重要的是,块嵌入和超图结构都经历了动态更新,最终形成了一个自我加强的“反馈循环”学习过程。在我们的ViHGNN框架中,我们选择模糊C均值(见第3.3节)来构建和更新超图结构,几乎不增加计算开销。我们的贡献总结如下:
- 我们通过引入一种称为ViHGNN的新范式,超越了ViG框架,它将图像解释为动态超图。与ViG不同,ViHGNN不仅捕获了图像内的高阶关系,还减少了与图结构相关的冗余内存和计算开销。
- 为了建立图像的强大超图表示,我们在框架内无缝集成了一个自适应超图结构学习模块,以很小的开销增强表示。这种图像的超图表示为下游视觉任务带来了明显的优势。
- 我们执行了全面的实验,强调了ViHGNN模型在视觉任务中的有效性,包括图像分类和目标检测。具体来说,我们的ViHGNN模型在ImageNet分类任务中达到了83.9%的top-1准确率,在COCO目标检测任务中取得了令人印象深刻的43.1%平均精度(AP)。
2. 相关工作
计算机视觉中的网络架构。CNNs [35, 33, 22] 曾经是计算机视觉中公认的骨干网络,被广泛用于图像分类 [35, 33]、目标检测 [47]、语义分割 [43] 等。在过去十年的快速发展中,代表性的CNN包括ResNet [22]、MobileNet [25] 和 NAS搜索网络 [73, 84]。最近,受到Transformer架构在NLP领域成功的启发,视觉变换器被引入到视觉任务中 [17, 11, 3, 4]。ViT [11] 的开创性工作直接将Transformer架构应用于非重叠中等大小的图像块上进行图像分类。从那时起,为了提高视觉任务的性能,提出了许多ViT的变体。主要改进包括金字塔架构 [62, 41]、局部注意力 [19, 41] 和位置编码 [67]。此外,MLP架构也在计算机视觉中被探索 [54, 55, 5, 37, 15, 53],同样较大的内核CNN也被探索 [42, 9, 40, 28]。
图/超图在计算机视觉中的应用。虽然图神经网络(GNNs)传统上应用于社交网络 [16]、引文网络 [49] 和生化图 [59],但它们的应用已经扩展到计算机视觉领域。值得注意的是,GNNs已经被探索用于点云分类和分割 [34, 63],以及场景图生成,这涉及到结合对象检测器和GNNs [69, 72]。此外,GNNs在通过联合连接图进行人体动作识别方面也显示出了其效用 [31, 71]。
超图神经网络(HGNNs)是一个相关的范式,因为超图包含图 [64, 20]。在计算机视觉中,HGNNs发现广泛的应用。例如,在图像检索中,顶点表示图像,超边基于特征相关性生成 [30]。同样,3D对象分类使用顶点表示对象,并使用视图关系创建超边 [29, 14]。人员重识别利用特征相关性构建超图 [80]。然而,尽管GNNs和HGNNs在各个领域都很突出,ViG是少数直接处理图像数据的方法之一 [18]。尽管如此,将超图集成用于图像表示仍然是一个开放的挑战。
图/超图结构学习。GNNs和HGNNs对于分析图和超图数据至关重要。它们的有效性与给定的图和超图结构的质量密切相关。因此,最近的努力集中在图/超图结构学习上 [83]。对于GNNs,像 [6, 13] 这样的方法在某些关于图邻接矩阵的假设下,例如低秩、稀疏性或平滑性,联合和迭代地学习图结构和图节点嵌入。其他方法 [45, 81] 学习一个度量或分布来确定边的存在,以修改图结构。
相比之下,超图结构学习探索较少。DHSL [79, 78] 使用双重优化来同时学习标签投影矩阵和超图结构。DHGNN [32] 使用K均值和k近邻来自适应地构建超图。HERALD [77] 优化超图拉普拉斯矩阵。这些方法优化超图结构,但面临诸如非凸性和高计算成本等缺点。动态超图结构中的传统的非凸优化会导致收敛问题,而高时间复杂度,特别是在DHSL [79, 78] 中,引起了在迭代优化期间超图更新的时间效率问题。
3. 方法:一幅图像值一个超图
在本节中,我们首先介绍全文中使用的符号和定义。然后我们介绍视觉超图神经网络(ViHGNN)框架。
整体流程如图2所示。
3.1. 符号和定义
3.2. 概述:ViHGNN框架
ViHGNN的整体框架如图2所示。请注意,从原始ViG中重用的组件被省略了。有关其他组件的详细信息,请参考ViG [18]。这里我们专注于描述ViHGNN与原始ViG相比的两个重要改进:1)图像的超图结构表示,2)超图结构学习。
在一个迭代过程中,输入图像I首先被划分为N个块,这些块被转换为一组特征向量,如图2所示的块嵌入。然后通过模糊C均值[1]对这些块进行聚类,以构建超图G(I)。然后超图卷积层可以通过两阶段的节点-超边-节点消息传递方案在节点之间交换信息。我们在超图卷积层之后应用前馈网络(FFN)将节点特征投影到同一域中,并增加特征多样性。FFN层进一步鼓励特征转换能力,并缓解过平滑现象[10, 61, 50]。输出的更新块嵌入依次输入到模糊C均值中,以更新超图G(I)。第3.4节详细说明了这种提出的来回过程的理由。ViHGNN通过逐步更新超图和评估超图结构化特征表示来迭代上述任务。我们在最后添加了一个池化和MLP块,以回归输出logits,遵循[18]。我们在表2中提供了ViHGNN的各种架构配置。
3.3. 图像的超图结构
接下来我们解释如何为图像I构建超图G(I)。如上所述,图像可以被视为一组无序节点V = {v1, v2, ..., vN},并具有相关特征X = [x1, x2, ..., xN]。我们构建一个超图来推断块拓扑结构,灵感来自ViG的图构建方法。与ViG基于距离的策略类似,我们使用节点特征距离来构建超图。然而,我们采用模糊C均值方法生成节点聚类。这些重叠的聚类代表图像块集,类似于超边。这种配置将超图转变为不同节点聚类的集合。重要的是,与K均值不同,模糊C均值允许聚类有非空交集。因此,节点可能出现在多个超边中,促进了图像块之间的复杂和多样的物间关系。
我们重申图像的图表示的优势,包括:1)超图是一个通用数据结构,网格、序列甚至图都可以被视为超图的特例;2)与图相比,超图在模拟图像中的复杂高阶关系方面更加灵活;3)可以利用HGNN的先进研究,以有效表示视觉任务的图。
3.4. 自适应超图结构学习
超图结构虽然在模拟图像块之间的复杂关系方面非常强大,但它依赖于这样一个假设:通过同一超边连接的节点具有相似的表示。然而,构建这种结构是具有挑战性的,因为它取决于有意义和稳健的块嵌入,而这些嵌入在训练过程之前并不可用。此外,超图中的噪声信息可能会整合到学习到的节点表示中,可能会降低ViHGNN模型的性能。
这可能导致不同对象之间共享超边,降低图像的区分能力,损害分类和目标检测任务。
为了解决这个问题,优化超图结构变得至关重要。消除或减少与任务无关的连接,同时增强有影响力的连接是必要的。
实现对块中高阶相关性的准确和完整表示是我们的目标。然而,这带来了一个“先有鸡还是先有蛋”的问题:生成稳健的超图取决于块嵌入,而有意义的块嵌入又依赖于超图结构。为了克服这个问题,我们建立了一个“反馈循环”,其中块嵌入和超图相互加强。动态更新在两者之间交替进行,增强了结构感知的图像表示。引入固定数量的超边作为正则化器,进一步防止了超图中的平凡结构,增强了其有效性。这个迭代过程确保了块嵌入和超图结构的相互改进,尽管它们相互依赖。
3.5. 端到端优化
在ViHGNN中,自适应超图结构更新取决于学习的块嵌入。在每个ViHGNN块的训练和推理过程中,这些嵌入塑造了超图结构。在推理时,固定的模型权重导致稳定的超图结构。这个过程独立于梯度计算,不影响反向传播。
我们为ViHGNN执行端到端的优化过程,使用特定于任务的目标,如图像分类的交叉熵损失和目标检测的定位损失。计算瓶颈,模糊C均值,具有时间复杂度O(|V|DE2T)。这种复杂度主要由超边的数量决定。我们实用地将这个数字设置为小值50,以管理计算(表2)。
4. 实验
4.1. 实验设置
数据集。在图像分类任务中,我们使用广泛使用的基准ImageNet ILSVRC 2012 [48]进行以下实验。ImageNet拥有1.2亿张训练图像和5万张验证图像,属于1000个类别。有关ImageNet数据集的许可信息,请访问[ImageNet下载页面](http://www.image-net.org/download)。对于目标检测,我们使用COCO 2017 [39]数据集,包含80个对象类别。COCO 2017包含11.8万张训练图像和5千张验证图像。有关这些数据集的许可信息,请访问[COCO数据集主页](https://cocodataset.org/#home)。
基线。为了建立我们的基线,我们选择遵循原始ViG [18]中所做的选择。在计算机视觉领域,通常有两种类型的网络架构:各向同性和金字塔。各向同性架构在整个网络的计算核心中保持特征大小,这允许轻松扩展和硬件加速。这种架构在自然语言处理(NLP)的Transformer模型[58]中广泛使用,以及最近的Vision中的神经网络,如ConvMixer[54]、ViT [11]、DeiT [56]和ResMLP [55]。因此,我们将我们的各向同性ViHGNN与上述各向同性模型进行比较。另一方面,金字塔神经网络随着网络深度逐渐减小特征图的空间大小,利用图像的比例不变性质产生多尺度特征。有许多具有金字塔架构的先进网络,包括ResNet [22, 65]、BoTNet [51]、PVT [62]、CVT [66]、Swin-Transformer [41]、CycleMLP [5]和Poolformer [74]。在这项工作中,我们将我们的金字塔ViHGNN与这些模型进行比较。表1和表2分别提供了我们研究中使用的各向同性和金字塔ViHGNN架构的详细设置。
超参数设置。对于所有的ViHGNN模型,我们在HyperGrapher模块中使用扩张聚合[36],并将扩张率设置为第l层的。GELU[23]被用作非线性激活函数。对于ImageNet分类,我们采用DeiT[56]中提出的常用训练策略,以进行公平比较。数据增强包括RandAugment[8]、Mixup[76]、Cutmix[75]、随机擦除[82]和重复增强[24]。细节显示在表3中。对于COCO检测任务,我们采用RetinaNet[38]和Mask R-CNN[21]作为检测框架,并将我们的金字塔ViHGNN作为我们的主干网络。所有模型都在COCO 2017训练集上按照“1×”计划训练,并在验证集上评估。我们使用PyTorch[46]实现网络,并在单个AWS EC2实例上的8个NVIDIA V100 GPU上训练我们所有的模型。
4.2. 图像分类
如表4所示,ViHGNN超越了其他各向同性网络。值得注意的是,我们的各向同性ViHGNN-S达到了81.5%的top-1准确率,比DeiT-Ti高出1.1%,同时保持了可比的计算成本。此外,各向同性ViHGNN在模型大小和计算成本相似的情况下,一直优于ViG,凸显了超图图像表示的好处。转向金字塔网络(表5),我们的金字塔ViHGNN系列与最先进的模型相当或更优,特别是与金字塔ViG家族相比。这强调了ViHGNN的优越性,归功于超图捕获潜在的高阶块关系。总体而言,我们的结果表明超图神经网络对视觉任务的有效性,将它们定位为计算机视觉系统中有前景的组件。
4.3. 消融研究
我们在ImageNet分类任务上对所提出的方法进行了消融研究,并使用各向同性ViHGNN-Ti作为基础架构。所有的结果都列在表6、表7、表8、表9和表10中。
超图构建方法的类型。k-NN、K-Means和Fuzzy C-Means这三种方法都可以用于构建超图。为了研究哪种方法效果最佳,我们通过消融研究评估了这些构建方法的效果。从表6中,我们可以发现Fuzzy C-Means在性能上取得了最佳表现,并且相比K-Means方法几乎没有额外开销。结果进一步证明,由Fuzzy C-Means生成的GI(可能指超图)最为稳健。
实际上,还有其它可用的聚类方法可以用于更新超图结构。此外,我们探索了DBSCAN、均值漂移聚类和谱聚类方法进行比较。如表7所示,每种方法产生了不同的结果,其中Fuzzy C-Means展示了最佳性能。正如表中所示,与其他聚类方法相比,Fuzzy C-Means在Top-1和Top-5得分上都是最高的。其优越性可能的一个原因是,与其他替代方案相比,Fuzzy C-Means更加灵活,对噪声的敏感度更低。这种灵活性使其能够找到更好的超边,这反过来又改善了超图结构与块分布的对齐。因此,Fuzzy C-Means能够更有效地捕获块嵌入内的复杂关系,并最终提供更准确的图像表示,从而提高我们模型的性能。
更新循环的次数。在每个ViHGNN块中,使用前一个块的块嵌入来更新超图结构,然后使用这个结构为下一个块生成新的块嵌入。这在训练过程中导致了L次前向传递。尽管在单个块内使用多个循环是可能的,但必须更新嵌入以确保超图更新是有意义的。我们对各向同性ViHGNN-Ti模型进行了额外的实验,使用了2次和3次更新循环,观察到的准确率差异很小(见表8)。考虑到模型深度和块的数量,我们假设对于这种特定的规模,一个更新循环可能就足够了,因为使用更多的循环将增加模型参数和浮点运算次数(FLOPs),而没有显著的好处。
超边(模糊C均值的聚类)的数量。在模糊C均值中,聚类数量直接影响超边的数量,进而决定超图的大小。找到一个最佳的平衡至关重要;超边数量不足会降低性能,而过多的超边会增加计算成本。在ViHGNN-Ti的试验中,我们将图像分割成196个块,选择了25或50个超边数量。虽然超边数量的增加通常会提高性能,但它引入了更多的开销。相反,对于金字塔ViHGNN-Ti,我们进行了详细的实验,如表9所示,评估了不同超边设置下的性能。具体来说,表中展示了使用统一E值的金字塔ViHGNN-Ti的结果与特定层E值分配的对比。↓符号表示在每个阶段减少50%的超边,与特征大小相关。这些结果打破了普遍的“越多越好”的超边概念,表明超边数量应与块节点数相对应。
总结来说,确定理想的超边数量仍然是一个微妙的挑战。然而,出现了两个关键的洞见:(i) 超边可以提高性能,尽管有开销;(ii) 超边在各层的分布应与特征维度相匹配。
超图结构学习的效果。为了验证超图结构学习(HSL)模块的效果,我们通过移除HSL模块进行了额外的实验。我们观察到,HSL可以在模型大小和浮点运算次数方面仅带来很小的开销,就能提高性能。结果也证明了我们框架中使用的简单HSL模块的有效性。
超图结构学习开销。为了分析多次调用模糊C均值可能带来的开销,我们测量了训练ViHGNN和ViT的时间成本。结果在表10中展示,我们观察到聚类对前向时间的影响很小,并且没有影响后向时间,这与我们的预期一致。
4.4.目标检测
为了评估我们的ViHGNN模型的泛化能力,我们进一步将ViHGNN应用于目标检测任务。为了进行公平比较,我们使用在ImageNet上预训练的金字塔ViHGNN-S作为RetinaNet[38]和Mask R-CNN[21]检测框架的骨干网络。模型是在常用的“1x”计划上训练的,并且在1280×800的输入尺寸下计算FLOPs。从表11的结果中,我们可以看到我们的金字塔ViG-S在RetinaNet和Mask R-CNN上的表现优于不同类型代表性骨干网络,包括ResNet[22]、CycleMLP[5]和Swin Transformer[41]。这些优越的结果证明了ViHGNN架构的泛化能力。
4.5. 可视化
为了深入了解我们的ViHGNN模型的工作原理,我们可视化了ViHGNN-S中学习到的超图结构,并将其与ViG-S中构建的图结构进行了比较。在图4中,顶部一行展示了输入图像,中间一行显示了ViG-S的图结构,底部一行展示了ViHGNN-S学习到的超图结构。鉴于ViG-S图中有大量的边,为了清晰起见,我们展示了一个中心节点及其一级邻居。同样,我们展示了超图结构的代表性超边的一个子集,避免了混乱。
观察可视化结果,ViG倾向于在具有相似局部特征(如颜色和纹理)的块之间生成冗余边。例如,在左侧图像中,类似的区域,如沙子,会产生多条边,尽管它们对下游任务的相关性有限。这种冗余代表了一种开销浪费,而ViHGNN通过使用较少的超边来模拟这些关系来解决这个问题。此外,ViG还可能引入嘈杂的边,将对象块连接到具有相似属性但语义不同的块。相比之下,ViHGNN在保持对嘈杂连接的鲁棒性的同时,捕获了块之间的高阶关系。
5. 结论与局限性
在本文中,我们提出了一种通过使用超图数据编码和为视觉任务量身定制的超图神经网络,在图像表示方面的新进展。我们提出的模型ViHGNN创新地将图像分割成块,将其视为节点,然后基于这些节点构建超图。这种策略方法使ViHGNN能够利用超图独特的能力来捕捉块之间的复杂高阶关系。在图像分类和目标检测任务上的彻底实验证实了ViHGNN的卓越能力。ViHGNN的一个明显限制是超图大小的手动确定。我们将未来的努力方向指向完善超图结构的适应性,以优化不同图像类别的性能。
热门跟贴