Graph Neural Network (GNN)
Explore les Graph Neural Networks (GNNs) pour traiter des données non-euclidiennes. Apprends comment les GNN améliorent le raisonnement relationnel aux côtés d'Ultralytics YOLO26 pour la Vision AI avancée.
Un réseau de neurones sur graphe (GNN) est une classe spécialisée d'architectures d'apprentissage profond conçue pour traiter des données représentées sous forme de graphes. Alors que les modèles traditionnels comme les réseaux de neurones convolutifs (CNN) sont optimisés pour des structures en grille telles que les images, et que les réseaux de neurones récurrents (RNN) excellent dans les données séquentielles comme le texte ou l'analyse de séries temporelles, les GNN sont capables de gérer de manière unique les données non euclidiennes. Cela signifie qu'ils opèrent sur des jeux de données définis par des nœuds (entités) et des arêtes (relations), ce qui leur permet d'apprendre à partir des interdépendances complexes qui caractérisent les réseaux du monde réel. En capturant à la fois les attributs des points de données individuels et les connexions structurelles entre eux, les GNN permettent d'obtenir des informations puissantes dans des domaines où les relations sont tout aussi critiques que les entités elles-mêmes.
Link to this sectionComment fonctionnent les réseaux de neurones sur graphe#
Le mécanisme fondamental derrière un GNN est un processus souvent appelé « passage de messages » ou agrégation de voisinage. Dans ce cadre, chaque nœud du graphe met à jour sa propre représentation en collectant des informations auprès de ses voisins immédiats. Pendant l'entraînement du modèle, le réseau apprend à produire des embeddings efficaces — des représentations vectorielles denses — qui encodent les caractéristiques d'un nœud ainsi que la topologie de son voisinage local.
Grâce à plusieurs couches de traitement, un nœud peut éventuellement intégrer des informations provenant de plus loin dans le graphe, élargissant ainsi efficacement son « champ récepteur ». Cela permet au modèle de comprendre le contexte d'un nœud au sein de la structure plus large. Des frameworks modernes comme PyTorch Geometric et la Deep Graph Library (DGL) facilitent l'implémentation de ces schémas complexes de passage de messages, permettant aux développeurs de construire des applications sophistiquées basées sur des graphes sans repartir de zéro.
Link to this sectionGNN vs autres architectures neuronales#
Pour apprécier le rôle distinct des GNN, il est utile de les différencier des autres types de réseaux de neurones (NN) courants dans le paysage de l'IA :
- Réseaux de neurones convolutifs (CNN) : Ce sont la référence pour les tâches visuelles, telles que la classification d'images ou la détection d'objets. Des modèles comme Ultralytics YOLO26 s'appuient sur les CNN pour traiter des données de pixels en grille fixe. Cependant, les CNN ont du mal avec les structures irrégulières où le nombre de voisins varie pour chaque nœud.
- Réseaux de neurones récurrents (RNN) : Les RNN traitent les entrées dans une séquence spécifique, ce qui les rend idéaux pour les tâches linguistiques ou le traitement du langage naturel (NLP). En revanche, les GNN gèrent les données où les relations sont spatiales ou relationnelles plutôt que strictement temporelles ou séquentielles.
- Graphe de connaissances : Un graphe de connaissances est une base de données structurée de faits (entités et relations), tandis qu'un GNN est le modèle informatique utilisé pour apprendre à partir de telles structures. Les GNN sont fréquemment déployés au-dessus de graphes de connaissances pour effectuer des tâches comme la prédiction de liens, améliorant souvent les pipelines de génération augmentée par récupération (RAG).
Link to this sectionApplications concrètes#
La capacité à modéliser des relations arbitraires rend les GNN indispensables dans divers secteurs à fort impact :
-
Découverte de médicaments et soins de santé : Dans l'industrie pharmaceutique, les molécules chimiques sont naturellement représentées comme des graphes où les atomes sont des nœuds et les liaisons sont des arêtes. Les GNN transforment l'IA dans le secteur de la santé en prédisant les propriétés moléculaires et en simulant les interactions protéiques. Des innovations comme AlphaFold par Google DeepMind soulignent la puissance de l'apprentissage profond géométrique dans la compréhension des structures biologiques.
-
Analyse de réseaux sociaux et recommandation : Les plateformes utilisent les GNN pour analyser de vastes réseaux d'interactions d'utilisateurs. En modélisant les utilisateurs comme des nœuds et les amitiés ou les likes comme des arêtes, ces réseaux alimentent des systèmes de recommandation qui suggèrent du contenu, des produits ou des connexions. Cette approche, similaire aux méthodes utilisées dans Pinterest's GraphSage, s'adapte efficacement à des milliards d'interactions.
-
Logistique et prédiction du trafic : Dans l'IA appliquée à la logistique, les réseaux routiers sont traités comme des graphes où les intersections sont des nœuds et les routes sont des arêtes. Les GNN peuvent prédire le flux de trafic et optimiser les itinéraires de livraison en analysant les dépendances spatiales entre différents segments routiers, surpassant largement les simples bases statistiques.
Link to this sectionIntégration des concepts de graphes avec l'IA de vision#
Les réseaux de neurones sur graphe sont de plus en plus intégrés dans des pipelines multimodaux. Par exemple, un système complet pourrait utiliser la segmentation d'image pour identifier des objets distincts dans une scène, puis employer un GNN pour raisonner sur les relations spatiales entre ces objets — ce que l'on appelle souvent un « graphe de scène ». Cela comble le fossé entre la perception visuelle et le raisonnement logique.
L'exemple Python suivant démontre comment relier l'IA de vision avec des structures de graphes. Il utilise le modèle Ultralytics YOLO26 pour détecter des objets, qui servent de nœuds, et prépare une structure de graphe de base en utilisant 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.")Les développeurs cherchant à gérer les jeux de données requis pour ces pipelines complexes peuvent utiliser la plateforme Ultralytics, qui simplifie l'annotation et les flux de travail d'entraînement pour les composants de vision du système. En combinant des modèles de vision robustes avec le raisonnement relationnel des GNN, les ingénieurs peuvent construire des systèmes autonomes conscients du contexte qui comprennent mieux le monde qui les entoure.






