Descubra como as Redes de Fluxo Generativo (GFlowNets) utilizam a modelação probabilística para gerar amostras de objetos discretos diversos e de alto retorno, com vista à descoberta de fármacos e à aprendizagem causal.
As Redes de Fluxo Generativas, ou GFlowNets, são uma poderosa estrutura de aprendizagem automática concebida para modelagem probabilística e amostragem amortizada. Destacam-se na geração de objetos discretos e composicionais, tratando o processo de geração como uma tarefa de tomada de decisão sequencial. Em vez de simplesmente maximizar uma recompensa, como é comum na aprendizagem por reforço tradicional, as GFlowNets aprendem a amostrar objetos com uma probabilidade proporcional a uma função de recompensa pré-definida. Isto permite-lhes descobrir conjuntos diversificados de candidatos de alta recompensa dentro de espaços de amostragem excepcionalmente grandes, mitigando eficazmente o colapso do modelo que frequentemente afeta outras arquiteturas generativas, como as Redes Adversárias Generativas (GANs).
As GFlowNets funcionam movendo-se através de um ambiente estruturado, adicionando blocos de construção passo a passo para construir um objeto final.
Embora a IA generativa abranja muitas técnicas, as GFlowNets ocupam um nicho único. Os modelos de difusão padrão ou técnicas como o Flow Matching transformam normalmente distribuições contínuas de ruído em dados. Em contrapartida, as GFlowNets são explicitamente concebidas para gerar estruturas discretas, tais como gráficos ou sequências. Além disso, enquanto os agentes de aprendizagem por reforço padrão visam encontrar um único caminho ótimo através do Processo de Decisão de Markov (MDP), as GFlowNets traçam múltiplos caminhos de alta recompensa para garantir uma ampla variedade de resultados gerados.
A capacidade de gerar candidatos diversificados e altamente otimizados torna as GFlowNets particularmente valiosas em domínios científicos e estruturais.
Ao construir uma rede GFlowNet, a política de avanço deve prever uma distribuição de probabilidade para os próximos passos possíveis. O seguinte PyTorch demonstra como definir uma camada de política simples e selecionar uma ação. Enquanto a construção de modelos de visão como Ultralytics requer a previsão das coordenadas da caixa delimitadora, um GFlowNet utiliza distribuições categóricas para selecionar o próximo estado no seu caminho de geração.
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()}")
Se estiver a desenvolver soluções complexas de IA em Python, pode facilmente anotar conjuntos de dados, treinar e implementar modelos utilizando a Ultralytics . Quer se concentre em tarefas de detecção de objetos a alta velocidade ou na exploração de arquiteturas generativas, dispor de um pipeline sólido de operações de aprendizagem automática (MLOps) é essencial para escalar os seus modelos de forma eficaz.
Comece sua jornada com o futuro do aprendizado de máquina