Vai al contenuto
AI.info

Approfondimenti tecnici

Modelli di diffusione: la matematica dietro la generazione di immagini con l’IA

La matematica della generazione di immagini per diffusione: la catena diretta di aggiunta del rumore, la funzione di perdita per la previsione del rumore, le equazioni differenziali stocastiche basate sullo score, il campionamento DDIM, la

Modelli di diffusione: la matematica dietro la generazione di immagini con l’IA

AI.info Team ·

Dal rumore all’immagine: l’idea di fondo

I modelli di diffusione generano immagini imparando a invertire un processo di distruzione. Si prende una fotografia reale e vi si aggiunge una piccola quantità di rumore gaussiano. Ripetendo l’operazione centinaia o migliaia di volte, l’immagine si dissolve in puro rumore: un campione tratto da una distribuzione normale standard. Questo è il processo diretto e non richiede alcun apprendimento: è una catena di Markov fissa, definita matematicamente.

L’intero compito del modello generativo è imparare il processo inverso: partire dal puro rumore e rimuoverlo passo dopo passo, finché non emerge un’immagine coerente. Poiché ogni singolo passaggio di rimozione del rumore è piccolo, lo si può modellare con una rete neurale, anche se la trasformazione complessiva — dal rumore a un’immagine fotorealistica — è enormemente complessa.

Questa impostazione, formalizzata come Denoising Diffusion Probabilistic Models (DDPM) da Jonathan Ho, Ajay Jain e Pieter Abbeel nel 2020, è alla base di Stable Diffusion, DALL·E 2, Imagen e del diffusion transformer al centro di Sora di OpenAI: un elenco in cui diversi prodotti citati sono stati nel frattempo ritirati, mentre l’impianto teorico su cui si basavano è sopravvissuto. Ha sostituito una generazione di GAN come paradigma dominante per la sintesi delle immagini non perché sia in linea di principio più elegante, ma perché è più stabile nell’addestramento e cresce in modo più prevedibile all’aumentare dei dati e della potenza di calcolo.

Il processo diretto: distruggere informazioni di proposito

Formalmente, il processo diretto è una catena di Markov fissa che aggiunge rumore gaussiano a un campione di dati $x_0$ nel corso di $T$ passaggi temporali, secondo uno schema di varianza $\beta_1, \dots, \beta_T$:

q(x_t | x_{t-1}) = N(x_t; sqrt(1 - beta_t) * x_{t-1}, beta_t * I)

Poiché ogni passaggio è gaussiano, la catena ha una comoda forma chiusa: si può passare direttamente dall’immagine originale $x_0$ a qualsiasi livello di rumore $t$ senza simulare tutti i passaggi intermedi. Definendo $\alpha_t = 1 - \beta_t$ e $\bar{\alpha}t = \prod{s=1}^t \alpha_s$, la distribuzione marginale è:

q(x_t | x_0) = N(x_t; sqrt(alpha_bar_t) * x_0, (1 - alpha_bar_t) * I)

In pratica, questo significa che si può ottenere una versione rumorosa di qualsiasi immagine di addestramento, a qualsiasi passaggio temporale, con una sola operazione: $x_t = \sqrt{\bar{\alpha}_t}, x_0 + \sqrt{1-\bar{\alpha}_t}, \epsilon$, dove $\epsilon$ è rumore gaussiano standard. È questa identità a rendere efficiente l’addestramento dei DDPM: non serve eseguire una catena di mille passaggi per ottenere un esempio di addestramento.

Lo schema di varianza conta più di quanto possa sembrare. Nell’articolo originale, Ho e colleghi usavano uno schema lineare per $\beta_t$, che aumentava da circa $10^{-4}$ a $0.02$ nell’arco di 1.000 passaggi. Un lavoro successivo di Nichol e Dhariwal sui DDPM migliorati ha mostrato che uno schema cosinusoidale, che distrugge le informazioni più lentamente vicino all’inizio e alla fine della catena, migliora le log-verosimiglianze e la qualità dei campioni: lo schema lineare tende a rendere le immagini irriconoscibili troppo presto, sprecando la capacità del modello in passaggi temporali che contengono pochi segnali utili.

