Dietro quasi tutti i sistemi di intelligenza artificiale che oggi fanno notizia, dai traduttori automatici ai modelli che generano immagini, c'è una rete neurale artificiale. Il nome evoca il cervello, ma il paragone va preso con cautela: una rete neurale è un modello matematico ispirato molto liberamente ai neuroni biologici. Capire come è fatta toglie molta della magia che la circonda e aiuta a valutarne pregi e limiti.
Il neurone artificiale
L'unità di base è il neurone artificiale, che svolge tre operazioni semplicissime.
- Riceve dei numeri in ingresso. Per esempio la luminosità di alcuni pixel di un'immagine.
- Li moltiplica per dei pesi e li somma. Ogni ingresso ha un peso che indica quanto conta. A questa somma si aggiunge un valore chiamato bias, che sposta la soglia di attivazione.
- Applica una funzione di attivazione. Il risultato della somma passa attraverso una funzione che decide quanto il neurone "si accende". Una delle più usate, chiamata ReLU, lascia passare i valori positivi e azzera quelli negativi.
Preso da solo, un neurone è poco più di una calcolatrice. La potenza nasce quando se ne collegano migliaia o miliardi.
Un esempio concreto
Immagina un neurone che deve decidere se portare l'ombrello. Gli ingressi sono: probabilità di pioggia, distanza da percorrere a piedi, presenza di un'auto. Il peso della pioggia sarà alto e positivo, quello dell'auto negativo (se hai l'auto, l'ombrello serve meno). La somma pesata, passata nella funzione di attivazione, dà una risposta. In una rete vera nessuno imposta questi pesi a mano: vengono appresi dai dati.
Gli strati
I neuroni sono organizzati in strati (in inglese layers):
- lo strato di ingresso riceve i dati grezzi;
- gli strati nascosti elaborano le informazioni in passaggi successivi;
- lo strato di uscita produce il risultato, per esempio la probabilità che un'immagine contenga un gatto.
Quando gli strati nascosti sono molti si parla di deep learning, apprendimento profondo. "Profondo" si riferisce proprio al numero di strati, non a una particolare profondità di pensiero.
Il vantaggio della profondità è che ogni strato può costruire rappresentazioni più astratte a partire da quelle dello strato precedente. In una rete che analizza immagini, i primi strati tendono a reagire a bordi e contrasti, quelli intermedi a forme e texture, gli ultimi a oggetti interi come occhi, ruote o finestre.
Come impara una rete: la retropropagazione
All'inizio i pesi sono numeri casuali e la rete produce risposte senza senso. L'apprendimento avviene ripetendo un ciclo:
- si mostra alla rete un esempio, come la foto di un cane etichettata "cane";
- la rete calcola la sua previsione, magari "gatto al 70%";
- una funzione di errore misura quanto la previsione è lontana dalla risposta corretta;
- la retropropagazione (backpropagation) calcola, a ritroso dallo strato di uscita, quanto ogni peso ha contribuito all'errore;
- ogni peso viene corretto di poco nella direzione che riduce l'errore, con un metodo chiamato discesa del gradiente.
Ripetuto su milioni di esempi, questo ciclo porta la rete a configurare i propri pesi in modo da dare risposte sempre più accurate. Un'analogia utile è quella di una persona bendata che deve scendere a valle: non vede il paesaggio, ma sente sotto i piedi da che parte il terreno scende e fa un piccolo passo in quella direzione, poi un altro.
Architetture diverse per compiti diversi
Non tutte le reti sono uguali. Nel tempo sono nate architetture specializzate:
| Architettura | Punto di forza | Uso tipico |
|---|---|---|
| Reti completamente connesse | Semplicità | Dati tabellari, problemi piccoli |
| Reti convoluzionali (CNN) | Riconoscere schemi locali | Immagini, visione artificiale |
| Reti ricorrenti (RNN) | Elaborare sequenze | Serie temporali, testo (in passato) |
| Transformer | Relazioni a lunga distanza | Modelli linguistici, traduzione |
I Transformer, basati sul meccanismo di attenzione, sono oggi l'architettura dominante per il linguaggio e vengono usati sempre più anche per immagini e audio.
Perché servono tanti dati e tanta potenza
Una rete con miliardi di pesi ha bisogno di moltissimi esempi per configurarli in modo sensato; con pochi dati tende a memorizzarli invece di generalizzare. Inoltre ogni passaggio di addestramento richiede un numero enorme di moltiplicazioni. Per questo si usano le GPU, processori nati per la grafica che eseguono in parallelo migliaia di operazioni semplici, esattamente ciò di cui una rete neurale ha bisogno.
I limiti da conoscere
- Scarsa interpretabilità. È difficile spiegare perché una rete abbia dato una certa risposta: la "regola" è distribuita su milioni di pesi.
- Sensibilità ai dati. Se gli esempi di addestramento hanno lacune o distorsioni, la rete le riprodurrà.
- Fragilità fuori dal contesto noto. Una rete addestrata su foto diurne può comportarsi male con foto notturne.
- Costo energetico. Addestrare reti molto grandi richiede infrastrutture costose.
In sintesi
- Una rete neurale è composta da neuroni artificiali che sommano ingressi pesati e applicano una funzione di attivazione.
- I neuroni sono organizzati in strati; con molti strati si parla di deep learning.
- La rete impara correggendo i pesi tramite retropropagazione e discesa del gradiente.
- Architetture diverse, come CNN e Transformer, sono adatte a compiti diversi.
- Interpretabilità e dipendenza dai dati restano i limiti principali.