ELAI S.r.l.

Flow matching: perché interpolare in linea retta non basta a generare in un passo

Dal campo condizionato al flusso marginale: derivazione gaussiana, confronto Eulero–Heun ed esperimento riproducibile sui limiti del campionamento.

Flow matching: perché interpolare in linea retta non basta a generare in un passo

Monografia tecnica · Modelli generativi continui · 21 settembre 2026

Abstract

Nel flow matching è possibile costruire esempi di addestramento interpolando in linea retta fra rumore e dati. Da questa semplicità non segue che il generatore percorra rette, né che basti un passo numerico per ottenere la distribuzione desiderata. Analizziamo il passaggio dalla velocità condizionata alla sua media condizionale e sviluppiamo un caso gaussiano completamente risolvibile. Il campo esatto trasforma N(0,1) in N(3,4), ma un solo passo di Eulero collassa tutti i campioni nel punto 3. Confrontiamo Eulero e Heun a budget di valutazioni dichiarato e separiamo errore di apprendimento, percorso probabilistico e integrazione. Il risultato è un esempio verificabile di come un generatore possa avere il campo corretto e produrre comunque la distribuzione sbagliata.

Prerequisiti e contributo. Servono derivate, probabilità condizionata e nozioni di distribuzione gaussiana. Questa è una derivazione didattica con calcoli eseguiti, non un nuovo metodo generativo né una riproduzione di un benchmark su immagini. Non addestriamo una rete: conosciamo il campo esatto e studiamo soltanto il trasporto e il suo campionamento numerico.

1. Che cosa viene imparato, e che cosa viene integrato?

Un modello generativo continuo parte da una variabile semplice X₀, per esempio rumore gaussiano, e la trasforma in una variabile con distribuzione simile ai dati. Il tempo t appartiene all’intervallo [0,1] e non è il tempo fisico della scena rappresentata. Un campo v(t,x) assegna a ogni posizione x una velocità. Il campione generato è l’estremo di una traiettoria che soddisfa dX/dt = v(t,X).

Questa descrizione contiene già due oggetti diversi: la distribuzione dei campioni a ogni istante e il percorso seguito da ciascun campione. Una distribuzione può essere trasportata attraverso diversi campi. Specificare dove deve arrivare la massa di probabilità non determina da solo tutte le traiettorie. In più dimensioni possono esistere movimenti che modificano i percorsi senza cambiare una particolare densità.

Il lavoro fondativo sul flow matching formula l’apprendimento come regressione di un campo di velocità e permette di costruire obiettivi condizionati trattabili. Il punto che qui approfondiamo è la distinzione fra campi condizionati e marginali, esplicitata nel metodo originale. La nostra analisi sviluppa un caso scalare scelto per renderla calcolabile fino in fondo. [1, sezioni 3–4]

È utile evitare una scorciatoia terminologica: «training senza simulazione» significa che la costruzione dell’esempio di training non richiede di integrare l’ODE del modello. Non significa che la generazione sia priva di integrazione. Per ottenere un nuovo campione si deve ancora risolvere, esattamente o approssimativamente, un problema dinamico.

2. Dalle coppie di campioni alla regressione della velocità

Scegliamo X₀ dalla distribuzione iniziale e X₁ dalla distribuzione obiettivo. Per ora li campioniamo indipendentemente. Definiamo un’interpolazione e la sua derivata:

Xt = (1−t)X₀ + tX₁,   U = X₁−X₀.
L(θ) = E[‖vθ(t,Xt)−U‖²].   (1)

Il tempo viene campionato uniformemente. Il target U è disponibile perché conosciamo entrambi gli estremi della coppia. La rete, invece, riceve soltanto t e Xt: non riceve gli estremi nascosti. Coppie diverse possono produrre la stessa posizione intermedia con velocità differenti. Chiedere alla rete di ricostruire ogni singola velocità esattamente può quindi essere impossibile anche con capacità illimitata.

Il minimizzatore della perdita quadratica è la media condizionale. A tempo e posizione fissati, scriviamo U = E[U|Xt] + R, dove il residuo R ha media condizionale zero. Sviluppando il quadrato, il termine incrociato si annulla. Otteniamo:

