L’energia come compatibilità: la cornice di LeCun#
Nel 2006 Yann LeCun, con Sumit Chopra, Raia Hadsell, Marc’Aurelio Ranzato e Fu Jie Huang, pubblica un lungo articolo didattico [LCH+06] che compie il gesto inverso rispetto a Hopfield: non costruire una rete a energia, ma mostrare che quasi ogni modello di apprendimento può essere letto come una funzione di energia.
La ricetta è di una generalità spiazzante. Invece di dare un’energia a una configurazione sola, la si dà a una coppia: da una parte quello che si ha davanti (una foto, una frase, il presente), dall’altra una risposta possibile (la parola che descrive la foto, la traduzione della frase, il fotogramma successivo). Energia bassa se i due sono compatibili, cioè se stanno bene insieme; alta se non c’entrano niente l’uno con l’altra. Una foto di gatto con la parola «gatto» sta in basso; la stessa foto con la parola «aeroplano» sta in alto. In simboli si scrive \(E(\mathbf{x}, y)\), dove \(\mathbf{x}\) è quello che si ha davanti e \(y\) la risposta candidata.
Rispondere, allora, significa cercare la risposta che rende l’energia minima; imparare significa dare forma al paesaggio, abbassare l’energia delle coppie giuste e alzarla, o tenerla alta, su quelle sbagliate. È una cornice molto più larga di quel che sembra, e contiene una liberazione.
A una festa a coppie c’è un buttafuori. Il suo mestiere è giudicare la coppia che ha davanti: questi due stanno bene insieme, passano; questi due no. Non gli serve conoscere tutte le persone della città, né compilare la classifica di tutti gli abbinamenti possibili con le percentuali esatte che sommano a cento. Gli basta un giudizio, coppia per coppia. Un modello a energia è questo buttafuori: dare la probabilità di ogni risposta possibile, come fanno i modelli probabilistici, è un lavoro immane, perché per dire «70%» su una risposta devi aver messo in conto tutte le altre; dire «questa coppia sì, quella no» è enormemente più economico, e per moltissimi compiti basta e avanza.
Rispondere è un altro mestiere. Portagli una persona sola e chiedigli con chi dovrebbe entrare: adesso deve scorrere la fila e tenersi il migliore che ha visto. Un giudizio costa poco, mille giudizi costano mille volte tanto, e quando i candidati sono tutte le frasi possibili la fila non finisce mai. In fondo non ci arriva nessuno. Quello che ti consegna è il migliore fra quelli che ha guardato, e nessuno può giurare che più indietro non ce ne fosse uno più adatto. Il risparmio sulle percentuali è vero; la fila, però, si paga.
Il buttafuori e la carta in rilievo dell’inizio del capitolo sono la stessa cosa vista da vicino. Il suo giudizio su una coppia è l’altezza di quella coppia sul paesaggio, bassa se i due stanno bene insieme; scorrere la fila per tenersi il migliore è cercare il punto più basso. E quando i candidati sono tanti e simili fra loro, come i punti di una carta, invece di guardarli uno a uno si lascia rotolare una pallina: arriva in fretta in una valle, che però è la più vicina e non sempre la più bassa.
C’è poi un pericolo, e ha un nome preciso: il collasso. Il buttafuori pigro ha scoperto la scorciatoia perfetta: dire sempre sì. Chiunque si presenti, passa. Nessuna coppia si lamenta mai, e il suo giudizio non vale più niente. Se durante l’addestramento premi il modello solo quando dà energia bassa alle coppie giuste, la soluzione più comoda è dare energia bassa a tutto. I rimedi sono due: si può istruire il buttafuori, oppure cambiargli la porta.
Un modello a energia (energy-based model, EBM) è una funzione \(E_\theta(\mathbf{x}, y)\) a valori reali, con parametri \(\theta\), che misura quanto \(\mathbf{x} \in \mathcal{X}\) e \(y \in \mathcal{Y}\) siano compatibili: valori bassi per le coppie compatibili, alti per le altre. L’inferenza è un problema di ottimizzazione:
dove \(\hat{y}\) è la risposta predetta: nessuna somma su \(\mathcal{Y}\), solo una ricerca del minimo. «Solo», però, va preso per quello che è: il minimo esiste sotto ipotesi (continuità di \(E_\theta\) e compattezza di \(\mathcal{Y}\), o coercività dell’energia), e quando \(\mathcal{Y}\) è ad alta dimensione trovarlo è a sua volta un’ottimizzazione non convessa, con gli stessi minimi locali del resto del capitolo. Il vantaggio è di non dover sommare su \(\mathcal{Y}\), non di avere l’inferenza gratis. Un modello probabilistico si ottiene come caso particolare tramite la distribuzione di Gibbs:
dove \(\beta > 0\) è una temperatura inversa e il denominatore è la funzione di partizione condizionata \(Z_\theta(\mathbf{x})\), l’integrale (o la somma) su tutte le risposte possibili: un termine analogo alla \(Z(\theta)\) della sezione precedente, ma non lo stesso oggetto, perché lì si integrava sui dati e qui sulle risposte. Quando \(\mathcal{Y}\) è grande o continuo e ad alta dimensione (una risposta che è un’immagine, un video, una frase), \(Z_\theta(\mathbf{x})\) può addirittura non esistere, e quando esiste è intrattabile: è il muro della sezione precedente. La tesi del tutorial è che per decidere, ordinare o pianificare serve solo l’\(\arg\min\), che di \(Z\) non ha alcun bisogno: rinunciare alla normalizzazione non è una perdita ma un vantaggio computazionale.
Due esempi fissano il vocabolario, e sono quelli del tutorial stesso. Un classificatore a \(K\) classi con logit \(f_\theta(\mathbf{x}) \in \mathbb{R}^K\) è l’energia \(E_\theta(\mathbf{x}, y) = -f_\theta(\mathbf{x})[y]\): l’\(\arg\min_y E\) è la classe col logit più alto, e la distribuzione di Gibbs con \(\beta = 1\) è la softmax. Lì la partizione condizionata \(Z_\theta(\mathbf{x}) = \sum_{y=1}^{K} e^{f_\theta(\mathbf{x})[y]}\) ha \(K\) termini, e il muro non c’è: costa poco perché \(\mathcal{Y}\) è piccolo e discreto. Una regressione è \(E_\theta(\mathbf{x}, y) = \lVert y - g_\theta(\mathbf{x}) \rVert^2\), con \(\arg\min_y E = g_\theta(\mathbf{x})\). Quando c’è anche una variabile latente \(\mathbf{z}\) che nessuno osserva, la si elimina con il minimo, \(E_\theta(\mathbf{x}, y) = \min_{\mathbf{z}} E_\theta(\mathbf{x}, y, \mathbf{z})\), oppure, a temperatura finita, con l’energia libera \(F_\beta(\mathbf{x}, y) = -\tfrac{1}{\beta} \log \int e^{-\beta E_\theta(\mathbf{x}, y, \mathbf{z})}\, d\mathbf{z}\), che per \(\beta \to \infty\) tende al minimo [LCH+06].
Due modelli già incontrati stanno dentro questa cornice, e i due casi sono diversi. La macchina di Boltzmann è quello facile: sull’energia si costruisce una probabilità, ed è proprio il caso da cui la cornice si libera.
Anche la memoria di Hopfield rientra in questa cornice, ma con una differenza. La sua energia guarda una cosa sola, lo stato della rete, e l’indizio rovinato non entra nel conto: decide soltanto da dove parte la discesa. E la risposta è il fondovalle in cui si finisce partendo di lì, non il più basso di tutti, perché altrimenti la rete restituirebbe sempre lo stesso ricordo qualunque indizio le si desse.
Che la risposta possa non essere la migliore in assoluto non è un difetto, ed è l’articolo stesso a metterlo in conto: in molte situazioni reali un modello che va a cercarsi la risposta ne trova una approssimata, che può essere il fondovalle più basso di tutti oppure no.
Il collasso, e le due famiglie di rimedi#
Il collasso, cioè l’energia bassa dappertutto e il sì a qualunque cosa, si previene a due livelli: nella forma del modello, e nel modo in cui lo si addestra. Addestrarlo vuol dire mostrargli una coppia, guardare che voto le dà, e ritoccarlo perché quel voto somigli di più a quello che volevamo. La regola con cui si decide «di quanto ha sbagliato», la funzione di perdita, è una scelta, e di regole possibili ce ne sono parecchie: con un modello di forma qualunque, sono loro a decidere se il collasso è possibile oppure no.
L’articolo di LeCun le passa in rassegna una per una e per ciascuna dice una cosa sola: con quale dislivello fra una coppia giusta e una sbagliata quella regola basta a tenere lontano il collasso. Quel dislivello ha un nome, margine: una superficie piatta non ha dislivelli, quindi una regola che ne pretende uno qualunque la rifiuta per costruzione.
La prima regola della rassegna è anche la più ingenua, quella che si limita ad abbassare l’energia sui dati veri senza mai guardare nient’altro. Alla voce «margine» l’articolo scrive «none», nessuno [LCH+06], cioè con un’architettura qualunque non protegge affatto (l’articolo mostra poi qualche architettura speciale in cui va bene lo stesso). È la prima regola della rassegna, non un difetto sottile da manuale avanzato. La questione del collasso torna, con le misure che permettono di accorgersene, nella sezione Perché non collassa, e come si fa a saperlo.
Come si costringe il buttafuori a fare sul serio? Due modi, ed è utile tenerli distinti perché tutta la discussione dei prossimi anni ruota su questa scelta.
Il primo: portargli davanti anche le coppie sbagliate e pretendere che le respinga. Quelle coppie sbagliate, fabbricate apposta per fargliele respingere, nel gergo del campo si chiamano controesempi, ed è con questo nome che torneranno. Il metodo funziona, e ha un difetto che si vede subito appena le coppie possibili diventano tante: quanti controesempi devi mostrare? Per ogni coppia giusta ne esiste un numero enorme di sbagliate, e mostrargliene un pugno alla volta è come puntellare un tendone con tre paletti.
E i controesempi non sono tutti uguali: quello che insegna qualcosa è la coppia sbagliata che al buttafuori sembra più giusta di tutte, cioè l’impostore migliore. Ma per trovarlo bisogna passare in rassegna la fila, che è esattamente il lavoro del rispondere, e va rifatto a ogni passo dell’addestramento. Il difetto è quindi doppio: i controesempi servono a migliaia, e trovarne uno buono costa quanto rispondere a una domanda.
Il secondo: cambiare la porta invece di istruire il buttafuori. Se al posto della porta c’è una fessura, di là non passa una folla qualunque cosa lui dica: si costruisce il modello in modo che il numero di risposte a cui può dare energia bassa sia limitato in partenza. Un modo concreto è obbligarlo a riassumere ogni coppia in un disegno di dieci tratti e a lasciarla entrare solo se, dal riassunto, riesce a rifarla somigliante. Con dieci tratti si rifanno bene le coppie viste mille volte, e tutte le altre vengono male per forza: anche volendo, non può dire di sì a tutti. Nessun controesempio da andare a cercare.
E il fatto che il primo metodo non regga quando le risposte possibili sono tantissime (per una foto sono più di quante se ne possano contare) è esattamente l’argomento su cui poggia la proposta di LeCun per i world model, i modelli che si costruiscono un’idea di come va il mondo per poterlo prevedere, e a cui è dedicato per intero il capitolo sui world model.
Le contromisure si dividono in due famiglie, secondo la distinzione che LeCun ha reso canonica nel documento di posizione del 2022 [LeC22] e che è diventata il vocabolario corrente del campo.
I metodi contrastivi alzano esplicitamente l’energia su risposte sbagliate. Il tutorial definisce a questo scopo la most offending incorrect answer \(\bar{y}\) (la risposta scorretta con l’energia più bassa, cioè la più insidiosa) e su di essa costruisce le loss a margine, per esempio la hinge
dove \(m > 0\) è il margine preteso fra coppia giusta e coppia sbagliata. E qui c’è un costo che di solito passa sotto silenzio: \(\bar{y}\) è a sua volta un \(\arg\min\) su \(\mathcal{Y}\), cioè un’inferenza completa a ogni passo di addestramento. I difetti dei metodi contrastivi sono quindi due: in alta dimensione i controesempi non bastano mai, e trovarne uno buono costa quanto rispondere. La massima verosimiglianza appartiene alla stessa famiglia: il suo termine contrastivo è la log-partizione, che solleva l’energia di ogni risposta con forza proporzionale alla sua verosimiglianza, e nel limite \(\beta \to \infty\) la loss NLL degenera nella loss del percettrone generalizzata, che ne solleva una sola, quella a energia minima [LCH+06]. Contrastive divergence, NCE e le loss a margine sono tutte varianti di una stessa domanda: di quali risposte alzare l’energia, e con che forza. Nella tabella delle loss del tutorial la energy loss ha margine «none», il percettrone generalizzato e LVQ2 hanno margine nullo, e tutte le altre (la hinge con margine \(m\), la log-verosimiglianza negativa per ogni \(\beta\)) un margine strettamente positivo [LCH+06]. Il percettrone alza l’energia della risposta che il modello dà, eppure non crea nessun dislivello fra quella giusta e le altre, e l’articolo avverte che, come la energy loss, può produrre superfici piatte se l’architettura lo permette. A proteggere dal collasso, quindi, è il margine positivo: alzare altre energie da solo non basta.
I metodi regolarizzati o architetturali impediscono il collasso per costruzione, limitando il volume dello spazio a bassa energia invece di sollevarlo punto per punto: colli di bottiglia sulle variabili latenti, vincoli di sparsità, quantizzazione dei codici (il VQ-VAE dei codec neurali è esattamente questo) e termini che impongono varianza o decorrelazione alle rappresentazioni. L’intuizione è che un modello con pochi gradi di libertà non può dare energia bassa a tutto, e allora non serve alcun controesempio a impedirglielo. È la famiglia su cui LeCun scommette per i world model. Lì la variabile latente \(\mathbf{z}\) assorbe la parte imprevedibile della risposta, e l’energia della coppia è il minimo su \(\mathbf{z}\) visto sopra: limitare il contenuto informativo di \(\mathbf{z}\) è a sua volta un vincolo di volume. La sezione sulla JEPA ne scrive l’energia e mostra come si difende dal collasso senza fabbricare un solo controesempio.
Due strade, dunque, e quale sia quella giusta non è affatto deciso. La questione compare anche nell’elenco che LeCun ripete nelle sue conferenze, quello delle quattro cose a cui il campo dovrebbe rinunciare: è la terza delle quattro, e la sezione sui paesaggi di oggi la riprende per l’ultima volta insieme alle altre.
Da ricordare
Un modello a energia può giudicare coppie: questo con questo sta bene insieme, questo con quest’altro no. È il buttafuori davanti alla festa, e gli basta un giudizio alla volta: non deve conoscere tutta la città né compilare la classifica di tutti gli abbinamenti possibili con le percentuali esatte.
Rispondere, allora, è cercare la risposta che sta meglio con quello che si ha davanti. Imparare è abbassare il terreno sotto le coppie giuste e alzarlo sotto quelle sbagliate.
Il pericolo ha un nome, il collasso, ed è il buttafuori pigro che dice sempre sì. Se durante l’addestramento si premia soltanto il sì alle coppie giuste, la scorciatoia perfetta è dire sì a tutti: nessuno si lamenta, e il giudizio non vale più niente.
I rimedi sono due, e la scelta fra loro è una discussione ancora aperta: mostrargli anche le coppie sbagliate e pretendere che le respinga, oppure stringere la porta, cioè costruirlo in modo che dire sì a tutti gli sia fisicamente impossibile. Il primo ha due difetti: le coppie sbagliate sono troppe da mostrare, ed è quasi sempre il caso, e trovare quelle che insegnano qualcosa costa quanto rispondere. Il secondo è la scommessa di LeCun per i modelli del mondo.
Da ricordare
La cornice dell’energy-based learning [LCH+06]: ogni modello è una \(E(\mathbf{x}, y)\) che misura la compatibilità fra input e risposta; inferire è \(\arg\min_y E\), imparare è abbassare l’energia delle coppie giuste e alzarla sulle sbagliate. I modelli probabilistici sono il caso particolare normalizzato, e \(Z\) è il costo che conviene evitare.
Il pericolo è il collasso: energia bassa ovunque. Nella tabella delle loss del tutorial, quella che si limita ad abbassare l’energia sui dati ha margine «none», cioè non protegge affatto con un’architettura qualunque.
Due famiglie di rimedi: contrastivi (alzare l’energia su risposte sbagliate, a partire dalla most offending incorrect answer) e regolarizzati/architetturali (limitare per costruzione il volume dello spazio a bassa energia). I primi pagano due volte in alta dimensione, perché i controesempi non bastano mai e ciascuno costa un’inferenza; i secondi sono la scommessa di LeCun per i world model.
Vista da qui, la massima verosimiglianza è un metodo contrastivo: solleva l’energia di tutte le risposte, pesandole con la loro probabilità. Da cui il costo, e da cui l’idea di sostituirla.