Le reti multistrato: oltre il muro del percettrone
Il pezzo sul percettrone si era chiuso davanti a un muro: quattro punti - il problema XOR - che nessuna retta separa, e la promessa che due strati di percettroni sarebbero bastati ad abbatterlo. Questo pezzo comincia mantenendo la promessa, coi conti che si rifanno a mano. Poi affronta le domande che quella mossa apre: perché impilare funziona solo se in mezzo c’è una curva, come si ripartisce l’errore sugli strati che nessuna etichetta raggiunge - il problema che fermò le reti per vent’anni - e quanto si guadagna davvero, misurato sugli stessi dati di prima.
La rete minima che abbatte il muro
Tre percettroni: due leggono gli ingressi, il terzo legge loro due. Il problema impossibile diventa una tabella di quattro righe.
La rete neurale multistrato più piccola che serva a qualcosa ha due ingressi, due neuroni nel mezzo e un’uscita. I due neuroni di mezzo formano lo strato nascosto: nascosto perché non tocca né gli ingressi né l’uscita - legge i primi, scrive al terzo. I pesi, per ora, li scriviamo a mano; che l’addestramento possa trovarli da solo è il tema di tutto il resto del pezzo.
L’immagine domestica di XOR è la luce delle scale: due deviatori, uno in basso e uno in cima, e la luce è accesa quando uno solo dei due è alzato - alzarli entrambi la spegne. Il primo neurone nascosto si accende se almeno uno dei due ingressi è acceso (pesi 1 e 1, soglia 0,5). Il secondo se lo sono entrambi (pesi 1 e 1, soglia 1,5). L’uscita legge loro due: si accende se il primo è acceso ma il secondo no (pesi 1 e -1, soglia 0,5). I quattro casi, svolti:
| Ingressi | «almeno uno» | «entrambi» | Uscita | XOR vero |
|---|---|---|---|---|
| 0 · 0 | 0 | 0 | 0 | 0 |
| 0 · 1 | 1 | 0 | 1 | 1 |
| 1 · 0 | 1 | 0 | 1 | 1 |
| 1 · 1 | 1 | 1 | 0 | 0 |
La tabella qui sopra ha appena risolto il problema che nel 1969 aveva fermato il percettrone: l’uscita coincide con XOR in tutti e quattro i casi. Il «muro» del pezzo precedente - i quattro punti che nessuna retta riesce a separare - è superato. Ma il modo della soluzione insegna più della soluzione, e per vederlo bisogna disegnare i quattro casi come punti: è la figura qui sotto. A sinistra il piano ha per assi i due ingressi: ogni riga della tabella è un punto, e nessuna retta separa i due pieni dai due vuoti. A destra lo stesso disegno è rifatto con altri assi: non più i due ingressi, ma le risposte dei due neuroni nascosti - «almeno uno» in orizzontale, «entrambi» in verticale. Qui succede la cosa decisiva: i casi 0·1 e 1·0 hanno le stesse risposte (per tutti e due «almeno uno» dà 1 ed «entrambi» dà 0), quindi finiscono nello stesso punto. I punti da separare non sono più quattro ma tre, e per quei tre una retta basta: a tracciarla è l’uscita, che è un percettrone qualunque. Questo è tutto il segreto dello strato nascosto: ha spostato i punti, finché il problema è diventato quello facile. La rassegna che Nature ha dedicato al campo lo dice con le parole giuste: gli strati nascosti «deformano l’ingresso in modo non lineare, finché le categorie diventano separabili con una retta dall’ultimo strato».
I conti della tabella si rifanno con xor.py nel
repository che accompagna il pezzo.
Perché serve una curva: il collasso lineare
Impilare strati senza curve non compra niente: due trasformazioni lineari in fila sono ancora una trasformazione lineare.
Prima di addestrare serve un chiarimento che decide tutto. Se i neuroni si limitassero a fare somme pesate - senza la funzione di attivazione in mezzo - impilare strati non servirebbe a niente: una somma pesata di somme pesate è ancora una somma pesata, e la rete a dieci strati saprebbe fare esattamente ciò che sa fare un percettrone. È il collasso lineare: la profondità paga solo se fra uno strato e l’altro c’è una curva.
Il gradino del percettrone è una curva, e infatti la rete della tabella funziona. Ma ha un difetto: è piatto ovunque e salta in un punto - non ha una pendenza che dica quanto cambierebbe l’uscita se la somma cambiasse di poco. Per addestrare serve proprio quella pendenza, e per questo la rinascita delle reti passò da curve morbide come la sigmoide: una S che schiaccia qualunque somma fra 0 e 1, sale dolcemente, e ha pendenza in ogni punto. Detto con gli oggetti di casa: col gradino il neurone è un interruttore, o acceso o spento; con la sigmoide diventa un reostato - la manopola che accende la luce per gradi - e fra spento e acceso ha tutte le gradazioni: la gradazione dice di quanto, e in che verso, girare ancora la manopola.
Il problema dei vent’anni: a quale peso addebitare l’errore?
L’etichetta dice se l’uscita è giusta. Ma quale dei pesi nascosti ha sbagliato? Senza risposta, le reti multistrato restarono ferme.
La regola di apprendimento del percettrone funzionava perché l’errore era lì, in uscita, e tutti i pesi erano attaccati all’uscita. In una rete multistrato no: gli esempi etichettati dicono che la risposta è sbagliata, ma nessuna etichetta dice che cosa avrebbero dovuto fare i neuroni nascosti. Quale dei cinquantamila pesi interni ha sbagliato, e di quanto? Senza una risposta a questa domanda - il problema dell’attribuzione dell’errore (credit assignment) - gli strati nascosti non si possono addestrare, e per una ventina d’anni le reti multistrato rimasero una possibilità teorica.
La risposta ha una storia che va raccontata bene, perché la vulgata la semplifica fino a falsificarla. L’idea matematica - si può calcolare la responsabilità di ogni peso procedendo all’indietro - fu scoperta indipendentemente da più gruppi negli anni Settanta e Ottanta, come ricorda la rassegna che Yann LeCun, Yoshua Bengio e Geoffrey Hinton firmarono su Nature; la ricostruzione dettagliata, coi nomi e le date, è nella rassegna storica di Jürgen Schmidhuber citata in fondo.
Il 1986 è l’anno in cui l’idea divenne lo strumento di tutti: David Rumelhart, Geoffrey Hinton e Ronald Williams pubblicarono su Nature l’articolo che dà alla procedura il nome con cui la conosciamo - e che abbiamo letto in originale. L’obiettivo è individuato con precisione: grazie alle correzioni dei pesi, le unità nascoste «arrivano a rappresentare i tratti importanti del dominio del compito»; e questa capacità di crearsi i propri tratti «distingue la retropropagazione da metodi precedenti e più semplici, come la procedura di convergenza del percettrone». La procedura di convergenza è esattamente il teorema del pezzo precedente: la nuova regola si presenta al mondo misurandosi con la vecchia.
La retropropagazione, spiegata a parole
Si misura l’errore in uscita, si ripartisce all’indietro in proporzione alle responsabilità, e ogni peso scende di un passo contro il suo errore.
Il nome italiano dice già quasi tutto: retropropagazione, l’errore propagato all’indietro. Il giro completo, per un esempio:
- andata: l’esempio attraversa la rete, strato per strato, fino alle uscite - come nel percettrone, solo con più tappe;
- errore: si confronta l’uscita con la risposta giusta dell’esempio etichettato; fin qui niente di nuovo;
- ritorno: l’errore torna indietro. Ogni neurone nascosto riceve la sua parte di errore: la somma degli errori dei neuroni a valle, pesata dai collegamenti che li uniscono - chi ha spinto di più verso l’errore ne risponde di più - e moltiplicata per la pendenza della propria curva nel punto in cui stava lavorando;
- correzione: ogni peso si sposta di un passo contro il proprio errore, come nel percettrone. Il passo è il tasso di apprendimento.
L’ultimo punto ha un nome da imparare: discesa del gradiente. L’errore complessivo della rete è un paesaggio - tante colline quante sono le combinazioni dei pesi - e il gradiente è la pendenza del punto in cui la rete si trova: correggere i pesi contro il gradiente significa fare un passo in discesa. Passo dopo passo, esempio dopo esempio, la rete scende verso una valle dove gli errori sono pochi. Qui il gradino del percettrone esce di gara: dove non c’è pendenza, non c’è direzione di discesa - per questo gli strati nascosti vogliono curve morbide.
La regola di apprendimento del percettrone, vista da qui, era il caso
più semplice della stessa idea: un solo strato, l’errore già in
uscita, niente da ripartire. La retropropagazione è la sua
erede per le reti con dentro qualcuno a cui chiedere conto. Il
programma nel repository la esegue riga per riga, coi commenti in
italiano, nella funzione impara.
La garanzia gemella: il teorema di approssimazione universale
Un solo strato nascosto abbastanza largo può approssimare qualunque funzione continua. Il teorema dice che la rete esiste, non che la discesa la trova.
Il percettrone aveva il suo teorema di convergenza; le reti multistrato hanno la garanzia gemella. Nel 1989 George Cybenko dimostrò il teorema di approssimazione universale - l’articolo sta fra le fonti in fondo al pezzo, e potete leggerlo nell’originale. Il teorema dice che a una rete basta un solo strato nascosto, purché largo a sufficienza, con una curva a S qualsiasi, per avvicinarsi quanto si vuole a qualunque funzione continua: nelle sue parole, «regioni di decisione arbitrarie possono essere approssimate arbitrariamente bene» da reti «con un solo strato interno nascosto». Il problema del percettrone non era un limite delle reti: era il limite di uno strato solo.
I due teoremi però non dicono la stessa cosa, e la differenza è decisiva. Il teorema di convergenza del percettrone garantiva che, se la soluzione esiste, la regola la trova. Il teorema di Cybenko garantisce soltanto che la soluzione esiste: non dice che la discesa del gradiente la troverà, né quanti neuroni serviranno. Per questo l’addestramento delle reti è rimasto per decenni un mestiere, oltre che una teoria.
E se un solo strato nascosto in teoria basta, perché oggi le reti sono profonde? Perché la profondità della rete permette a poco prezzo ciò che la larghezza paga carissimo, e il motivo si può dire per intero. Uno strato solo non condivide niente: ogni suo neurone costruisce la risposta direttamente dai dati grezzi, ogni combinazione utile vuole neuroni suoi, e il conto - proprio quello che il teorema lasciava aperto - cresce in fretta. La profondità invece compone: i primi strati imparano pochi tratti semplici, i successivi li combinano in tratti sempre più ricchi, e un tratto imparato una volta serve a tutte le combinazioni che lo contengono - e le combinazioni si moltiplicano da sole: dieci tratti accesi o spenti ne danno più di mille, venti più di un milione. La ragione ultima sta nei dati: la rassegna di Nature osserva che i segnali naturali sono essi stessi gerarchie di composizioni - nelle immagini «combinazioni locali di bordi formano motivi, i motivi si assemblano in parti, e le parti formano oggetti», e nella lingua lo stesso, dai suoni alle sillabe, alle parole, alle frasi. Una rete profonda ha la stessa forma delle cose che impara. La radiografia del piccolo GPT, con la predizione che matura blocco dopo blocco, è la stessa idea vista al lavoro.
I guai del mestiere dell’addestratore di reti neurali
Il gradiente che svanisce, il passo della discesa, l’imparare a memoria: i tre modi in cui l’addestramento va storto.
La discesa del gradiente funziona, ma chi addestra una rete incontra tre difficoltà ricorrenti. Vale la pena conoscerle, perché da esse discendono scelte che si ritrovano in ogni rete moderna: la ReLU al posto della sigmoide, il tasso da regolare con cura, il giudizio su dati mai visti.
Il gradiente che svanisce. Nel viaggio all’indietro, il segnale d’errore di ogni strato viene moltiplicato per la pendenza della curva dello strato successivo. La sigmoide è quasi piatta agli estremi: pendenze piccole, moltiplicate strato dopo strato, spengono il segnale - e gli strati vicini all’ingresso smettono di imparare. È il gradiente che svanisce (vanishing gradient), il freno storico delle reti profonde. La funzione che ha vinto è la ReLU - Rectified Linear Unit, l’unità lineare rettificata: «rettificata» nel senso del raddrizzatore, il componente elettrico che lascia passare la corrente in un verso solo. Fa proprio questo: zero sotto lo zero, la somma così com’è sopra - pendenza 1 ovunque sia accesa, niente da spegnere, e un costo di calcolo minimo. La rassegna di Nature del 2015 la registra senza giri di parole: «al momento, la funzione non lineare più popolare è la ReLU». Il suo difetto è il rovescio del pregio: un neurone che riceve solo somme negative resta spento per sempre.
| Funzione | La forma | Il pregio | Il difetto | Dove si usa oggi |
|---|---|---|---|---|
| Gradino | 0 o 1, salto secco | la decisione più semplice | nessuna pendenza: la discesa non ha direzione | nel percettrone - e riaffiora nelle reti a 1 bit, con un trucco (più avanti) |
| Sigmoide | una S fra 0 e 1 | pendenza ovunque; si legge come probabilità | quasi piatta agli estremi: il gradiente svanisce | alle uscite, quando serve un sì/no graduato |
| Tanh | una S fra -1 e 1 | come la sigmoide, ma centrata sullo zero | lo stesso appiattimento agli estremi | dove i dati hanno un segno - un segnale audio che oscilla fra più e meno - e comunque sempre più di rado |
| ReLU | zero sotto, la somma sopra | pendenza 1 dove è accesa; costa quasi niente | i neuroni sempre spenti non imparano più | lo standard degli strati nascosti |
Il passo della discesa. Il secondo guaio è il tasso di apprendimento. La discesa cerca un minimo: il fondo della valle dell’errore, il punto dove nessun ritocco ai pesi fa più calare l’errore. Il tasso di apprendimento è la lunghezza del passo con cui si scende, ed è un compromesso obbligato: troppo alto e ogni passo scavalca il fondo - la discesa rimbalza da un versante all’altro; troppo basso e i passi sono così corti che il fondo non si raggiunge in tempi umani. Nel repository si può toccare con mano: è una costante in testa al programma.
L’imparare a memoria. Il terzo guaio: una rete con cinquantamila pesi può permettersi di memorizzare gli esempi invece di capirli - eccellente sull’addestramento, inutile sui dati nuovi. È il sovradattamento, e il metro per accorgersene è la generalizzazione del pezzo precedente: si giudica su esempi mai visti, sempre. Più la rete è grande e meno esempi ha, più il rischio cresce - ecco perché le reti moderne si addestrano con tecniche apposite per disturbare la memorizzazione (la più nota è il dropout: a ogni giro si spegne a caso una parte dei neuroni, così nessuno può specializzarsi su un esempio), e con tantissimi dati.
E le tre curve si possono provare giocando, qui sotto. Il campo è la luce delle scale di poco fa: due deviatori, la luce accesa quando uno solo dei due è alzato. Si gioca così:
- Prima conoscete la regola. Toccate i due interruttori disegnati nella scena, uno in basso e uno in cima alle scale: la lampadina piena è la luce vera, e segue la regola. Qualche mossa, e la regola è nelle dita.
- Poi cercate l’errore. La lampadina tratteggiata, appesa accanto, è la previsione della rete: stessi interruttori, stessi fili, un’altra testa - che parte con pesi a caso, quindi da qualche parte sbaglia. Muovete gli interruttori finché il verdetto sotto la scena non dice che l’avete trovata.
- Quindi addestratela, e guardate. È la seconda fase: premete «Addestra», e la retropropagazione corregge i pesi un giro dopo l’altro. Tenete d’occhio i visori: la mappa che si piega e, accanto, l’errore che scende nel suo grafico, coi valori scritti sulla curva - da dove è partita, dov’è arrivata: l’addestramento è tutto lì. Quando le quattro combinazioni sono giuste, i nove numeri - i pesi e le soglie della rete - si fermano: quello è il modello. Tornate alla scena e provate a coglierla in fallo: non ci riuscite più.
Qui comincia la seconda partita, quella delle tre curve. Prima di premere «Addestra» potete scegliere la funzione di attivazione dello strato nascosto, e ognuna gioca col suo carattere:
- la sigmoide impara quasi sempre, con calma: di solito qualche centinaio di giri;
- la tanh è la stessa S ma centrata sullo zero, e si sente: spesso bastano poche decine di giri;
- la ReLU è la scommessa: a volte impara in un lampo, a volte parte con un neurone spento che non si riaccende più - la discesa si incaglia, i pesi si rimescolano da soli e il contatore dei tentativi sale. Provatela più volte: a questa scala, la lotteria è il suo carattere.
Il cursore del tasso di apprendimento è il passo della discesa: alzatelo e l’errore si mette a oscillare, abbassatelo e i giri si allungano. E la mappa accanto ai comandi è la geometria di tutto questo: la risposta della rete su tutte le posizioni intermedie degli interruttori - i nove numeri resi visibili - con la superficie che si piega mentre impara.
Alla fine del gioco restano nove numeri: sei pesi e tre soglie, il vettore - la fila ordinata di numeri - in cui la discesa ha depositato tutto quello che la rete ha imparato. È una versione, ritrovata da sola, della tabella che in apertura avevamo scritto a mano, spesso con valori diversi, perché di soluzioni ce n’è più d’una. Tutto l’addestramento produce questo: non un programma né una spiegazione, ma un pugno di numeri che realizza la regola.
E la simulazione funziona così: le posizioni delle due leve entrano come ingressi, 0 per giù e 1 per su. Ogni neurone nascosto moltiplica le due posizioni per i suoi due pesi, somma, toglie la soglia e passa il risultato alla sua curva: ne esce la sua risposta, la gradazione del reostato. L’uscita ripete il gesto sulle due risposte dei nascosti - pesi, somma, soglia, curva - e se il numero finale supera 0,5 la lampadina tratteggiata si accende. Ogni volta che nella scena toccate un interruttore, il widget rifà questi conti col vettore del momento: nove numeri, due giri di somme, e il circuito è simulato.
Se nel gioco la ReLU fa la figura peggiore, come può essere lo standard? Perché il gioco è minuscolo: con due soli neuroni nascosti, uno che parte spento è metà della rete, e la discesa si incaglia. Nelle reti profonde le proporzioni si rovesciano: i neuroni spenti sono una frazione trascurabile di migliaia, mentre la pendenza 1 attraversa intatta decine di strati - la sigmoide, coi suoi estremi piatti, lì si spegne. È il motivo per cui la rassegna di Nature, citata sopra per il primato della ReLU, aggiunge che «impara tipicamente molto più in fretta nelle reti con molti strati». Il widget ve la mostra alla scala che la sfavorisce: il difetto ingrandito, il pregio senza lo spazio per farsi valere - tenete le due scale distinte.
Il ritorno del gradino: le reti a 1 bit
Il gradino torna dove memoria ed energia sono contate: nelle reti a 1 bit pesi e attivazioni valgono solo più uno o meno uno, e l’addestramento aggira la pendenza assente con un trucco.
La funzione di attivazione a gradino, però, non è scomparsa: torna nelle reti quantizzate a 1 bit, dove la funzione che decide è di nuovo un segno secco - e merita una spiegazione. Sono reti con i pesi - e perfino le attivazioni - ridotti a +1 o -1, e servono a far girare un modello dove memoria ed energia sono contate: un telefono, un sensore, un apparecchio a batteria. Un peso a 1 bit occupa trentadue volte meno di uno a precisione piena, e i conti si riducono a operazioni elementari sui bit. E l’addestramento aggira la pendenza assente con un trucco dichiarato fin dal lavoro che aprì la strada: in discesa si finge che il gradino sia una retta nel suo tratto centrale, e ogni peso vive in due copie - quella secca a +1 o -1, che la rete usa per i conti, e una gemella a precisione piena, il numero con tutti i suoi decimali, dove si sommano le piccole correzioni di ogni giro. Da sola nessuna correzione basterebbe a far saltare un peso da -1 a +1; accumulate nella gemella, quando la somma cambia segno il peso secco scatta dall’altra parte. Finito l’addestramento, le gemelle si buttano: restano solo i +1 e i -1.
Da non confondere con la quantizzazione a 8 bit dei pesi nei nostri repository: quella avviene dopo l’addestramento, solo per conservare i numeri in meno spazio, e nessun gradino entra mai nella discesa.
La prova sul campo: il confronto misurato
Stessi dati, stesso metro del percettrone: la differenza è lo strato nascosto.
L’articolo sul percettrone misurava dieci percettroni sulle cifre scritte a mano di MNIST: 83,2% di riconoscimenti su diecimila immagini mai viste, riproducibile al decimale. La stessa prova, con una rete multistrato minima - 784 ingressi, uno strato nascosto di 64 neuroni con sigmoide, 10 uscite: 50.890 parametri, sei volte e mezzo in più dei 7.850 dei dieci percettroni dell’articolo precedente - sta nel repository che accompagna questo pezzo, Python puro senza dipendenze, semi fissati, dati scaricati dalla raccolta pubblica alla prima esecuzione.
L’esito misurato: 95,8% già dopo il primo giro di addestramento, 96,3% dopo il terzo - tredici punti sopra il percettrone, sempre su diecimila immagini mai viste. E l’altalena sulla curva dell’errore, che là non trovava un minimo stabile (nove punti persi in un giro), qui si riduce a sette decimi: la rete oscilla appena e si assesta, perché lo strato nascosto le dà una valle vera da scendere. E dove dieci rette si fermavano, la rete rifà in grande la mossa vista su XOR: sposta i punti. Là lo spazio nuovo aveva due assi, uno per neurone nascosto; qui ne ha sessantaquattro e non si può disegnare - ma la mossa è la stessa, e alla fine le dieci cifre sono separabili.
Il lavoro non lo fa il numero degli assi: su XOR erano due prima e due dopo, e qui addirittura si scende - dai 784 dei pixel ai 64 dei neuroni nascosti. A spostare i punti dove le rette non arrivano è la funzione di attivazione: senza, vale il collasso lineare dell’inizio.
Le dieci uscite meritano l’ultima parola tecnica del pezzo: invece di dichiarare vincitrice la somma più alta e basta, la rete passa tutte e dieci per la softmax.
La regola sta in una riga: si prende il numero fisso e - il numero di Eulero, che vale circa 2,72 - lo si eleva a ciascuna somma, e si divide ogni risultato per il totale. Coi numeri, su tre somme sole - 2, 1 e 0: le potenze valgono 7,4, 2,7 e 1; il totale fa 11,1; le divisioni danno 67%, 24% e 9%. I numeri si sono trasformati in probabilità: tutti positivi, con la somma che dà 1 - o 100%, a seconda di come si scrive ogni singola probabilità: 0,1 e 10% sono lo stesso valore. Il risultato ha due pregi: i distacchi escono amplificati rispetto alle somme di partenza, e nessun candidato finisce a zero - una somma negativa dà una frazione piccola, per -1 circa 0,37, non il nulla. È il passo avanti rispetto al «vince la somma più alta» del percettrone: là restava solo il vincitore; qui la somma più alta prende la fetta più grande, ma tutte le altre restano in gioco con la propria. Il piccolo GPT fa esattamente questo quando pesa i candidati al prossimo carattere.
Verso i modelli di linguaggio
Le immagini stanno in una griglia fissa. Il linguaggio no: è una sequenza, e cambia lunghezza a ogni frase.
Da qui il mestiere si è specializzato: reti fatte apposta per le immagini, reti fatte apposta per le sequenze, fino alle architetture di oggi. La serie prosegue nella direzione che porta ai modelli di linguaggio, e il prossimo passo è il più sottovalutato: prima di qualunque rete, il testo deve diventare numeri. Come si affetta una frase, che cosa è un token, perché la sequenza è un problema diverso da una griglia di pixel: sono i prossimi due pezzi.
Il percettrone era una retta; la rete multistrato è una macchina che sposta i punti finché le rette bastano. Tutto quello che la serie incontrerà da qui in poi - l’attenzione, il Transformer, il piccolo GPT coi suoi 800.000 parametri - è fatto di questi due gesti: somme pesate, e curve che tengono viva la pendenza.
I concetti che questo articolo introduce
Undici voci: la rete e il suo strato nascosto, l’algoritmo che li addestra, la garanzia, i tre guai del mestiere e la softmax delle uscite.
| Concetto | Ambito | Che cos’è | Si lega a |
|---|---|---|---|
| Rete neurale multistrato | machine-learning | Neuroni artificiali disposti in strati, ognuno dei quali legge le uscite del precedente: con almeno uno strato nascosto e curve non lineari supera il limite della retta del percettrone | ogni suo nodo è un neurone artificiale; contiene lo strato nascosto; si addestra con la retropropagazione; risolve il problema XOR |
| Strato nascosto | machine-learning | Lo strato fra ingresso e uscita, che nessuna etichetta raggiunge direttamente: trasforma i dati finché il problema diventa separabile | appartiene alla rete neurale multistrato; il suo addestramento è il problema che la retropropagazione risolve |
| Retropropagazione | machine-learning | L’algoritmo che ripartisce l’errore all’indietro, strato per strato, in proporzione alla responsabilità di ciascun peso; l’idea fu scoperta da più gruppi negli anni Settanta e Ottanta, e Rumelhart, Hinton e Williams (1986) la resero lo strumento di tutti | addestra la rete neurale multistrato; usa la discesa del gradiente; è l’erede della regola di apprendimento del percettrone; soffre del gradiente che svanisce |
| Discesa del gradiente | machine-learning | Correggere ogni peso spostandolo di un passo nella direzione che riduce l’errore, come scendere un pendio seguendo la pendenza del punto in cui ci si trova | è il motore della retropropagazione; il suo passo è il tasso di apprendimento |
| Tasso di apprendimento | machine-learning | La lunghezza del passo della discesa: troppo alto scavalca la valle oscillando, troppo basso non arriva | regola la discesa del gradiente |
| Gradiente che svanisce | machine-learning | Negli strati profondi il segnale d’errore si spegne, perché torna indietro moltiplicato per pendenze minori di 1 a ogni strato: gli strati vicini all’ingresso smettono di imparare | affligge la retropropagazione; cresce con la profondità della rete; è il motivo per cui la ReLU ha vinto sulla sigmoide |
| ReLU | machine-learning | La funzione di attivazione oggi standard negli strati nascosti (Rectified Linear Unit, unità lineare rettificata): zero sotto lo zero, la somma così com’è sopra; pendenza 1 ovunque sia accesa, costo di calcolo minimo | è una funzione di attivazione; mitiga il gradiente che svanisce |
| Teorema di approssimazione universale | machine-learning | Una rete con un solo strato nascosto abbastanza largo può approssimare qualunque funzione continua (Cybenko, 1989). Garantisce che la rete esiste, non che l’addestramento la trova | riguarda la rete neurale multistrato; è la garanzia gemella del teorema di convergenza del percettrone |
| Profondità della rete | machine-learning | Il numero di strati. Più strati permettono gerarchie di tratti - semplici nei primi, composti nei successivi - che uno strato solo, per quanto largo, paga carissimo | caratterizza la rete neurale multistrato; aggrava il gradiente che svanisce |
| Sovradattamento | machine-learning | Imparare a memoria gli esempi invece del criterio: eccellente sull’addestramento, inutile sui dati mai visti; si smaschera col metro della generalizzazione | minaccia la rete neurale multistrato; cresce coi parametri e cala con gli esempi |
| Softmax | machine-learning | La trasformazione che converte le somme d’uscita in probabilità: ogni somma passa per l’esponenziale e si divide per il totale; tutte positive, sommano a 1, coi distacchi amplificati | opera sulle uscite della rete neurale multistrato; è la versione graduata del vincitore unico del percettrone |
Fonti
- Improve and Manage,
serie-machine-learning,
GitHub, 2026 - il repository dei widget della serie: qui sta il widget
delle reti multistrato di questo pezzo (cartella
rete-multistrato/), insieme ai widget di tutti gli altri pezzi della serie. - Improve and Manage, rete-multistrato, GitHub, 2026 - i programmi che accompagnano l’articolo: la rete minima di XOR coi conti della tabella, e la rete 784-64-10 che misura il confronto su MNIST; i numeri citati nel testo si ottengono eseguendoli, con i semi fissati. Il percettrone di confronto e il suo 83,2% stanno nel repository gemello.
- David E. Rumelhart, Geoffrey E. Hinton e Ronald J. Williams, Learning representations by back-propagating errors, Nature 323, 1986, primaria aperta e letta - le unità nascoste che «arrivano a rappresentare i tratti importanti del dominio del compito» e il confronto dichiarato con la procedura di convergenza del percettrone; le citazioni sono tradotte da noi dall’originale.
- George Cybenko, Approximation by Superpositions of a Sigmoidal Function, Mathematics of Control, Signals and Systems 2, 1989, primaria aperta e letta - il teorema di approssimazione universale citato nel testo, tradotto da noi.
- Yann LeCun, Yoshua Bengio e Geoffrey Hinton, Deep Learning, Nature 521, 2015, letta - la ReLU «al momento la funzione non lineare più popolare», la retropropagazione «scoperta indipendentemente da più gruppi negli anni Settanta e Ottanta», gli strati nascosti che deformano l’ingresso finché le categorie diventano separabili, e i segnali naturali come gerarchie di composizioni - bordi, motivi, parti, oggetti - a fondamento della profondità; traduzioni nostre.
- Matthieu Courbariaux, Itay Hubara, Daniel Soudry, Ran El-Yaniv e Yoshua Bengio, Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1, arXiv, 2016, primaria aperta e letta - il ritorno del gradino nelle reti a 1 bit: «la derivata della funzione segno è zero quasi ovunque», e il trucco dello straight-through che in discesa la finge una retta nel tratto centrale, coi pesi a precisione piena tenuti da parte; traduzioni nostre.
- Jürgen Schmidhuber, Deep Learning in Neural Networks: An Overview, Neural Networks 61, 2015 - la ricostruzione storica dettagliata della retropropagazione (nomi e date dei precursori), richiamata di seconda mano.
- Sepp Hochreiter, The Vanishing Gradient Problem During Learning Recurrent Neural Nets and Problem Solutions, International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems 6, 1998 - l’analisi classica del gradiente che svanisce, richiamata di seconda mano.