)
Serie 2 · Reti neurali

Anatomia di una rete neurale

Una rete neurale è un modello fatto di nodi elementari disposti in strati e collegati da connessioni pesate: i dati entrano dallo strato di input, attraversano uno o più strati nascosti ed escono dallo strato di output — e i pesi delle connessioni sono esattamente i parametri che l'addestramento deve trovare.

← Tutti gli argomenti
Una rete neurale con uno strato di input, tre strati nascosti e uno strato di output, in cui ogni nodo è collegato a tutti i nodi dello strato successivo.

La Serie 1 ci ha lasciato una definizione volutamente vaga: un modello è “un insieme generico di formule che dipende da un insieme di parametri liberi”. Vaga perché la domanda vera restava aperta — quali formule? Con tre variabili di input si possono ancora guardare i dati, farsi un’idea della forma della relazione e scegliere a mano una famiglia di funzioni. Con un milione di variabili di input non è più possibile. Serve una struttura generica, capace di assumere qualunque forma senza che nessuno debba specificarla.

La risposta che ha prevalso — al punto che nel deep learning è ormai praticamente l’unica in uso — è la rete neurale.

Nodi e strati. Una rete neurale è composta da unità di elaborazione elementari — i neuroni artificiali, o nodi — organizzate in strati e collegate fra loro da connessioni pesate: ogni connessione trasporta un numero e lo moltiplica per una costante, il peso. Gli strati sono di tre tipi:

Nella topologia più semplice l’informazione scorre in una sola direzione, dall’input verso l’output (rete feedforward), e ogni nodo di uno strato è collegato a tutti i nodi dello strato successivo (rete fully connected). Ne esistono molte altre, ed è il tema del capitolo 10.

Il nome è un’analogia, e conviene sapere quanto vale. La definizione da manuale dice che la rete neurale è ispirata alla struttura e al funzionamento del cervello umano, ed è vero come genealogia: il neurone artificiale nasce dal modello formale di McCulloch e Pitts (1943) e dal percettrone di Rosenblatt (1957), entrambi dichiaratamente ispirati alla neurofisiologia dell’epoca. Ma il limite dell’analogia va fissato subito: un neurone artificiale non è un modello del neurone biologico, e una rete neurale non spiega come funziona il cervello. È una parentela di ispirazione, non di sostanza.

Dove stanno i pesi. Sulle connessioni — ed è qui che tutto si riaggancia al capitolo 3. Quei pesi sono esattamente i parametri liberi che l’addestramento deve determinare minimizzando la loss. Contarli è immediato: tra uno strato di n nodi e uno di m nodi, se sono fully connected, ci sono n×m connessioni, dunque n×m pesi — più un parametro per nodo, il bias, di cui parleremo nel prossimo capitolo. Bastano pochi strati di dimensione ragguardevole perché il conto arrivi a milioni; nei modelli linguistici di cui parleremo più avanti si arriva a centinaia di miliardi.

È qui che “deep” prende significato. Nel capitolo 2 il deep learning è comparso come “machine learning con livelli multipli di elaborazione”: la profondità di cui si parla è semplicemente il numero di strati nascosti. Ogni strato aggiuntivo non aggiunge solo pesi, aggiunge un passaggio di rielaborazione: lo strato successivo non lavora più sui dati grezzi, ma su una rappresentazione già costruita da quello precedente.

Perché ha vinto questa architettura. Due ragioni. La prima è la modularità: il neurone artificiale è un mattoncino elementare, sempre identico a se stesso, e combinandone abbastanza si può — almeno in linea di principio — rappresentare qualunque relazione fra input e output. È un risultato matematico preciso, il teorema di approssimazione universale, che però porta con sé un’avvertenza importante: ci torneremo nel capitolo 9. La seconda ragione è meno elegante ma altrettanto decisiva: la struttura a strati consente di calcolare il gradiente della loss in modo straordinariamente efficiente, uno strato alla volta, con un algoritmo chiamato backpropagation. Senza di esso la discesa del gradiente del capitolo 3 resterebbe una bella idea impraticabile su modelli di queste dimensioni. È il tema del capitolo 8.

Un vincolo da tenere a mente. Una rete neurale prende in ingresso numeri reali e restituisce numeri reali. Sempre. Il che apre un problema tutt’altro che secondario per un modello che deve leggere e scrivere testo — o guardare immagini, o ascoltare audio. Non basta assegnare un numero a ogni parola: serve una rappresentazione numerica che porti con sé il significato. È l’argomento della Serie 3.

Prima però bisogna aprire uno di quei nodi della rete e guardarci dentro: che cosa fa, esattamente, un singolo neurone artificiale?