v*(t,x) = E[U | Xt=x]
E[‖v−U‖²] = E[‖v−v*‖²] + E[‖U−v*‖²].   (2)

Il secondo termine non dipende dai parametri della rete. Una perdita di training positiva può dunque essere compatibile con un campo marginale perfetto. Confrontare valori assoluti della loss tra percorsi diversi, ignorando questa componente irriducibile, può produrre conclusioni sbagliate sulla qualità dei modelli.

Perché la media condizionale trasporta la distribuzione giusta? Prendiamo una funzione test regolare f. La regola della catena dà dE[f(Xt)]/dt = E[∇f(Xt)·U]. Condizionando su Xt possiamo sostituire U con v*. Questa è la forma debole dell’equazione di continuità associata al campo marginale. L’argomento richiede regolarità e integrabilità sufficienti per scambiare derivata e aspettativa; la sola formula della regressione non autorizza a ignorarle.

3. Un caso gaussiano che possiamo risolvere esattamente

Consideriamo X₀ ∼ N(0,1) e X₁ ∼ N(μ,σ²), indipendenti. L’interpolazione è ancora gaussiana. La sua media è m(t) = tμ e la sua varianza è D(t) = (1−t)² + t²σ². Per la velocità U abbiamo E[U] = μ e Cov(U,Xt) = tσ²−(1−t).

La media condizionale di due variabili congiuntamente gaussiane è affine. Sostituendo le quantità appena calcolate ricaviamo:

D(t) = (1−t)² + t²σ²,   c(t) = tσ²−(1−t)
v*(t,x) = μ + [c(t)/D(t)](x−tμ).   (3)

Per σ > 0 il denominatore resta positivo su tutto l’intervallo. Non c’è una singolarità agli estremi nel campo marginale di questo esempio. La dipendenza da x è lineare, ma il coefficiente dipende dal tempo. «Campo lineare nello stato» e «traiettoria rettilinea nel tempo» sono proprietà diverse.

La soluzione dell’ODE che parte dal valore z è esplicita:

φ(t,z) = tμ + √D(t) z.
φ(0,z)=z,   φ(1,z)=μ+σz.   (4)

Per verificarla osserviamo che D′(t)=2c(t). La derivata della soluzione è μ + c(t)z/√D(t). Valutando (3) in x=φ(t,z) otteniamo la stessa espressione. Se z è standard normale, la soluzione ha esattamente media tμ e varianza D(t). Abbiamo verificato sia la dinamica sia la distribuzione, senza affidarci all’aspetto di una nuvola di punti.

Nel caso usato nei calcoli μ=3 e σ=2. La varianza inizialmente diminuisce: D(t)=1−2t+5t² ha minimo 0,8 a t=0,2, poi aumenta fino a 4. Il flusso prima contrae e poi espande. Per z diverso da zero, la radice di D(t) rende la traiettoria non affine nel tempo, pur partendo da interpolazioni condizionate rettilinee.

4. Le rette delle coppie non sono le traiettorie del generatore

La retta (1−t)x₀+tx₁ conserva l’identità di una coppia iniziale. Il campo marginale, invece, aggrega le velocità compatibili con la posizione corrente. In generale una sua traiettoria non mantiene l’abbinamento originario fra x₀ e x₁. Nel nostro esempio, l’ODE termina sempre in μ+σx₀, mentre la coppia di training usava un x₁ indipendente da x₀.

Non c’è contraddizione: entrambe le costruzioni hanno le stesse distribuzioni marginali intermedie, ma diverse dipendenze fra gli estremi. Un generatore deve produrre la distribuzione finale; non è obbligato a riprodurre l’accoppiamento casuale usato per costruire i target. Confondere distribuzione e accoppiamento fa sembrare misteriosa una semplice operazione di condizionamento.

