Generative Flow Networks (GFlowNets)
Descubre cómo las redes de flujo generativo (GFlowNets) utilizan el modelado probabilístico para muestrear objetos discretos diversos y de alta recompensa para el descubrimiento de fármacos y el aprendizaje causal.
Las redes de flujo generativo, o GFlowNets, son un potente framework de machine learning diseñado para el modelado probabilístico y el muestreo amortizado. Destacan en la generación de objetos discretos y composicionales al tratar el proceso de generación como una tarea de toma de decisiones secuencial. En lugar de limitarse a maximizar una recompensa, como es habitual en el reinforcement learning tradicional, las GFlowNets aprenden a muestrear objetos con una probabilidad proporcional a una reward function predefinida. Esto les permite descubrir diversos conjuntos de candidatos de alta recompensa dentro de espacios de muestreo excepcionalmente grandes, mitigando eficazmente el model collapse que suele afectar a otras arquitecturas generativas como las Generative Adversarial Networks (GANs).
Link to this sectionPrincipios y mecanismos fundamentales#
Las GFlowNets funcionan moviéndose a través de un entorno estructurado, añadiendo bloques de construcción paso a paso para construir un objeto final.
- Forward and Backward Policies: Una neural network predice una política hacia adelante (forward policy), que dicta la distribución de probabilidad sobre las posibles acciones a partir de un estado dado. Al mapear trayectorias a través de estos estados, el modelo aprende el "flujo" de probabilidad.
- Trajectory Balance Loss: El entrenamiento a menudo depende de objetivos de optimización como la pérdida de equilibrio de trayectoria (trajectory balance loss), que asegura que la probabilidad de generar un objeto específico se alinee estrechamente con su recompensa observada. Un correcto hyperparameter tuning es esencial para estabilizar esta loss function durante el entrenamiento.
- Proportional Sampling: Al muestrear proporcionalmente a la recompensa en lugar de buscar simplemente el máximo absoluto, las GFlowNets fomentan la diversidad de forma natural, lo cual es crucial al navegar por complejos combinatorial spaces.
Link to this sectionGFlowNets frente a otra IA generativa#
Aunque la Generative AI abarca muchas técnicas, las GFlowNets ocupan un nicho único. Los Diffusion Models estándar o técnicas como Flow Matching transforman típicamente distribuciones de ruido continuo en datos. Por el contrario, las GFlowNets están diseñadas explícitamente para generar estructuras discretas, como grafos o secuencias. Además, mientras que los agentes de reinforcement learning estándar tienen como objetivo encontrar una ruta óptima única a través del Markov Decision Process (MDP), las GFlowNets mapean múltiples rutas de alta recompensa para asegurar una gran variedad de resultados generados.
Link to this sectionAplicaciones en el mundo real#
La capacidad de generar candidatos diversos y altamente optimizados hace que las GFlowNets sean especialmente valiosas en dominios científicos y estructurales.
- Drug Discovery and Molecular Design: En la pharmaceutical research, las GFlowNets se utilizan para generar nuevos péptidos terapéuticos y grafos moleculares. Avances recientes, como las Atomic GFlowNets (A-GFN), construyen moléculas átomo a átomo para optimizar propiedades como la afinidad de unión y la accesibilidad sintética. Este proceso crea candidatos a fármacos más diversos en comparación con los métodos que dependen de fragmentos predefinidos.
- Causal Structure Learning: Las GFlowNets también se aplican para descubrir la estructura de Bayesian Networks causales. Aproximan la distribución posterior sobre Directed Acyclic Graphs (DAGs), ayudando a los investigadores a mantener una visión realista de la epistemic uncertainty al modelar relaciones de datos complejas.
Link to this sectionImplementación de la política hacia adelante (Forward Policy)#
Al construir una GFlowNet, la política hacia adelante debe predecir una distribución de probabilidad sobre los siguientes pasos posibles. El siguiente fragmento de PyTorch demuestra cómo definir una capa de política simple y muestrear una acción. Si bien la creación de modelos de visión como Ultralytics YOLO26 requiere predecir coordenadas de bbox, una GFlowNet utiliza categorical distributions para seleccionar el siguiente estado en su ruta de generación.
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 estás desarrollando soluciones de IA complejas en Python, puedes anotar datasets, entrenar y desplegar modelos sin problemas utilizando la Ultralytics Platform. Tanto si te centras en tareas de object detection de alta velocidad como si exploras arquitecturas generativas, disponer de un pipeline sólido de machine learning operations (MLOps) es esencial para escalar tus modelos de manera eficaz.






