Un fatto scomodo attraversa il deep learning fin dall’inizio: le reti che funzionano sono quasi sempre troppo grandi. Un modello con milioni di parametri raggiunge un’accuratezza eccellente, ma se provate a costruirne uno con dieci volte meno parametri e ad addestrarlo da zero, ottenete quasi sempre un risultato peggiore. Sembra un argomento a favore della forza bruta: più parametri, più capacità, più performance. Nel 2019 Jonathan Frankle e Michael Carbin, del MIT, hanno ribaltato la lettura. La rete grande non serve perché serve tutta quella capacità. Serve perché, tra le sue milioni di connessioni, ne contiene per caso un sottoinsieme già disposto nel modo giusto per imparare il compito. Il resto è impalcatura. Hanno chiamato quel sottoinsieme un biglietto vincente, e l’idea la lottery ticket hypothesis.
Quali pesi si tolgono, perché il conto non si accorge degli zeri, e che ne è del biglietto della lotteria: nel libro.
Leggi «Meno pesi: la promessa che si riscuote male» nel libro →
Il paradosso della potatura
Che le reti addestrate siano sovradimensionate lo si sapeva da tempo. La potatura (pruning) è una pratica vecchia: si prende un modello addestrato, si eliminano i pesi più piccoli — quelli vicini a zero, che contribuiscono poco — e si scopre che il 90% delle connessioni si può buttare via senza perdere quasi nulla in accuratezza. Reti con il 10% dei parametri originali funzionano benissimo. Perfetto per far girare un modello su un telefono.
C’era però un dettaglio che nessuno spiegava bene. La potatura funziona solo dopo l’addestramento. Se prendete la stessa sottorete potata — la stessa identica struttura di connessioni sopravvissute — la reinizializzate con pesi casuali e la addestrate da zero, non impara più altrettanto bene. Stessa architettura, stesso numero di parametri, stesso compito, risultato peggiore. La struttura sfoltita, da sola, non basta. Qualcosa si era perso nel reset. La domanda di Frankle e Carbin è stata: e se quel qualcosa fosse l’inizializzazione?
Potare, poi riavvolgere
La loro procedura è quasi banale da descrivere e questo è il bello. Si chiama iterative magnitude pruning, potatura iterativa per magnitudine, e va così. Primo: si inizializza una rete densa con pesi casuali, e si annota questa configurazione iniziale — chiamiamola la lista dei numeri di partenza. Secondo: si addestra la rete fino in fondo, normalmente. Terzo: si eliminano i pesi più piccoli, per esempio il 20% di quelli rimasti. Quarto — ed è il passo decisivo — i pesi sopravvissuti non si tengono al valore che hanno raggiunto con l’addestramento: si riavvolgono al loro valore iniziale, quello annotato al primo passo. Quinto: si riaddestra questa rete più magra da capo, e si ripete dal terzo passo.
Giro dopo giro la rete si assottiglia. Alla fine resta una sottorete con una piccola frazione dei pesi originali, ognuno riportato al suo numero di partenza. Frankle e Carbin hanno mostrato che questa sottorete, addestrata in isolamento, raggiunge l’accuratezza della rete piena — a volte la supera — in un numero di iterazioni comparabile. Sui compiti su cui l’hanno testata all’inizio, come il riconoscimento di cifre scritte a mano e la classificazione di immagini con piccole reti convoluzionali, i biglietti vincenti pesavano spesso meno del 10-20% della rete di partenza. Una sottorete minuscola che imparava quanto la gigante.
La rete di partenza è densa: ogni nodo è collegato a tutti quelli dello strato successivo (linee grigie). Il biglietto vincente è un sottoinsieme sparso di connessioni e nodi (in terracotta) che, riportato ai suoi pesi iniziali e addestrato da solo, impara il compito quanto la rete piena. La potatura iterativa serve proprio a scoprire quali connessioni ne fanno parte.
Il biglietto è l’inizializzazione
Il punto teorico più interessante sta in quel gesto di riavvolgere. Se dopo la potatura reinizializzate i pesi sopravvissuti con nuovi numeri casuali, la sottorete torna a imparare male: torniamo al paradosso di prima. Se invece li riportate ai loro valori iniziali specifici, impara bene. Ne segue che ciò che rende vincente un biglietto non è solo quali connessioni contiene, ma il fatto che quelle connessioni partano da quei particolari valori. La struttura e l’inizializzazione sono un pacchetto inseparabile.
Un biglietto vincente è una combinazione fortunata di struttura e punto di partenza: la rete densa è un mazzo di biglietti giocati tutti insieme, e l’addestramento premia quello che era già disposto a vincere.
Da qui la metafora della lotteria, che è precisa e non retorica. Inizializzare una grande rete equivale a comprare molti biglietti contemporaneamente: ogni possibile sottorete è un biglietto con i suoi numeri già stampati. Più la rete è grande, più biglietti comprate, più è probabile che almeno uno abbia la combinazione giusta per quel compito. L’over-parametrizzazione, in questa lettura, non serve a dare capacità: serve a comprare abbastanza biglietti da garantire che ce ne sia uno vincente. La discesa del gradiente, poi, non fa che assecondare il biglietto già fortunato, lasciando svanire gli altri.
Quando la scala rompe la ricetta
Sarebbe troppo pulito se finisse qui, e infatti l’onestà impone un asterisco. Il riavvolgimento fino al valore iniziale funziona bene sulle reti piccole degli esperimenti originali, ma si inceppa sulle reti grandi addestrate su dati complessi — le reti profonde per la classificazione di immagini su larga scala, per intenderci. Su quelle, riportare i pesi al primo istante non produce biglietti vincenti affidabili.
Gli stessi autori, con altri, hanno trovato l’aggiustamento: invece di riavvolgere all’istante zero, si riavvolge a un’epoca leggermente successiva, dopo che l’addestramento ha fatto qualche passo. Non ai pesi finali, ma nemmeno a quelli iniziali: a uno stato intermedio precoce. È come se, nelle reti grandi, il biglietto non fosse del tutto vincente al momento dell’acquisto, ma lo diventasse dopo pochissimi giri di allenamento, quando le direzioni principali dell’ottimizzazione si sono stabilizzate. Questo dettaglio ha reso la lottery ticket hypothesis verificabile anche fuori dai casi giocattolo, e ha aperto un filone di ricerca sulla stabilità delle traiettorie di addestramento.
La versione forte: vincere senza allenarsi
Il colpo di scena successivo è più radicale. Se dentro una rete casuale c’è già un biglietto vincente, quanto deve essere addestrato quel biglietto per funzionare? La risposta scomoda è: forse per niente. Alcuni gruppi hanno mostrato che, in una rete inizializzata a caso e mai addestrata, esiste un sottoinsieme di connessioni che — semplicemente selezionandolo, senza toccare i valori dei pesi — si comporta già bene sul compito. Non si cambia un solo numero: si decide soltanto quali connessioni tenere e quali spegnere. L’addestramento, in questo scenario, non modifica i pesi ma sceglie una maschera.
È stato dimostrato, sotto ipotesi ragionevoli, che una rete casuale abbastanza grande contiene una sottorete capace di approssimare qualunque rete bersaglio più piccola, senza alcun aggiornamento dei pesi. È la versione forte della lottery ticket hypothesis, e ha una conseguenza filosofica notevole: l’apprendimento potrebbe essere in parte un problema di selezione più che di costruzione. Non modellare l’argilla, ma trovare la statua già presente nel blocco.
Perché vi riguarda
Sul piano pratico immediato la lezione è dimensionata con prudenza: trovare un biglietto vincente costa, perché la potatura iterativa richiede di addestrare la rete più volte. Non è ancora una scorciatoia per addestrare modelli piccoli a basso costo, ed è giusto dirlo senza entusiasmo. Il valore, per ora, è più concettuale che ingegneristico, e riguarda chiunque provi a capire perché le reti funzionano.
Cambia il modo di guardare l’over-parametrizzazione: le reti grandi non sprecano capacità, comprano probabilità. Cambia il modo di pensare all’inizializzazione, che smette di essere un dettaglio tecnico e diventa parte del contenuto informativo di un modello. E offre una domanda utile da tenere in tasca quando leggete di modelli sempre più grandi: quanta di quella scala serve a rappresentare la soluzione, e quanta serve solo a garantire che, da qualche parte là dentro, la soluzione fosse già scritta al momento della nascita?

I commenti sono riservati agli iscritti.
Accedi per commentare