
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:
- lo strato di input riceve le N variabili del problema di predizione — nell’esempio del primo capitolo: età, sesso, indice di massa corporea;
- uno o più strati nascosti elaborano l’informazione. Nascosti perché non si affacciano né sull’input né sull’output: nessuno li osserva, e ciò che rappresentano non ha in generale alcuna interpretazione leggibile per un umano;
- lo strato di output restituisce le M variabili predette — speranza di vita, costo sanitario complessivo.
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?
