深圳Yolo 视觉
深圳
立即加入
词汇表

图神经网络 (GNN)

探索图神经网络 (GNN) 以处理非欧几里得数据。了解GNN如何与Ultralytics YOLO26协同增强关系推理,从而实现先进的视觉AI。

图神经网络(GNN)是一种专门的深度学习架构,旨在处理以图形式表示的数据。传统的模型,如卷积神经网络(CNN),针对图像等网格状结构进行了优化;循环神经网络(RNN)擅长处理文本或时间序列分析等序列数据;而GNN则独特地能够处理非欧几里得数据。这意味着它们在由节点(实体)和边(关系)定义的数据集上运行,从而能够从表征真实世界网络的复杂相互依赖关系中学习。通过捕获单个数据点的属性以及它们之间的结构连接,GNN在关系与实体本身同样重要的领域中解锁了强大的洞察力。

图神经网络的工作原理

图神经网络(GNN)背后的基本机制常被称为“消息传递”或邻域聚合。在此框架中,图中的每个节点通过收集其直接邻居的信息来更新自身表示。在模型训练过程中,网络学会生成有效的嵌入——即密集向量表示——这些表示不仅编码了节点的特征,还包含其局部邻域的拓扑结构。

通过多层处理,节点最终可以整合图中更远的信息,有效拓宽其“感受野”。这使得模型能够理解节点在更大结构中的上下文。PyTorch GeometricDeep Graph Library (DGL)等现代框架促进了这些复杂消息传递机制的实现,使开发人员无需从头开始即可构建复杂的基于图的应用程序。

全局神经网络与其他神经网络架构

要理解图神经网络(GNNs)的独特作用,有必要将其与人工智能领域中常见的其他神经网络(NN)类型区分开来:

  • 卷积神经网络 (CNN):它们是图像分类或目标检测等视觉任务的黄金标准。Ultralytics YOLO26等模型依赖CNN来处理固定网格像素数据。然而,CNN在处理每个节点的邻居数量不同的不规则结构时会遇到困难。
  • 循环神经网络(RNNs):RNNs以特定序列处理输入,使其非常适合语言任务或自然语言处理(NLP)。相比之下,GNNs处理关系是空间性或关联性而非严格时间性或序列性的数据。
  • 知识图谱: 知识图谱是事实(实体和关系)的结构化数据库,而GNN是用于从这些结构中学习的计算模型。GNNs经常部署在知识图谱之上,以执行链接预测等任务,通常增强检索增强生成 (RAG)管道。

实际应用

能够建模任意关系的能力,使图神经网络在众多高影响力行业中不可或缺:

  1. 药物发现与医疗保健:在制药行业中,化学分子自然地表示为图,其中原子是节点,键是边。GNNs通过预测分子特性和模拟蛋白质相互作用,正在改变医疗保健领域的AI。像Google DeepMind的AlphaFold这样的创新突显了几何深度学习在理解生物结构方面的强大能力。
  2. 社交网络分析与推荐:平台使用GNN分析庞大的用户交互网络。通过将用户建模为节点,将友谊或点赞建模为边,这些网络为推荐系统提供支持,推荐内容、产品或连接。这种方法类似于Pinterest的GraphSage中使用的方法,能够有效地扩展到数十亿次交互。
  3. 物流与交通预测:在物流AI中,道路网络被视为图,其中交叉口是节点,道路是边。GNNs 可以通过分析不同路段之间的空间依赖关系来预测交通流量并优化配送路线,其表现远远优于简单的统计基线。

将图概念与视觉人工智能融合

图神经网络正越来越多地集成到多模态管道中。例如,一个综合系统可能会使用image segmentation来识别场景中的不同对象,然后利用GNN推断这些对象之间的空间关系——这通常被称为“场景图”。这弥合了视觉感知和逻辑推理之间的鸿沟。

以下 python 示例演示了如何将视觉 AI 与图结构结合。它使用 Ultralytics YOLO26 模型来 detect 对象,这些对象作为节点,并使用 torch.

import torch
from ultralytics import YOLO

# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")

# Run inference on an image to find entities (nodes)
results = model("https://ultralytics.com/images/bus.jpg")

# Extract box centers to serve as node features
# Format: [center_x, center_y] derived from xywh
boxes = results[0].boxes.xywh[:, :2].cpu()
x = torch.tensor(boxes.numpy(), dtype=torch.float)

# Create a hypothetical edge index connecting the first two objects
# In a real GNN, edges might be defined by distance or interaction
edge_index = torch.tensor([[0, 1], [1, 0]], dtype=torch.long)

print(f"Graph constructed: {x.size(0)} nodes (objects) and {edge_index.size(1)} edges.")

希望管理这些复杂管道所需数据集的开发者可以利用 Ultralytics Platform,该平台简化了系统中视觉组件的标注和训练工作流程。通过将强大的视觉模型与 GNN 的关系推理能力相结合,工程师可以构建更了解周围世界的上下文感知自主系统。

让我们一起共建AI的未来!

开启您的机器学习未来之旅