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

图神经网络 (GNN)

Explore how Graph Neural Networks (GNNs) process complex relational data. Learn about message passing, real-world applications, and integration with YOLO26.

图神经网络(GNN)是专门用于处理图表示数据的深度学习架构类别。传统模型如卷积神经网络(CNN)针对图像等网格状结构进行了优化,而循环神经网络(RNN)则擅长处理文本或时间序列等序列数据。 时间序列分析等序列数据,而GNN则具备处理非欧几里得数据的独特能力。这意味着它们能处理由节点(实体)和边(关系)定义的数据集,从而从现实世界网络中复杂的相互依赖关系中学习。通过同时捕捉单个数据点的属性及其间的结构化连接,GNN在那些关系与实体本身同等重要的领域中,释放出 在关系与实体同等关键的领域中,揭示出强大的洞察力。

图神经网络的工作原理

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

通过多层处理,节点最终能够整合来自图中更远位置的信息, 有效扩展其"感受野"。这使得模型能够理解节点在更大结构中的上下文关系。 现代PyTorch 深度图库(DGL) 为实现这些复杂的消息传递机制提供了便利, 使开发者无需从零开始即可构建复杂的图计算应用。

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

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

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

实际应用

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

  1. 药物研发与医疗健康:在制药行业中,化学分子天然以图的形式呈现——原子作为节点,化学键作为边。图神经网络正通过预测分子特性和模拟蛋白质相互作用,重塑医疗健康领域的人工智能应用 Google 的AlphaFold等创新成果,彰显了几何深度学习在解析生物结构方面的强大能力。
  2. 社交网络分析与推荐:平台利用图神经网络(GNNs)解析庞大的用户交互网络。通过将用户建模为节点,将好友关系或点赞行为建模为边,这些网络驱动着推荐系统,为用户提供内容、产品或人际连接的建议。这种方法类似于Pinterest的GraphSage所采用的技术,能够有效处理数十亿级别的交互数据。
  3. 物流与交通预测在物流领域的人工智能应用中,道路网络被视为图结构,其中交叉路口为节点,道路为边。通过分析不同路段间的空间依赖关系,图神经网络(GNNs)能够预测交通流量并优化配送路线,其性能远超简单的统计基准模型。

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

图神经网络正日益融入多模态处理管道。例如,一个综合系统可能先通过图像分割识别场景中的不同物体,再运用图神经网络推断这些物体间的空间关系——这通常被称为"场景图"。这种方法弥合了视觉感知与逻辑推理之间的鸿沟。

以下Python 演示了如何将视觉人工智能与图结构进行连接。它使用了 Ultralytics YOLO26 用于detect 模型,这些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 Ultralytics 能简化系统视觉组件的标注与训练工作流。通过将强大的视觉模型与图神经网络(GNNs)的关系推理相结合,工程师可构建具备情境感知能力的自主系统,使其更深入地理解周围世界。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入