Il processo inverso: che cosa impara davvero la rete

Il processo inverso $p_\theta(x_{t-1}|x_t)$ è quello parametrizzato da una rete neurale. L’intuizione decisiva di Ho e colleghi fu che, invece di far prevedere direttamente alla rete l’immagine priva di rumore, è più efficace e, sul piano empirico, più stabile farle prevedere il rumore $\epsilon$ aggiunto a ogni passaggio. Data un’immagine rumorosa $x_t$ e il passaggio temporale $t$, la rete $\epsilon_\theta(x_t, t)$ produce una stima della componente di rumore; lo stato precedente, leggermente meno rumoroso, viene ricostruito sottraendo una versione scalata di quella stima:

x_{t-1} = (1/sqrt(alpha_t)) * (x_t - (beta_t/sqrt(1 - alpha_bar_t)) * eps_theta(x_t, t)) + sigma_t * z

dove $z$ è nuovo rumore gaussiano (aggiunto a ogni passaggio tranne l’ultimo) e $\sigma_t$ controlla la stocasticità. La parametrizzazione basata sulla previsione del rumore collega direttamente i modelli di diffusione ai modelli generativi basati sullo score: prevedere il rumore $\epsilon$ aggiunto a un campione equivale matematicamente, a meno di un fattore di scala noto, a stimare la funzione score, cioè il gradiente della log-densità, $\nabla_x \log p(x_t)$. Non è una coincidenza: è il ponte fra due filoni di ricerca arrivati allo stesso obiettivo da direzioni diverse.

L’addestramento: una funzione di perdita ingannevolmente semplice

Nonostante la complessa derivazione probabilistica — il DDPM è formulato come ottimizzazione di un limite inferiore variazionale della log-verosimiglianza dei dati, appartenente alla stessa famiglia di obiettivi usata nei VAE — la funzione di perdita a cui Ho e colleghi sono arrivati per l’addestramento pratico è notevolmente semplice. Anziché ottimizzare l’intero limite variazionale ponderato, hanno scoperto che un obiettivo semplificato, che misura soltanto l’errore quadratico medio fra il rumore effettivo e quello previsto, produceva campioni di qualità migliore:

L_simple = E_{x0, t, eps} [ || eps - eps_theta(x_t, t) ||^2 ]

A ogni passaggio dell’addestramento si sceglie un’immagine casuale dal dataset, si sceglie un passaggio temporale casuale $t$, si campiona il rumore $\epsilon$, si costruisce l’immagine rumorosa $x_t$ e si addestra la rete a prevedere $\epsilon$ a partire da $x_t$ e $t$. Non c’è un discriminatore avversario, né un gioco min-max, né dinamiche di collasso delle modalità da contrastare: solo regressione. È in gran parte per questo che i modelli di diffusione si sono dimostrati più facili da addestrare in modo affidabile rispetto ai GAN su larga scala: l’obiettivo è una funzione di perdita stabile e ben controllabile, non un equilibrio fra due reti in competizione.

Sul benchmark CIFAR-10 senza condizionamento, l’articolo originale sui DDPM riportava un Inception Score di 9,46 e un FID di 3,17 (all’epoca il migliore risultato disponibile), e produceva campioni LSUN di 256×256 paragonabili per qualità a quelli di ProgressiveGAN: un risultato notevole per un modello con una procedura di addestramento così poco appariscente.

Modello Benchmark Risultato
DDPM (2020) CIFAR-10, senza condizionamento Inception Score 9,46, FID 3,17
DDIM (2020) Velocità di campionamento rispetto a DDPM Da 10x a 50x più veloce
DiT-XL/2 (2022) ImageNet 256x256, condizionato sulla classe, con classifier-free guidance FID 2,27, nuovo stato dell’arte

