Generative Flow Networks (GFlowNets)
Descubra como as redes de fluxo generativo (GFlowNets) usam modelagem probabilística para gerar amostras diversas de objetos discretos com alta recompensa, aplicadas à descoberta de medicamentos e ao aprendizado causal.
As Redes de Fluxo Generativas, ou GFlowNets, constituem uma estrutura poderosa de aprendizado de máquina, voltada à modelagem probabilística e à amostragem amortizada. As GFlowNets se destacam na geração de objetos discretos e composicionais, tratando o processo de geração como uma tarefa sequencial de tomada de decisão. Em vez de simplesmente maximizar uma recompensa, como é comum no aprendizado por reforço tradicional, as GFlowNets aprendem a amostrar objetos com uma probabilidade proporcional a uma função de recompensa predefinida. Isso permite que as GFlowNets descubram conjuntos diversos de candidatos com recompensas elevadas em espaços de amostragem excepcionalmente grandes, mitigando efetivamente o colapso do modelo que costuma afetar outras arquiteturas generativas, como as Redes Generativas Adversariais (GANs).
Princípios e mecanismos fundamentais#
As GFlowNets percorrem um ambiente estruturado, acrescentando blocos de construção passo a passo até formarem um objeto final.
- Políticas direta e inversa: Uma rede neuronal prevê uma política direta que determina a distribuição de probabilidades das ações possíveis a partir de um determinado estado. Ao mapear trajetórias através destes estados, o modelo aprende o «fluxo» de probabilidade.
- Perda de Equilíbrio de Trajetória: O treinamento costuma depender de objetivos de otimização, como a perda de equilíbrio de trajetória, que garante que a probabilidade de gerar um objeto específico esteja estreitamente alinhada com a recompensa observada. O ajuste de hiperparâmetros adequado é essencial para estabilizar essa função de perda durante o treinamento.
- Amostragem Proporcional: Ao fazer amostragens proporcionais à recompensa, em vez de buscar apenas o valor máximo absoluto, os GFlowNets impõem diversidade naturalmente, algo crucial ao explorar espaços combinatórios complexos.
GFlowNets em comparação com outras técnicas de IA generativa#
Embora a IA generativa englobe muitas técnicas, os GFlowNets ocupam um nicho único. Os Modelos de Difusão padrão ou técnicas como o Flow Matching normalmente transformam distribuições contínuas de ruído em dados. Em contrapartida, os GFlowNets são explicitamente concebidos para gerar estruturas discretas, como grafos ou sequências. Além disso, enquanto os agentes de aprendizagem por reforço padrão procuram encontrar um único caminho ideal por meio do Processo de Decisão de Markov (MDP), os GFlowNets mapeiam vários caminhos com alta recompensa para garantir uma ampla variedade de resultados gerados.
Aplicações no mundo real#
A capacidade de gerar candidatos diversos e altamente otimizados torna os GFlowNets particularmente valiosos em domínios científicos e estruturais.
- Descoberta de Fármacos e Desenho Molecular: Na investigação farmacêutica, os GFlowNets são usados para gerar peptídeos terapêuticos inéditos e grafos moleculares. Avanços recentes, como os Atomic GFlowNets (A-GFN), constroem moléculas átomo a átomo para otimizar propriedades como a afinidade de ligação e a facilidade de síntese. Esse processo cria candidatos a fármacos mais diversos do que os métodos que dependem de fragmentos predefinidos.
- Aprendizagem de estruturas causais: Os GFlowNets também são utilizados para descobrir a estrutura das redes bayesianas causais. Aproximam a distribuição posterior sobre os grafos acíclicos direcionados (DAGs), ajudando os investigadores a manter uma visão realista da incerteza epistémica ao modelarem relações complexas entre dados.
Implementação da política de avanço#
Ao criar um GFlowNet, a política de avanço tem de prever uma distribuição de probabilidade sobre os próximos passos possíveis. O trecho de código a seguir em PyTorch demonstra como definir uma camada de política simples e amostrar uma ação. Enquanto a criação de modelos de visão como o Ultralytics YOLO26 exige a previsão das coordenadas das caixas delimitadoras, um GFlowNet usa distribuições categóricas para selecionar o próximo estado no seu percurso 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 estás a desenvolver soluções complexas de IA em Python, podes anotar conjuntos de dados, treinar e implementar modelos sem complicações usando a Plataforma Ultralytics. Quer te concentres em tarefas de deteção de objetos de alta velocidade ou explores arquiteturas generativas, ter um pipeline sólido de operações de aprendizagem automática (MLOps) é essencial para escalar os teus modelos de forma eficaz.









