Lab-in-a-Tab

Machine learning e reti neurali

Come fa un computer a imparare a riconoscere il tuo volto, tradurre lingue e battere i campioni del mondo a scacchi — senza mai essere programmato esplicitamente?

Reti neuraliDiscesa del gradienteIA
ProvaTry to separate the two kinds with one straight line — you can't. Now set Hidden units to 2, press Reset and watch Accuracy. Then set Hidden units to 10, press Reset and watch again.
Cosa stai vedendoThe four clusters of dots are two kinds of thing the computer must learn to tell apart — look carefully, the same kind sits in opposite corners. The coloured background is the computer's current guess for every point on the map. On the right is its little brain: inputs, Hidden units in the middle, one answer. Error shows how wrong it still is.
Cosa notare
One straight line can never work here, but with enough hidden units the computer bends the boundary into the right shape and Accuracy climbs towards 100%. Nobody told it what shape to draw. It started with random guesses and simply nudged them, over and over, in whatever direction made Error smaller. That patient nudging — millions of tiny corrections — is all "learning" means for a machine.

Computer che imparano dall'esperienza!

Livello Base — linguaggio semplice, senza matematica

Pensa a insegnare a un cane a sedersi. Non gli consegni un regolamento — glielo mostri, lo premi quando ci arriva, lo correggi gentilmente quando non ci riesce, e dopo abbastanza tentativi semplicemente lo sa. Il machine learning funziona quasi esattamente così, tranne che il "cane" è un programma e i "premietti" sono numeri — punteggi che salgono quando ha ragione e scendono quando ha torto.

La programmazione ordinaria significa dettare a mano ogni regola: "se l'email dice 'lotteria', chiamala spam." Ma lo spam che schiva la parola passa dritto. Un sistema di machine learning prende l'approccio opposto — dagli in pasto migliaia di spam veri ed email vere e va a caccia di schemi che nessun umano penserebbe mai a scrivere, poi costruisce le proprie regole da zero.

La versione più potente di oggi impila reti neurali — strati di minuscole unità matematiche vagamente modellate sulle cellule del cervello. Ognuna riceve numeri, li moltiplica per pesi che ha imparato, e passa il risultato lungo la catena. Collega milioni di queste insieme, addestrale su miliardi di esempi, e ottieni la cosa che sblocca il tuo telefono col tuo volto, traduce cento lingue al volo e dipinge quadri da una frase. Nella simulazione qui sotto, guarda una piccola rete imparare a distinguere due tipi di puntini, dal vivo.

Da sapere

  • La rete neurale dietro il riconoscimento facciale moderno raggiunge il 99,7% di accuratezza — superando il punteggio umano medio del 97,5% sullo stesso benchmark.
  • AlphaZero imparò gli scacchi da zero in 9 ore senza alcuna conoscenza umana tranne le regole — poi sconfisse in modo convincente il miglior motore scacchistico del mondo.
  • DeepMind di Google ridusse del 40% l'energia usata per raffreddare i suoi data center con una rete neurale — risparmiando la stessa energia che si otterrebbe togliendo 100.000 auto dalla strada.

Discesa del gradiente, retropropagazione e il teorema di approssimazione universale

Livello Studente — le equazioni principali

Una rete di \(L\) strati è solo una grande funzione annidata, \(f(x) = W_L\,\sigma(W_{L-1}\,\sigma(\cdots \sigma(W_1 x + b_1)\cdots) + b_{L-1}) + b_L\), dove ogni \(\sigma\) è una non linearità — ReLU \(\sigma(z)=\max(0,z)\) o sigmoide \(\sigma(z)=1/(1+e^{-z})\) — e i pesi \(W_i\) e i bias \(b_i\) sono ciò che la rete impara. Senza le \(\sigma\) l'intera pila collasserebbe in un'unica mappa lineare; è la non linearità a permettere alla profondità di comprarti qualcosa. Addestrare significa regolare \(\theta=\{W_i,b_i\}\) per ridurre una perdita, diciamo la cross-entropy \(L = -\sum_i y_i \log \hat{y}_i\).