Modelli basati sullo score e prospettiva a tempo continuo

In parallelo, Yang Song e Stefano Ermon hanno sviluppato modelli generativi basati sullo score, che affrontano lo stesso problema da una diversa prospettiva matematica: anziché usare una catena discreta di passaggi gaussiani, apprendono la funzione di score della distribuzione dei dati a diversi livelli di rumore e generano campioni mediante la dinamica di Langevin. Song, Sohl-Dickstein, Kingma, Kumar, Ermon e Poole hanno unificato questa linea di ricerca con DDPM in "Score-Based Generative Modeling through Stochastic Differential Equations" (ICLR 2021, premiato con un Outstanding Paper Award).

L’articolo mostra che sia DDPM sia i modelli basati sullo score matching sono discretizzazioni della stessa idea di fondo: un’equazione differenziale stocastica che trasforma gradualmente i dati in rumore, affiancata da un’equazione differenziale stocastica a tempo inverso che dipende soltanto dalla funzione di score e può essere eseguita a ritroso per generare campioni.

La formulazione a tempo continuo ha conseguenze pratiche perché separa il modello — una rete neurale che stima lo score a qualsiasi livello di rumore — dal campionatore, un risolutore numerico per equazioni differenziali stocastiche o ordinarie. Apre la strada a campionatori più veloci e più accurati, sviluppati indipendentemente dal modo in cui la rete è stata addestrata, e chiarisce perché tecniche originariamente derivate per DDPM — come modificare la sequenza dei livelli di rumore o il numero di passaggi di campionamento — si trasferiscano senza difficoltà alle formulazioni basate sullo score.

Campionare più velocemente: DDIM

Un problema pratico della formulazione originale di DDPM è che generare un’immagine richiede di percorrere l’intera catena di Markov: in genere, 1.000 valutazioni sequenziali della rete. Denoising Diffusion Implicit Models (DDIM, 2020), di Song, Meng ed Ermon, ha affrontato il problema derivando una famiglia di processi diretti non markoviani che condividono lo stesso obiettivo di addestramento di DDPM, ma consentono un processo inverso diverso e deterministico.

Poiché il processo inverso non deve più attraversare ogni passaggio temporale intermedio, DDIM permette di saltare dei passaggi — campionando in 50 o persino 20 passaggi invece di 1.000 — e di riutilizzare i pesi di un modello addestrato nel modo standard previsto da DDPM, senza bisogno di riaddestrarlo. L’articolo originale su DDIM riportava un campionamento da 10 a 50 volte più veloce, in termini di tempo effettivo, rispetto a DDPM. La sua variante deterministica consente inoltre interpolazioni significative nello spazio latente del rumore, poiché due esecuzioni a partire dallo stesso rumore iniziale producono in modo affidabile lo stesso risultato.

Oggi praticamente tutti i sistemi di generazione di immagini impiegati in produzione usano un discendente di DDIM o un campionatore veloce affine, basato su equazioni differenziali ordinarie, anziché il campionamento ancestrale originale a mille passaggi.

Diffusione latente: perché Stable Diffusion non rimuove il rumore dai pixel

Eseguire un processo di diffusione direttamente nello spazio dei pixel è costoso: un’immagine di 512×512 ha oltre 260.000 valori di pixel e ciascuno dei mille passaggi di rimozione del rumore richiede un passaggio completo attraverso una grande rete che opera a quella risoluzione. "High-Resolution Image Synthesis with Latent Diffusion Models" (CVPR 2022), di Rombach, Blattmann, Lorenz, Esser e Ommer — l’articolo alla base di Stable Diffusion — ha risolto il problema comprimendo prima le immagini in uno spazio latente molto più piccolo mediante un autoencoder preaddestrato, per poi eseguire l’intero processo di diffusione in quella rappresentazione compressa.

