Come visto nell’articolo Deep learning: le radici, le tecniche usate ad oggi dal deep learning affondano le loro radici in metodologie e fondamenti matematici/statistici dei secoli scorsi. Ovviamente, molto è cambiato con l’avvento delle nuove tecnologie. La disponibilità di enormi quantità di dati raccolte e diffuse mediante il World Wide Web ha rivoluzionato la possibilità di avere dati per qualsiasi problema, oltre al fatto di generare nuove sfide da affrontare. Non internet ha cambiato le regole del gioco, ma anche la nascita di grandi compagnie nel campo ICT, la diffusione di sensori a basso costo e di alta qualità, l’aumento delle dimensioni di storage per l’archiviazione dei dati (legge di Kryder) e l’aumento della potenza di calcolo(legge di Moore). Ma tutto ciò ha davvero rivoluzionato il settore del deep learning?
Le GPU
La vera rivoluzione nel campo del deep learning è stato il progresso costante e formidabile dei modelli di GPU, ossia le schede originariamente progettate per i videogiochi. Infatti, grazie a queste schede, algoritmi e modelli che sembravano computazionalmente inaffrontabili sono diventati alla portata di tutti. Solo per capire i progressi fatti negli ultimi cinquant’anni guardiamo alla seguente tabella.
| Decade | Dataset | Memory | Floating point calculations per second |
|---|---|---|---|
| 1970 | 100 (Iris) | 1 KB | 100 KF (Intel 8080) |
| 1980 | 1 K (house prices in Boston) | 100 KB | 1 MF (Intel 80186) |
| 1990 | 10 K (optical character recognition) | 10 MB | 10 MF (Intel 80486) |
| 2000 | 10 M (web pages) | 100 MB | 1 GF (Intel Core) |
| 2010 | 10 G (advertising) | 1 GB | 1 TF (NVIDIA C2050) |
| 2020 | 1 T (social network) | 100 GB | 1 PF (NVIDIA DGX-2) |
Si noti che la memoria ad accesso casuale non ha tenuto il passo con la crescita dei dati. Allo stesso tempo, l’aumento della potenza di calcolo ha superato la crescita dei set di dati. Ciò significa che i modelli statistici devono diventare più efficienti in termini di memoria e quindi sono liberi di spendere più cicli di computer per ottimizzare i parametri, grazie all’aumento del budget di calcolo. Di conseguenza, il punto di forza dell’apprendimento automatico e della statistica si è spostato dai modelli lineari (generalizzati) e dai metodi kernel alle reti neurali profonde. Questo è anche uno dei motivi per cui molti dei pilastri dell’apprendimento profondo, come i perceptron multistrato (McCulloch e Pitts, 1943), le reti neurali convoluzionali (LeCun et al., 1998), la memoria a breve termine (Hochreiter e Schmidhuber, 1997) e il Q-Learning (Watkins e Dayan, 1992), sono stati essenzialmente “riscoperti” nell’ultimo decennio, dopo essere rimasti relativamente inattivi per molto tempo.
I progressi del XXI secolo
I recenti progressi nei modelli statistici, nelle applicazioni e negli algoritmi sono stati talvolta paragonati all’esplosione cambriana: un momento di rapido progresso nell’evoluzione delle specie. In effetti, lo stato dell’arte non è solo una mera conseguenza delle risorse disponibili applicate ad algoritmi vecchi di decenni.
Ad esempio, sono stati introdotti nuovi metodi per il controllo della capacità, come il dropout (Srivastava et al., 2014), hanno contribuito a mitigare l’overfitting. In questo caso, il rumore viene iniettato in tutta la rete neurale durante l’addestramento.
Diversamente, i meccanismi di attenzione hanno risolto un secondo problema che ha afflitto la statistica per oltre un secolo: come aumentare la memoria e la complessità di un sistema senza aumentare il numero di parametri apprendibili. I ricercatori hanno trovato una soluzione elegante utilizzando quella che può essere vista solo come una struttura di puntatori apprendibili (Bahdanau et al., 2014). Invece di dover ricordare un’intera sequenza di testo, ad esempio per la traduzione automatica, in una rappresentazione a dimensione fissa, è bastato memorizzare un puntatore allo stato intermedio del processo di traduzione. Ciò ha permesso di aumentare notevolmente l’accuratezza per le sequenze lunghe, poiché il modello non deve più ricordare l’intera sequenza prima di iniziare la generazione di una nuova.
Costruita esclusivamente su meccanismi di attenzione, l’architettura Transformer (Vaswani et al., 2017) ha dimostrato un comportamento scalare superiore: si comporta meglio con l’aumento delle dimensioni del dataset, del modello e della quantità di calcolo per l’addestramento. Questa architettura ha dimostrato un successo convincente in un’ampia gamma di aree, come l’elaborazione del linguaggio naturale, la computer vision, il riconoscimento vocale, l’apprendimento per rinforzo e le reti neurali a grafo. Ad esempio, un singolo Transformer preaddestrato su modalità diverse come testo, immagini, torsioni articolari e pressione di pulsanti può giocare con Atari, sottotitolare immagini, chattare e controllare un robot (Reed et al., 2022).
Modellando le probabilità delle sequenze di testo, i modelli linguistici sono in grado di prevedere un testo in base ad un altro testo. L’aumento dei dati, dei modelli e dei calcoli ha sbloccato un numero crescente di capacità dei modelli linguistici di svolgere le attività desiderate attraverso la generazione di testo simile a quello umano sulla base del testo in ingresso (Anil et al., 2023, Brown et al., 2020, OpenAI, 2023, Touvron et al., 2023). Ad esempio, allineando i modelli linguistici con l’intento umano (Ouyang et al., 2022), ChatGPT di OpenAI consente agli utenti di interagire con esso in modo conversazionale per risolvere problemi, come il debugging del codice e la scrittura creativa.
Le progettazioni a più stadi, ad esempio tramite le reti di memoria (Sukhbaatar et al., 2015) e il programmatore-interprete neurale (Reed e De Freitas, 2015) hanno permesso ai modellatori statistici di descrivere approcci iterativi al ragionamento. Questi strumenti consentono di modificare ripetutamente lo stato interno della rete neurale profonda, eseguendo così le fasi successive di una catena di ragionamento, proprio come un processore può modificare la memoria per un calcolo.
Uno sviluppo chiave nella modellazione generativa profonda è stata l’invenzione delle reti generative avversarie (Goodfellow et al., 2014). Tradizionalmente, i metodi statistici per la stima della densità e i modelli generativi si concentravano sulla ricerca di distribuzioni di probabilità adeguate e di algoritmi (spesso approssimativi) per il campionamento da esse. Di conseguenza, questi algoritmi erano ampiamente limitati dalla mancanza di flessibilità insita nei modelli statistici.
L’innovazione cruciale nelle reti generative avversarie è stata quella di sostituire il campionatore con un algoritmo arbitrario con parametri differenziabili. Questi vengono poi regolati in modo tale che il discriminatore (di fatto un test a due campioni) non possa distinguere i dati falsi da quelli reali.
Grazie alla possibilità di utilizzare algoritmi arbitrari per generare i dati, la stima della densità si è aperta a un’ampia varietà di tecniche. Gli esempi di zebre al galoppo (Zhu et al., 2017) e di falsi volti di celebrità (Karras et al., 2017) testimoniano questo progresso. Anche gli scarabocchiatori amatoriali possono produrre immagini fotorealistiche solo sulla base di schizzi che descrivono la disposizione di una scena (Park et al., 2019).
Inoltre, mentre il processo di diffusione aggiunge gradualmente rumore casuale ai campioni di dati, i modelli di diffusione (Ho et al., 2020) imparano il processo di denoising per costruire gradualmente i campioni di dati dal rumore casuale, invertendo il processo di diffusione. Hanno iniziato a sostituire le reti generative avversarie in modelli generativi profondi più recenti, come DALL-E 2 e Imagen per la generazione di arte creativa e immagini basate su descrizioni testuali.
Le sfide computazionali
In molti casi, una singola GPU non è sufficiente per elaborare le grandi quantità di dati disponibili per l’addestramento. Nell’ultimo decennio la capacità di costruire algoritmi di addestramento paralleli e distribuiti è migliorata in modo significativo.
Una delle sfide principali nella progettazione di algoritmi scalabili è che il cavallo di battaglia dell’ottimizzazione del deep learning, la discesa stocastica del gradiente, si basa su minibatch di dati relativamente piccoli da elaborare. Allo stesso tempo, i piccoli lotti limitano l’efficienza delle GPU. Pertanto, l’addestramento su 1.024 GPU con una dimensione di minibatch di, ad esempio, 32 immagini per batch equivale a un minibatch aggregato di circa 32.000 immagini.
Alcuni lavori degli ultimi anni hanno spinto la dimensione a 64.000 osservazioni, riducendo il tempo di addestramento del modello ResNet-50 sul dataset ImageNet a meno di 7 minuti. In confronto, i tempi di addestramento erano inizialmente dell’ordine di giorni.
Anche la capacità di parallelizzare i calcoli ha contribuito ai progressi dell’apprendimento per rinforzo. Questo ha portato a progressi significativi nei computer che raggiungono prestazioni sovrumane in compiti come il Go, i giochi Atari, Starcraft e nelle simulazioni di fisica (ad esempio, utilizzando MuJoCo) quando sono disponibili simulatori di ambiente. In poche parole, l’apprendimento per rinforzo funziona meglio se sono disponibili molte tuple (stato, azione, ricompensa). La simulazione offre questa possibilità.
Diffusione del deep learning
I framework per il deep learning hanno svolto un ruolo cruciale nella diffusione delle idee e dei modelli. La prima generazione di framework open-source per la modellazione delle reti neurali era costituita da Caffe, Torch e Theano. Molti articoli fondamentali sono stati scritti utilizzando questi strumenti.
Questi sono stati sostituiti da TensorFlow (spesso utilizzato tramite la sua API di alto livello Keras), CNTK, Caffe 2 e Apache MXNet. La terza generazione di framework consiste nei cosiddetti strumenti imperativi per il deep learning, una tendenza che è stata probabilmente innescata da Chainer, che utilizzava una sintassi simile a quella di Python NumPy per descrivere i modelli. Questa idea è stata adottata da PyTorch, dall’API Gluon di MXNet e da JAX.
La divisione del lavoro tra ricercatori di sistemi che costruiscono strumenti migliori e modellatori statistici che costruiscono reti neurali migliori ha semplificato notevolmente le cose. Ad esempio, l’addestramento di un modello di regressione logistica lineare era un problema non banale, degno di essere dato ai nuovi studenti di dottorato solo un decennio fa. Oggi, questo compito può essere svolto con meno di 10 righe di codice, mettendolo alla portata di qualsiasi programmatore.