Possiamo anche cambiare l’accoppiamento. Se scegliamo X₁=μ+σX₀ invece di campionarlo indipendentemente, l’interpolazione diventa Xt=tμ+[1+t(σ−1)]X₀. Ora ogni traiettoria è rettilinea, la varianza intermedia è [1+t(σ−1)]² e la velocità condizionale non ha ambiguità dato Xt. Gli estremi hanno le stesse distribuzioni del caso precedente; cambia la strada fra di essi.

Questo confronto chiarisce il ruolo della scelta delle coppie. Nella pratica non disponiamo normalmente della mappa di trasporto esatta fra rumore e dati complessi. La facilità del caso gaussiano non si trasferisce automaticamente alle immagini. È però sufficiente a dimostrare che la distribuzione obiettivo, da sola, non determina la difficoltà della regressione o del campionamento.

5. Una loss positiva anche con il campo perfetto

Nel caso indipendente la varianza condizionale della velocità è costante rispetto alla posizione, ma varia con il tempo. La formula gaussiana fornisce:

Var(U | Xt) = (1+σ²) − c(t)²/D(t) = σ²/D(t).   (5)

Con σ=2 vale 4 all’inizio, 5 al minimo di D e 1 alla fine. Queste quantità non indicano errori della rete: descrivono l’ambiguità dei target generata dall’accoppiamento indipendente. L’identità finale si controlla espandendo (1+σ²)D−c², che si riduce a σ². Il confronto con l’accoppiamento deterministico, dove questa varianza è zero, rende evidente perché la loss non sia una misura universale confrontabile senza contesto.

La rete può comunque apprendere una media utile da target rumorosi. L’equazione (2) spiega il motivo: minimizzare la loss condizionata riduce lo scarto dal campo marginale, anche se rimane una componente non eliminabile. Questo è un fenomeno di regressione statistica; non richiede che ogni esempio di training sia ricostruibile esattamente.

6. Esperimento eseguito: un passo può distruggere la distribuzione

Usiamo il campo esatto (3) e lo integriamo con Eulero esplicito e Heun, a passi uniformi. Il primo usa una valutazione del campo per passo; il secondo ne usa due. Se h=1/n, le rispettive regole sono:

Eulero: xj+1 = xj + h v(tj,xj)
Heun: k₁=v(tj,xj),   k₂=v(tj+h,xj+hk₁)
xj+1 = xj + h(k₁+k₂)/2.   (6)

Per n=1, Eulero valuta v(0,z)=3−z. L’uscita è quindi z+(3−z)=3 per ogni z. Il rumore scompare e otteniamo una massa puntuale, benché il target sia N(3,4). La media è corretta, ma la varianza è zero. Un controllo limitato alla media dichiarerebbe riuscito un campionatore completamente sbagliato.

Poiché campo e integratori sono affini nello stato, l’uscita numerica resta una trasformazione affine di z. Per conoscerne esattamente media e deviazione standard basta integrare z=0 e z=1: non è necessario un campionamento Monte Carlo. Misuriamo la distanza Wasserstein di ordine 2 fra gaussiane unidimensionali: W₂²=(m−3)²+(s−2)², dove m e s sono media e deviazione standard numeriche. La formula include il caso degenere s=0.

MetodoPassiValutazioni NFEDeviazione standardW₂
Eulero110,0000002,000000
Eulero441,3621620,637838
Heun241,5300000,470000
Eulero16161,8227320,177268
Heun8161,9808500,019150
Eulero64641,9542210,045779
Heun32641,9990100,000990
Traiettorie gaussiane marginali non rettilinee e distanza Wasserstein degli integratori Eulero e Heun rispetto al numero di valutazioni.
Figura 1. Sopra: soluzioni esatte per cinque valori iniziali. Sotto: errore distributivo calcolato senza campionamento casuale; entrambi gli assi del pannello inferiore sono logaritmici. I punti confrontano valutazioni del campo, non tempi misurati su GPU.

Il calcolo è stato eseguito con Python 3.14.0 usando soltanto la libreria standard. Non serve un seme: le operazioni sono deterministiche. La verifica per differenze finite della derivata della soluzione esatta ha restituito uno scarto massimo di circa 6,07×10⁻¹⁰. I risultati completi includono i numeri di passi intermedi e sono allegati insieme al codice.