L’autoencoder è addestrato a scartare soltanto i dettagli ad alta frequenza irrilevanti sul piano percettivo. Di conseguenza, la decodifica della rappresentazione latente finale, da cui è stato rimosso il rumore, nello spazio dei pixel comporta una perdita di qualità visibile minima, riducendo drasticamente il costo computazionale sia dell’addestramento sia del campionamento.

La diffusione latente ha introdotto anche un meccanismo elegante per condizionare la generazione su altre modalità. I prompt testuali, codificati da un modello linguistico, vengono inseriti nella U-Net che rimuove il rumore tramite livelli di cross-attention a ogni livello di risoluzione. Questo permette alla stessa architettura di gestire la generazione di immagini da testo, l’inpainting e altri compiti condizionati attraverso un’unica interfaccia generale, anziché con architetture specifiche per ciascun compito.

Orientare la generazione: guida senza classificatore

Un modello di diffusione addestrato esclusivamente a ricostruire il rumore non produce automaticamente immagini che corrispondono da vicino a un prompt testuale: il solo condizionamento tende a dare risultati attinenti al tema, ma visivamente deboli o generici. I primi lavori usavano la guida tramite classificatore, combinando i gradienti di un classificatore di immagini addestrato separatamente per spingere i campioni verso una classe bersaglio. Questo, però, richiedeva di addestrare e mantenere un classificatore aggiuntivo e funzionava solo per le etichette che quel classificatore comprendeva.

La guida senza classificatore di Ho e Salimans (2022) ha eliminato questa dipendenza. Durante l’addestramento, le informazioni di condizionamento (per esempio, la rappresentazione vettoriale del testo) vengono omesse casualmente per una parte delle volte, così che un’unica rete impari a funzionare sia come modello condizionato $\epsilon_\theta(x_t, t, c)$ sia come modello non condizionato $\epsilon_\theta(x_t, t)$. Durante il campionamento, le due previsioni vengono combinate:

eps_guided = eps_theta(x_t, t) + w * (eps_theta(x_t, t, c) - eps_theta(x_t, t))

Il peso di guida $w$ amplifica la differenza tra le previsioni del modello con e senza il prompt, spingendo i campioni verso la condizione più di quanto farebbe da solo il modello condizionato. Un valore di $w$ più alto sacrifica la diversità a favore della fedeltà al prompt e della nitidezza visiva: è proprio questo il parametro regolabile chiamato «scala di guida» o «scala CFG» in Stable Diffusion e in interfacce simili. La guida senza classificatore è ormai pressoché universale nei sistemi che generano immagini da testo, perché offre gran parte dei benefici della guida tramite classificatore senza dover addestrare un modello aggiuntivo.

U-Net e diffusion transformer

Per anni, la rete che stimava il rumore a ogni passaggio è stata quasi sempre una U-Net: un encoder-decoder convoluzionale con connessioni tra risoluzioni corrispondenti, arricchito da blocchi di self-attention alle risoluzioni più basse e da connessioni residue. L’architettura ricalcava da vicino quella usata nel DDPM originale di Ho et al. e perfezionata nelle versioni successive di Stable Diffusion. Le caratteristiche intrinseche della U-Net — località, equivarianza rispetto alle traslazioni ed elaborazione multiscala — si adattavano bene alle immagini e ne hanno fatto la scelta predefinita.

«Scalable Diffusion Models with Transformers» di Peebles e Xie (DiT, 2022) ha messo in discussione quella scelta. DiT sostituisce interamente la U-Net con un semplice transformer che opera su patch della rappresentazione latente, seguendo l’impostazione dei vision transformer anziché quella delle reti convoluzionali. Il principale risultato empirico dello studio è che le prestazioni di DiT crescono in modo prevedibile con la capacità di calcolo — misurata in Gflops in funzione della profondità e della larghezza del modello e del numero di token — in modo molto simile alle leggi di scala osservate nei modelli linguistici. La variante più grande, DiT-XL/2, ha stabilito un nuovo FID di riferimento di 2,27 su ImageNet con condizionamento sulla classe a 256×256 usando la guidance senza classificatore, superando i precedenti modelli di diffusione basati su U-Net.

