Generative Flow Networks (GFlowNets)
Découvre comment les réseaux de flux génératifs (GFlowNets) utilisent la modélisation probabiliste pour échantillonner des objets discrets variés à forte récompense, utiles à la découverte de médicaments et à l’apprentissage causal.
Les réseaux de flux génératifs, ou GFlowNets, constituent un cadre puissant de machine learning conçu pour la modélisation probabiliste et l'échantillonnage amorti. Ils excellent dans la génération d'objets discrets et compositionnels en traitant le processus de génération comme une tâche séquentielle de prise de décision. Au lieu de simplement maximiser une récompense, comme c'est courant en apprentissage par renforcement traditionnel, les GFlowNets apprennent à échantillonner des objets avec une probabilité proportionnelle à une fonction de récompense prédéfinie. Ils peuvent ainsi découvrir des ensembles diversifiés de candidats à forte récompense dans des espaces d'échantillonnage exceptionnellement vastes, atténuant efficacement l'effondrement des modèles qui affecte souvent d'autres architectures génératives comme les réseaux antagonistes génératifs (GAN).
Principes et mécanismes fondamentaux#
Les GFlowNets parcourent un environnement structuré en ajoutant des éléments de construction étape par étape pour créer un objet final.
- Politiques avant et arrière : Un réseau neuronal prédit une politique avant qui définit la distribution de probabilité des actions possibles à partir d'un état donné. En cartographiant les trajectoires à travers ces états, le modèle apprend le « flux » de probabilité.
- Perte d’équilibre de trajectoire : L’entraînement repose souvent sur des objectifs d’optimisation comme la perte d’équilibre de trajectoire, qui garantit que la probabilité de générer un objet spécifique correspond étroitement à la récompense observée. Un bon réglage des hyperparamètres est essentiel pour stabiliser cette fonction de perte pendant l’entraînement.
- Échantillonnage proportionnel : En échantillonnant proportionnellement à la récompense plutôt qu’en cherchant simplement le maximum absolu, les GFlowNets favorisent naturellement la diversité, un aspect crucial pour explorer des espaces combinatoires complexes.
GFlowNets et autres IA génératives#
Bien que l’IA générative englobe de nombreuses techniques, les GFlowNets occupent une place à part. Les modèles de diffusion classiques ou les techniques comme le Flow Matching transforment généralement des distributions de bruit continu en données. À l’inverse, les GFlowNets sont spécifiquement conçus pour générer des structures discrètes, comme des graphes ou des séquences. De plus, alors que les agents d’apprentissage par renforcement classiques cherchent à trouver un unique chemin optimal via le processus de décision markovien (MDP), les GFlowNets cartographient plusieurs chemins à récompense élevée afin de garantir une grande variété de résultats générés.
Applications concrètes#
La capacité à générer des candidats variés et hautement optimisés rend les GFlowNets particulièrement précieux dans les domaines scientifiques et structurels.
- Découverte de médicaments et conception moléculaire : Dans la recherche pharmaceutique, les GFlowNets servent à générer de nouveaux peptides thérapeutiques et graphes moléculaires. Des avancées récentes, comme les Atomic GFlowNets (A-GFN), construisent les molécules atome par atome afin d’optimiser des propriétés telles que l’affinité de liaison et la facilité de synthèse. Ce processus produit des candidats médicaments plus variés que les méthodes reposant sur des fragments prédéfinis.
- Apprentissage de structures causales : Les GFlowNets servent également à découvrir la structure des réseaux bayésiens causaux. Ils approximent la distribution a posteriori sur les graphes orientés acycliques (DAGs), ce qui aide les chercheurs à conserver une vision réaliste de l’incertitude épistémique lorsqu’ils modélisent des relations complexes entre les données.
Implémentation de la politique avant#
Lors de la création d’un GFlowNet, la politique avant doit prédire une distribution de probabilité sur les prochaines étapes possibles. L’extrait PyTorch suivant montre comment définir une couche de politique simple et échantillonner une action. Alors que la création de modèles de vision comme Ultralytics YOLO26 nécessite de prédire les coordonnées des boîtes englobantes, un GFlowNet utilise des distributions catégorielles pour sélectionner l’état suivant dans son chemin de génération.
import torch
import torch.nn as nn
from torch.distributions import Categorical
# A simple linear policy mapping a 64-dim state to 4 possible actions
policy_network = nn.Sequential(nn.Linear(64, 4), nn.Softmax(dim=-1))
# Given a random state vector, compute action probabilities and sample
state = torch.randn(1, 64)
action_probs = policy_network(state)
sampled_action = Categorical(action_probs).sample()
print(f"Sampled Action: {sampled_action.item()}")Si tu développes des solutions d’IA complexes en Python, tu peux facilement annoter des jeux de données, entraîner et déployer des modèles à l’aide de la plateforme Ultralytics. Que tu te concentres sur des tâches de détection d’objets à grande vitesse ou que tu explores des architectures génératives, un pipeline solide d’opérations d’apprentissage automatique (MLOps) est essentiel pour faire évoluer efficacement tes modèles.