A 16 valutazioni, Heun riduce l’errore a circa 0,01915 contro 0,17727 di Eulero. È un risultato di questo problema regolare, non una garanzia che Heun sia sempre più efficiente nei generatori neurali. Qui il costo del campo è trascurabile; in un modello reale contano dimensione del batch, precisione, architettura, memoria e costo di ogni valutazione. NFE è una misura strutturale utile, ma non è un cronometro.

7. Separare tre errori prima di scegliere un generatore

Il primo errore è statistico: i dati finiti e la capacità del modello possono impedire di apprendere v*. Il secondo riguarda l’obiettivo e il percorso: la distribuzione finale definita dalla costruzione potrebbe essere una versione regolarizzata dei dati, oppure l’accoppiamento potrebbe rendere difficile il campo. Il terzo è numerico: anche il campo perfetto produce campioni errati se il solutore è troppo grossolano. Il nostro esperimento annulla il primo e isola il terzo.

Una loss minore non identifica da sola quale errore è diminuito. Un maggior numero di passi non può correggere sistematicamente un campo sbagliato; integra più accuratamente la dinamica sbagliata. Viceversa, addestrare una rete migliore può dare benefici invisibili se il campionatore domina l’errore finale. Occorre quindi variare separatamente modello, percorso e integrazione.

Un confronto sperimentale informativo fissa dapprima il campo e studia la convergenza numerica, poi fissa un solutore sufficientemente accurato e confronta i campi appresi. Per immagini, distribuzione e qualità non si riducono a media e varianza; il nostro W₂ analitico non sostituisce metriche o valutazioni adeguate al dominio. Il vantaggio didattico consiste proprio nell’avere una verità esatta contro cui controllare ogni passaggio.

Le note MIT del 2025 sviluppano il collegamento fra percorsi probabilistici, campi marginali e apprendimento, offrendo un riferimento per estendere questa analisi. Qui non confrontiamo architetture generative recenti né dichiariamo un vincitore dello stato dell’arte: studiamo un meccanismo che resta necessario per interpretarli. [2, sezioni 2–4]

8. Materiali riproducibili e conclusione

Il programma allegato implementa D(t), il campo, la soluzione esatta e i due integratori. Si esegue con python experiment.py --out results.json. Lo script dei grafici richiede Matplotlib; istruzioni e versioni sono nell’archivio. Non sono richiesti pesi di modelli, dataset o servizi esterni.

def variance(t):
    return (1-t)**2 + 4*t*t

def velocity(t, x):
    return 3 + (-1+5*t)/variance(t) * (x-3*t)

def exact(t, z):
    return 3*t + math.sqrt(variance(t))*z

Scarica codice, risultati e istruzioni · Risultati numerici in JSON.

La conclusione è precisa: rendere rettilinei gli esempi condizionati non basta a rendere rettilineo il flusso marginale. Il modello apprende una media condizionale, e il generatore integra quel campo. Distribuzione intermedia, accoppiamento delle coppie, ambiguità della regressione e precisione numerica sono livelli distinti. Nel nostro caso il campo è esatto, la media finale è corretta e un unico passo distrugge comunque tutta la variabilità desiderata. È questo controllo delle ipotesi, più della semplicità apparente dell’interpolazione, che permette di ragionare seriamente sui modelli generativi.

Riferimenti

  1. Lipman, Y., Chen, R. T. Q., Ben-Hamu, H., Nickel, M., Le, M. Flow Matching for Generative Modeling. arXiv:2210.02747v2, 2023. Metodi: sezioni 3–4; protocollo sperimentale: sezione 6.
  2. Holderrieth, P., Erives, E. An Introduction to Flow Matching and Diffusion Models. Note MIT 6.S184, arXiv:2506.02070v1, 2025. Percorsi, campi e regressione: sezioni 2–4.

Analisi preparata con assistenza AI. Esperimento didattico sintetico, non ricerca aziendale EL-AI. Copertina illustrativa generata con AI; il grafico deriva dai calcoli allegati.