Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Réseaux de flux génératifs (GFlowNets)

Découvrez comment les réseaux de flux génératifs (GFlowNets) utilisent la modélisation probabiliste pour générer un échantillon d'objets discrets variés et à forte valeur ajoutée dans le cadre de la découverte de médicaments et de l'apprentissage causal.

Les réseaux de flux génératifs, ou GFlowNets, constituent un puissant cadre d'apprentissage automatique conçu pour la modélisation probabiliste et l'échantillonnage amorti. Ils excellent dans la génération d'objets discrets et composables en traitant le processus de génération comme une tâche de prise de décision séquentielle. Au lieu de simplement maximiser une récompense, comme c'est souvent le cas dans l' apprentissage par renforcement traditionnel, les GFlowNets apprennent à échantillonner des objets avec une probabilité proportionnelle à une fonction de récompense prédéfinie. Cela leur permet de découvrir des ensembles variés de candidats à haute récompense au sein d'espaces d'échantillonnage exceptionnellement vastes, atténuant ainsi efficacement l' effondrement du modèle qui affecte souvent d'autres architectures génératives telles que les réseaux antagonistes génératifs (GAN).

Principes fondamentaux et mécanismes

Les GFlowNets fonctionnent en se déplaçant dans un environnement structuré, en ajoutant des éléments constitutifs étape par étape pour construire un objet final.

  • Politiques avant et arrière: un réseau neuronal prédit une politique avant, déterminant 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 tels que 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 pour celui-ci. Un réglage adéquat des hyperparamètres est essentiel pour stabiliser cette fonction de perte pendant l'entraînement.
  • Échantillonnage proportionnel: En effectuant un échantillonnage proportionnel à la récompense plutôt que de rechercher simplement le maximum absolu, les GFlowNets favorisent naturellement la diversité, ce qui est essentiel pour explorer des espaces combinatoires complexes.

GFlowNets par rapport aux autres IA génératives

Si l'IA générative englobe de nombreuses techniques, les GFlowNets occupent une niche unique. Les modèles de diffusion classiques ou des techniques telles que le « flow matching » transforment généralement des distributions de bruit continues en données. En revanche, les GFlowNets sont explicitement conçus pour générer des structures discrètes, telles que des graphes ou des séquences. De plus, alors que les agents d'apprentissage par renforcement standard visent à trouver un seul chemin optimal via le processus de décision markovien (MDP), les GFlowNets cartographient plusieurs chemins à haute récompense 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 utiles dans les domaines scientifiques et structurels.

Mise en œuvre de la politique « Forward »

Lors de la construction d'un GFlowNet, la politique de propagation doit prédire une distribution de probabilité sur les prochaines étapes possibles. Le code suivant PyTorch montre comment définir une couche de politique simple et échantillonner une action. Alors que la construction de modèles de vision tels que Ultralytics 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 vous développez des solutions d'IA complexes en Python, vous pouvez facilement annoter des ensembles de données, entraîner et déployer des modèles à l'aide de la Ultralytics . Que vous vous concentriez sur des tâches de détection d'objets à grande vitesse ou que vous exploriez des architectures génératives, il est essentiel de disposer d'un solide pipeline d'opérations d'apprentissage automatique (MLOps) pour faire évoluer vos modèles efficacement.

Construisons ensemble l'avenir de l'IA !

Commencez votre parcours avec l'avenir de l'apprentissage automatique