Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Redes de flujo generativo (GFlowNets)

Descubre cómo las redes de flujo generativo (GFlowNets) utilizan modelos probabilísticos para generar una muestra de objetos discretos diversos y de alta recompensa con fines de descubrimiento de fármacos y aprendizaje causal.

Las redes de flujo generativo, o GFlowNets, son un potente marco de aprendizaje automático 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 secuencial de toma de decisiones . En lugar de limitarse a maximizar una recompensa, como es habitual en el aprendizaje por refuerzo tradicional, las GFlowNets aprenden a muestrear objetos con una probabilidad proporcional a una función de recompensa predefinida. Esto les permite descubrir conjuntos diversos de candidatos de alta recompensa dentro de espacios de muestreo excepcionalmente grandes, mitigando de forma eficaz el colapso del modelo que a menudo afecta a otras arquitecturas generativas como las redes generativas adversarias (GAN).

Principios y mecanismos fundamentales

Las redes GFlowNets funcionan desplazándose por un entorno estructurado y añadiendo bloques de construcción paso a paso para construir un objeto final.

  • Políticas hacia adelante y hacia atrás: Una red neuronal predice una política hacia adelante, estableciendo la distribución de probabilidad de las posibles acciones a partir de un estado dado. Al trazar trayectorias a través de estos estados, el modelo aprende el «flujo» de probabilidad.
  • Pérdida de equilibrio de trayectoria: El entrenamiento suele basarse en objetivos de optimización como la pérdida de equilibrio de trayectoria, lo que garantiza que la probabilidad de generar un objeto específico se ajuste estrechamente a su recompensa observada. Un ajuste adecuado de los hiperparámetros es esencial para estabilizar esta función de pérdida durante el entrenamiento.
  • Muestreo proporcional: Al realizar un muestreo proporcional a la recompensa, en lugar de limitarse a buscar el máximo absoluto, las redes GFlowNet fomentan de forma natural la diversidad, algo crucial a la hora de explorar espacios combinatorios complejos.

GFlowNets frente a otras IA generativas

Aunque la IA generativa abarca muchas técnicas, las GFlowNets ocupan un nicho único. Los modelos de difusión estándar o técnicas como el «flow matching» suelen transformar distribuciones de ruido continuas en datos. Por el contrario, las GFlowNets están diseñadas específicamente para generar estructuras discretas, como gráficos o secuencias. Además, mientras que los agentes de aprendizaje por refuerzo estándar tienen como objetivo encontrar una única ruta óptima a través del proceso de decisión de Markov (MDP), las GFlowNets trazan múltiples rutas de alta recompensa para garantizar una amplia variedad de resultados generados.

Aplicaciones en el mundo real

La capacidad de generar candidatos diversos y altamente optimizados hace que las redes GFlowNet sean especialmente valiosas en los ámbitos científico y estructural.

Aplicación de la política de avance

Al entrenar una red GFlowNet, la política de predicción debe estimar una distribución de probabilidad sobre los siguientes pasos posibles. El siguiente PyTorch muestra cómo definir una capa de política sencilla y muestrear una acción. Mientras que la construcción de modelos de visión como Ultralytics requiere predecir las coordenadas de los recuadros delimitadores, una GFlowNet utiliza distribuciones categóricas 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 complejas de IA en Python, puedes anotar conjuntos de datos, entrenar y desplegar modelos sin problemas utilizando la Ultralytics . Tanto si te centras en tareas de detección de objetos a alta velocidad como si exploras arquitecturas generativas, contar con un flujo de trabajo sólido de operaciones de aprendizaje automático (MLOps) es esencial para escalar tus modelos de forma eficaz.

¡Construyamos juntos el futuro de la IA!

Comience su viaje con el futuro del aprendizaje automático