La discesa del gradiente spinge ogni parametro in discesa su quella perdita: \(\theta \leftarrow \theta - \eta\,\nabla_\theta L\), con \(\eta\) il tasso di apprendimento. Il trucco che la rende fattibile su miliardi di parametri è la retropropagazione — la regola della catena eseguita all'indietro attraverso la rete, riusando il lavoro di ogni strato così che un solo passaggio calcola tutti i gradienti. In pratica stimi \(\nabla_\theta L\) su piccoli mini-batch casuali (discesa del gradiente stocastica), rumorosa ma economica, e ottimizzatori adattivi come Adam mantengono un passo separato per parametro per convergere più in fretta.

Perché mai dovrebbe funzionare? Il teorema di approssimazione universale (Cybenko 1989, Hornik 1991) dimostra che un singolo strato nascosto, dati abbastanza neuroni, può imitare qualsiasi funzione continua con la precisione che vuoi. Ma "abbastanza" può essere un numero astronomico; è la profondità a renderlo pratico, rappresentando in modo compatto ciò per cui una rete poco profonda avrebbe bisogno di esponenzialmente più neuroni. La vera lotta non è adattarsi ai dati di addestramento — è generalizzare a dati nuovi, e strumenti come dropout, weight decay e batch normalization esistono per impedire a una rete di limitarsi a memorizzare i suoi esempi.

Formule chiave

Passaggio in avanti\(a^{(l)} = \sigma\!\left(W^{(l)} a^{(l-1)} + b^{(l)}\right)\)
Perdita cross-entropy\(L = -\sum_i y_i \log \hat{y}_i\)
Discesa del gradiente\(\theta \leftarrow \theta - \eta\,\nabla_\theta L\)
Retropropagazione (regola della catena)\(\dfrac{\partial L}{\partial W^{(k)}} = \delta^{(k)} \left(a^{(k-1)}\right)^{\!\top}\)
Attivazione ReLU\(\sigma(z) = \max(0, z)\)
Approssimazione universale\(\forall\varepsilon>0,\; \exists f_\theta:\; \|f - f_\theta\|_\infty < \varepsilon\)Cybenko 1989

Da sapere

  • GPT-4 ha una stima di 1,8 mila miliardi di parametri su 120 strati — addestrato su ~13 mila miliardi di token di testo usando circa 25.000 GPU A100 per 90 giorni.
  • Le reti neurali convoluzionali (CNN) imparano automaticamente feature gerarchiche: i primi strati rilevano bordi, quelli intermedi forme, quelli profondi volti o oggetti.
  • I gradienti che svaniscono afflissero le reti profonde fino al 2015: i gradienti si restringono esponenzialmente con la profondità, impedendo l'apprendimento. Le attivazioni ReLU e le connessioni residue (ResNet) lo risolsero.

Paesaggio di ottimizzazione, teoria della generalizzazione e Transformer

Livello Esperto — profondità matematica completa

01Il paesaggio della perdita non è la trappola che temevamo

La perdita \(L(\theta)\) di una rete profonda è selvaggiamente non convessa in milioni di dimensioni, e per anni si temette che la discesa del gradiente restasse bloccata in cattivi minimi locali. Le alte dimensioni si rivelarono più gentili del previsto. Quasi ogni punto critico è una sella, non un minimo — per essere un vero minimo, tutti gli oltre un milione di autovalori dell'hessiana devono capitare positivi, il che è enormemente improbabile — e i minimi locali che esistono siedono perlopiù vicino a quello globale (Dauphin et al., 2014). L'ottimizzatore scivola giù dalle selle anziché annegare nelle trappole.

02I minimi piatti generalizzano; quelli aguzzi no

Non tutti i minimi sono uguali. La ripidità di una soluzione — il più grande autovalore dell'hessiana \(\lambda_{\max}(\partial^2 L/\partial\theta^2)\) — traccia quanto bene generalizza: i bacini ampi e piatti perdonano le piccole perturbazioni e tendono a trasferirsi a dati nuovi, mentre le punte aguzze fanno overfitting. La Sharpness-Aware Minimization lo rende esplicito, ottimizzando la perdita peggiore in un intorno, \(\min_\theta \max_{\|\varepsilon\|\le\rho} L(\theta+\varepsilon)\), e alzando in modo affidabile l'accuratezza sul test. Vuoi la valle più ampia, non semplicemente il punto più basso.

03L'enigma della sovraparametrizzazione

