Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Reti generative di flusso (GFlowNets)

Scopri come le reti generative a flusso (GFlowNets) utilizzano la modellizzazione probabilistica per generare una varietà di oggetti discreti ad alto potenziale nell’ambito della scoperta di nuovi farmaci e dell’apprendimento causale.

Le Generative Flow Networks, o GFlowNets, sono un potente framework di apprendimento automatico progettato per la modellizzazione probabilistica e il campionamento ammortizzato. Esse eccellono nella generazione di oggetti discreti e composizionali, trattando il processo di generazione come un compito decisionale sequenziale . Invece di limitarsi a massimizzare una ricompensa, come avviene comunemente nel tradizionale apprendimento per rinforzo, le GFlowNets imparano a campionare oggetti con una probabilità proporzionale a una funzione di ricompensa predefinita . Ciò consente loro di individuare insiemi diversificati di candidati ad alto rendimento all'interno di spazi campionari eccezionalmente vasti, mitigando efficacemente il collasso del modello che spesso affligge altre architetture generative come le Generative Adversarial Networks (GAN).

Principi fondamentali e meccanismi

Le reti GFlowNet funzionano muovendosi all'interno di un ambiente strutturato, aggiungendo passo dopo passo elementi costitutivi per costruire un oggetto finale.

  • Politiche in avanti e all'indietro: una rete neurale prevede una politica in avanti, determinando la distribuzione di probabilità delle possibili azioni a partire da un dato stato. Tracciando le traiettorie attraverso questi stati, il modello apprende il "flusso" di probabilità.
  • Perdita di equilibrio della traiettoria: l'addestramento si basa spesso su obiettivi di ottimizzazione come la perdita di equilibrio della traiettoria, che garantisce che la probabilità di generare un determinato oggetto sia strettamente correlata alla ricompensa osservata. Una corretta regolazione degli iperparametri è essenziale per stabilizzare questa funzione di perdita durante l'addestramento.
  • Campionamento proporzionale: Effettuando un campionamento proporzionale alla ricompensa anziché limitarsi a cercare il massimo assoluto, le GFlowNet garantiscono naturalmente la diversità, elemento fondamentale quando si esplora spazi combinatori complessi.

GFlowNets rispetto ad altre IA generative

Sebbene l'IA generativa comprenda numerose tecniche, le GFlowNets occupano una nicchia unica. I modelli di diffusione standard o tecniche come il Flow Matching trasformano tipicamente distribuzioni di rumore continue in dati. Al contrario, le GFlowNets sono progettate specificamente per generare strutture discrete, quali grafi o sequenze. Inoltre, mentre gli agenti di apprendimento per rinforzo standard mirano a trovare un unico percorso ottimale tramite il processo decisionale markoviano (MDP), i GFlowNets tracciano più percorsi ad alto rendimento per garantire un'ampia varietà di output generati.

Applicazioni nel mondo reale

La capacità di generare candidati diversificati e altamente ottimizzati rende GFlowNets particolarmente utile nei settori scientifici e strutturali.

  • Ricerca farmacologica e progettazione molecolare: Nella ricerca farmaceutica, le reti GFlowNet vengono utilizzate per generare nuovi peptidi terapeutici e grafici molecolari. Recenti progressi, come le Atomic GFlowNet (A-GFN), costruiscono le molecole atomo per atomo per ottimizzare proprietà quali l'affinità di legame e l'accessibilità sintetica. Questo processo consente di ottenere candidati farmacologici più diversificati rispetto ai metodi che si basano su frammenti predefiniti.
  • Apprendimento della struttura causale: le reti GFlowNet vengono inoltre utilizzate per individuare la struttura delle reti bayesiane causali. Esse approssimano la distribuzione a posteriori su grafi aciclici diretti (DAG), aiutando i ricercatori a mantenere una visione realistica dell’ incertezza epistemica nella modellizzazione di complesse relazioni tra i dati.

Attuazione della politica "Forward"

Quando si costruisce una rete GFlowNet, la politica di propagazione in avanti deve prevedere una distribuzione di probabilità sui possibili passi successivi. Il seguente PyTorch dimostra come definire un semplice livello di policy e campionare un'azione. Mentre la creazione di modelli di visione come Ultralytics richiede la previsione delle coordinate dei bounding box , una GFlowNet utilizza distribuzioni categoriali per selezionare lo stato successivo nel proprio percorso di generazione.

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 stai sviluppando soluzioni di intelligenza artificiale complesse in Python, puoi facilmente annotare i set di dati, addestrare e distribuire i modelli utilizzando la Ultralytics . Che tu ti stia concentrando su attività di rilevamento di oggetti ad alta velocità o che tu stia esplorando architetture generative, disporre di una solida pipeline di operazioni di machine learning (MLOps) è essenziale per scalare i tuoi modelli in modo efficace.

Costruiamo insieme il futuro dell'intelligenza artificiale!

Inizia il tuo viaggio con il futuro del machine learning