Questa scalabilità, insieme al fatto che i transformer si integrano naturalmente con altri componenti basati su transformer, in particolare gli encoder testuali, spiega perché i sistemi successivi abbiano adottato sempre più spesso backbone transformer. Sora di OpenAI, descritto nel suo rapporto tecnico del 2024, estende l’idea ai video: comprime il video in uno spazio latente, suddivide quella rappresentazione in patch spazio-temporali (patch che si estendono sia nello spazio sia nel tempo) e addestra un diffusion transformer a predire patch prive di rumore a partire da patch rumorose. La generazione video viene così trattata come lo stesso problema di rimozione del rumore della generazione di immagini, ma su una sequenza di token con un asse temporale aggiuntivo.

Sora non è sopravvissuto come prodotto. Il 24 marzo 2026 OpenAI ha annunciato che avrebbe dismesso l’app per i consumatori, chiusa il 26 aprile 2026, mentre la rimozione della Sora 2 API è prevista per il 24 settembre 2026. La linea di OpenAI dedicata alle immagini aveva cambiato direzione già prima: nel marzo 2025 ChatGPT ha smesso di chiamare DALL·E, preferendo la generazione di immagini integrata nativamente in GPT-4o, e gli snapshot API dall-e-2 e dall-e-3 sono stati disattivati il 12 maggio 2026. Nessuno di questi ritiri cambia la matematica. È cambiato il modo in cui il prodotto si presenta: il generatore di immagini dentro ChatGPT non è più una rete separata di rimozione del rumore richiamata come strumento. Perciò la derivazione qui esposta si applica oggi più direttamente a Stable Diffusion e ai checkpoint aperti di diffusione latente che a qualunque prodotto attualmente offerto da OpenAI.

Le ricadute pratiche

Il percorso dal DDPM ai sistemi moderni è una storia di colli di bottiglia eliminati uno alla volta. Il DDPM ha dimostrato che la rimozione iterativa del rumore, addestrata con una semplice funzione di perdita basata sulla previsione del rumore, produce campioni ad alta fedeltà senza addestramento avversariale. Il DDIM ha ridotto il costo del campionamento di un ordine di grandezza, separando il campionatore dalla catena di Markov.

La diffusione latente ha ridotto ulteriormente i costi sia dell’addestramento sia dell’inferenza, spostando l’intero processo in una rappresentazione compressa. È questa la specifica innovazione che ha reso possibile eseguire Stable Diffusion su hardware di largo consumo, anziché richiedere le risorse su scala di cluster di Imagen di Google. Imagen, invece, migliora la qualità concatenando tre modelli di diffusione addestrati separatamente: un modello di base a 64×64 seguito da due fasi di super-risoluzione fino a 1024×1024, condizionati da embedding prodotti da un grande modello linguistico T5-XXL i cui parametri restano fissi.

La guidance senza classificatore ha reso controllabile l’aderenza al prompt senza modelli aggiuntivi. E i diffusion transformer hanno permesso al backbone stesso di scalare come fanno i grandi modelli linguistici: proprio la caratteristica che ha consentito di estendere lo stesso schema di rimozione del rumore dalle immagini statiche ai video. Sora, descritto nel rapporto tecnico di OpenAI del febbraio 2024, generava clip fino a un minuto rimuovendo il rumore da patch spazio-temporali.

Nessuno di questi elementi richiede una matematica esotica: rumore gaussiano, una funzione di perdita per la regressione, un meccanismo di attention. A colpire è quanto bene si combinino: ogni progresso sostituisce un modulo all’interno dello stesso schema di aggiunta e rimozione del rumore, anziché ripensarlo da cima a fondo. È in larga parte per questo che, dal 2020, il settore è riuscito a perfezionare i modelli di diffusione così rapidamente.

Esplora

Altri articoli