La teoria classica dell'apprendimento dice che un modello con molti più parametri che punti dati dovrebbe fare overfitting in modo catastrofico. Le reti profonde fanno l'opposto — adattano perfettamente il set di addestramento e generalizzano comunque, uno stato ora chiamato overfitting benigno. Limiti PAC-Bayes come \(L(f) \le \hat{L}(f) + \sqrt{\tfrac{\mathrm{KL}(Q\|P) + \ln(n/\delta)}{2n}}\) possono restare non vacui anche qui quando la prior è scelta bene, ma il riassunto onesto è che abbiamo una teoria funzionante solo a pezzi. Una delle tecnologie di maggior successo del campo non è ancora del tutto spiegata.

04Doppia discesa e il bias della SGD

Spingi oltre il punto in cui un modello può memorizzare esattamente i dati — la soglia di interpolazione — e accade qualcosa di strano: l'errore sul test, dopo aver toccato un picco, cala di nuovo. Questa curva a doppia discesa ribalta in silenzio la vecchia storia bias-varianza. Parte della risposta è che la discesa del gradiente stocastica ha un bias implicito: fra le infinite configurazioni di parametri che adattano i dati, deriva verso quelle a norma bassa, "semplici". Il regolarizzatore si nascondeva nell'ottimizzatore da sempre.

05Il Transformer e la self-attention

Quasi tutti i modelli di frontiera di oggi sono Transformer (Vaswani et al., 2017), che buttarono via la ricorrenza in favore della self-attention: \(\mathrm{Attention}(Q,K,V) = \mathrm{softmax}\!\left(\tfrac{QK^\top}{\sqrt{d_k}}\right)V\). Ogni token si confronta con ogni altro e tira dentro una miscela pesata dei loro valori — costo quadratico \(O(n^2)\), ma solo \(O(1)\) di profondità sequenziale, così si parallelizza su un'intera sequenza in un colpo. Impila molte di queste teste, ognuna che impara uno schema di relazioni diverso, aggiungi codifiche posizionali per l'ordine, e hai il motore dietro i moderni modelli linguistici.

06Leggi di scala: intelligenza che puoi mettere a budget

Il fatto empirico più strano del deep learning è quanto sia prevedibile su larga scala. La perdita sul test cala come una pulita legge di potenza in dimensione del modello, dati e calcolo attraverso sette ordini di grandezza. L'analisi Chinchilla (Hoffmann et al., 2022) inchiodò la ricetta ottimale: per un budget di calcolo \(C\), fai crescere parametri e token di addestramento insieme, all'incirca \(N \propto C^{0.5}\) e \(D \propto C^{0.5}\). Che la capacità si possa alzare spendendo di più — anziché aspettare una nuova idea — è esattamente ciò che trasformò il deep learning da curiosità di ricerca a industria.

Formule chiave

Self-attention\(\mathrm{Attention}(Q,K,V) = \mathrm{softmax}\!\left(\dfrac{QK^\top}{\sqrt{d_k}}\right)V\)
Multi-testa\(\mathrm{MHA} = \mathrm{concat}(h_1,\dots,h_h)\,W^O\)
Limite PAC-Bayes\(L(f) \le \hat{L}(f) + \sqrt{\dfrac{\mathrm{KL}(Q\|P) + \ln(n/\delta)}{2n}}\)
Obiettivo SAM\(\min_\theta \max_{\|\varepsilon\|\le\rho} L(\theta + \varepsilon)\)
Scala Chinchilla\(N_{\text{opt}} \propto C^{0.5},\quad D_{\text{opt}} \propto C^{0.5}\)token ∝ parametri

Da sapere

  • Il fenomeno del "grokking": le reti possono saltare improvvisamente dalla memorizzazione alla vera generalizzazione milioni di passi di addestramento dopo aver raggiunto il 100% di accuratezza sull'addestramento.
  • L'attenzione dei Transformer equivale a un singolo passo di discesa del gradiente su una memoria associativa (rete di Hopfield) — collegando i moderni LLM ai modelli di memoria degli anni '80.
  • Le leggi di scala neurali sono leggi di potenza notevolmente precise: la perdita diminuisce come L ∝ N^{-0,076} con i parametri N, mantenendosi attraverso 7 ordini di grandezza di dimensione del modello.

Fonti

Articolo completo su Wikipedia ↗