Per una teoria generale delle reti neurali

I sistemi di intelligenza artificiale più avanzati si basano sulle reti neurali, ispirate alle connessioni tra i neuroni, il cui comportamento è però in gran parte imprevedibile. Nuovi studi teorici stanno cercando di sviluppare le fondamenta teoriche per collegarne la struttura ai compiti che devono svolgere

Fonte: Lescienze.it
di Kevin Hartnett/Quanta Magazine

Quando progettiamo un grattacielo, ci aspettiamo che funzionerà secondo le specifiche: l'edificio sosterrà tanto peso e sarà in grado di resistere a un terremoto di una certa intensità.

Ma per una delle tecnologie più importanti del mondo moderno in realtà stiamo costruendo alla cieca. Giochiamo con design diversi, armeggiamo con diverse configurazioni, ma finché non facciamo una sessione di test va non sappiamo davvero cosa possono fare e dove falliranno.

Questa tecnologia è la rete neurale, che è alla base dei sistemi di intelligenza artificiale più avanzati di oggi. Le reti neurali si stanno muovendo sempre di più verso aree cruciali della società: determinano ciò che apprendiamo del mondo attraverso i social media, aiutano i medici a diagnosticare le malattie e influenzano persino il tempo che passerà in prigione una persona condannata per un reato.

Eppure "la migliore approssimazione a ciò che sappiamo è che non sappiamo quasi nulla di come funzionano effettivamente le reti neurali e di come sarebbe una teoria davvero profonda", ha detto Boris Hanin, matematico della Texas A&M University e visiting scientist alla Facebook AI Research, che studia le reti neurali.

Per una teoria generale delle reti neurali
Koma Zhang/Quanta Magazine 

Hanin paragona la situazione allo sviluppo di un'altra tecnologia rivoluzionaria: il motore a vapore.

Inizialmente, i motori a vapore non facevano molto più che pompare acqua. Poi hanno mosso i treni, che è forse il livello di sofisticazione raggiunto dalle reti neurali. Quindi scienziati e matematici hanno sviluppato una teoria della termodinamica, che consente di capire esattamente che cosa sta succedendo all'interno dei motori di qualsiasi tipo. Alla fine, quella conoscenza ci ha portato sulla Luna.

"All'inizio c’era una grande tecnologia, che ha permesso ottimi treni, poi c’è stato bisogno di un po' di comprensione teorica per andare sulle navicelle spaziali", ha detto Hanin.

All'interno dell'estesa comunità che si occupa dello sviluppo di reti neurali, c'è un piccolo gruppo di matematici ricercatori che sta cercando di costruire una teoria delle reti neurali in grado di spiegare come funzionano, per garantire che, se si costruisce una rete neurale in un modo specifico, sarà in grado di eseguire determinati compiti.

Questo lavoro è ancora nelle sue fasi iniziali, ma nell'ultimo anno i ricercatori hanno prodotto vari articoli che elaborano la relazione tra forma e funzione nelle reti neurali.

Il lavoro fa ripartire le reti neurali dalle fondamenta. Dimostra che molto prima di poter certificare che le reti neurali possono guidare le automobili è necessario dimostrare che possono moltiplicare.

La migliore ricetta per un cervello
Le reti neurali puntano a imitare il cervello umano e un modo per pensare al cervello è che esso funzioni accumulando astrazioni più piccole in astrazioni più grandi.

La complessità del pensiero, in questa prospettiva, viene quindi misurata dalla gamma di astrazioni più piccole da cui è possibile attingere e dal numero di volte in cui è possibile combinare le astrazioni di livello inferiore in astrazioni di livello superiore, come quando impariamo a distinguere i cani dagli uccelli.

"Per un essere umano, imparare a riconoscere un cane significa imparare a riconoscere quattro soffici zampe", dice Maithra Raghu, una studentessa di dottorato in informatica presso la Cornell University e membro di Google Brain. "Idealmente, vorremmo che le nostre reti neurali facessero lo stesso tipo di cose."

L'astrazione è naturale per il cervello umano. Le reti neurali devono lavorare per arrivarci. Come nel cervello, le reti neurali sono costituite da blocchi chiamati "neuroni" che sono collegati in vari modi. (I neuroni di una rete neurale sono ispirati ai neuroni nel cervello ma non li imitano direttamente). Ogni neurone può rappresentare un attributo o una combinazione di attributi, che la rete prende in considerazione a ogni livello di astrazione.

Per una teoria generale delle reti neurali
Le reti neurali si ispirano alle reti di neuroni, ma non li imitano direttamente (Science Photo Library RF / AGF) 

Quando uniscono questi neuroni, i progettisti hanno molte scelte da fare. Devono decidere quanti strati di neuroni dovrebbe avere la rete (vale a dire quanto dovrebbe essere "profonda").

Si pensi, per esempio, a una rete neurale che ha il compito di riconoscere oggetti nelle immagini. L'immagine entra nel sistema al primo livello. Al livello successivo, la rete potrebbe avere neuroni che rilevano solo i bordi dell'immagine. Lo strato ancora successivo combina le linee per identificare le curve nell'immagine. Quindi il livello seguente combina le curve in forme e trame, e il livello finale elabora le forme e le trame per giungere a una conclusione su ciò che sta guardando: un mammut lanoso!

“L'idea è che ogni livello combini aspetti diversi del livello precedente. Un cerchio è un insieme di curve in molti posti diversi, una curva è un insieme di linee in molti posti diversi", dice David Rolnick, matematico dell'Università della Pennsylvania.

I progettisti devono anche decidere la "larghezza" di ogni strato, che corrisponde al numero di diverse caratteristiche che la rete prende in esame a ogni livello di astrazione. Nel caso del riconoscimento dell'immagine, la larghezza dei livelli sarebbe il numero di tipi di linee, curve o forme che esamina in ogni livello.

Oltre alla profondità e alla larghezza di una rete, ci sono anche delle scelte su come connettere i neuroni all'interno dei livelli e tra di essi, e quanto peso dare a ogni connessione.

Quindi, se si ha in mente un compito specifico, come si fa a sapere quale architettura di rete neurale lo realizzerà al meglio?

Ci sono alcune regole generali. Per le attività relative alle immagini, i progettisti utilizzano tipicamente reti neuronali "convoluzionali", che presentano lo stesso schema di connessioni tra gli strati ripetuti più volte. Per l'elaborazione del linguaggio naturale – come il riconoscimento vocale o la generazione di linguaggio – i progettisti hanno scoperto che le reti neurali "ricorrenti" sembrano funzionare meglio. In queste, i neuroni possono essere collegati a strati non adiacenti.

A parte queste linee guida generali, tuttavia, ci si deve afidare in gran parte a prove sperimentali: si fanno girare 1000 diverse reti neurali e si osserva quale svolge il compito.

"Nella pratica, queste scelte sono spesso fatte per tentativi ed errori", dice Hanin. "È un approccio un po' complesso perché ci sono infinite scelte e in realtà non si sa quale sia il migliore".

Un approccio migliore comporterebbe un po' meno tentativi ed errori e una comprensione un po' più anticipata di ciò che fornirà una determinata architettura di rete neurale.

Alcuni articoli pubblicati di recente hanno spostato il campo di ricerca in questa direzione. "Questi lavori cercano di sviluppare una sorta di ricettario per progettare la rete neurale giusta. Se sai che cosa vuoi ottenere dalla rete, ecco la ricetta per quella rete", dice Rolnick.

Legare una pecora rossa
Una delle prime importanti verifiche teoriche sull'architettura delle reti neurali risale a tre decenni fa. Nel 1989, gli informatici hanno dimostrato che se una rete neurale ha un singolo livello computazionale, ma si consente a uno strato di avere un numero illimitato di neuroni, con connessioni illimitate tra di loro, la rete sarà in grado di svolgere qualsiasi compito si possa chiederle.

È stata una dichiarazione generale che si è rivelata abbastanza intuitiva e non così utile. È come dire che se si può identificare un numero illimitato di linee in un'immagine, si può distinguere tra tutti gli oggetti usando solo un livello. Questo può essere vero in linea di principio, ma è ben difficile tradurlo in pratica.

Per una teoria generale delle reti neurali
Schema di progettazione di una rete neurale (in inglese) (Lucy Reading-Ikkanda/Quanta Magazine)

I ricercatori oggi descrivono reti così ampie e piatte come "espressive", vale a dire che sono capaci in teoria di catturare un insieme più ricco di connessioni tra i possibili input (come un'immagine) e gli output (come le descrizioni dell'immagine). Tuttavia queste reti sono estremamente difficili da addestrare, il che significa che è quasi impossibile insegnare loro come  produrre realmente questi output. Dal punto di vista computazionale, inoltre, sono anche più impegnative di quanto potrebbe gestire qualunque computer.

Più di recente, i ricercatori hanno cercato di capire fino a che punto possono spingere le reti neurali nella direzione opposta, rendendole più strette (con meno neuroni per strato) e più profonde (con più strati complessivamente). Può darsi che basti scegliere  solo 100 linee diverse, ma dotate di connessioni, per trasformare quelle 100 linee in 50 curve, che poi è possibile combinare in 10 diverse forme, che danno tutti gli elementi costitutivi necessari per riconoscere la maggior parte degli oggetti.

In un articolo completato l'anno scorso, Rolnick e Max Tegmark del Massachusetts Institute of Technology hanno dimostrato che aumentando la profondità e diminuendo la larghezza, è possibile eseguire le stesse funzioni con un numero di neuroni esponenzialmente inferiore.

Hanno dimostrato che se la situazione che si sta modellizzando ha 100 variabili di input, è possibile ottenere la stessa affidabilità usando 2100 neuroni in uno strato o solo 210 neuroni distribuiti su due livelli. Hanno scoperto la potenzialità che c'è nel prendere piccoli pezzi e combinarli a livelli più alti di astrazione invece di tentare di catturare tutti i livelli di astrazione contemporaneamente.

"La nozione di profondità in una rete neurale è legata all'idea che puoi esprimere qualcosa di complicato facendo molte cose semplici in sequenza", dice Rolnick. "È come una catena di montaggio."

Rolnick e Tegmark hanno dimostrato l'utilità della profondità chiedendo alle reti neurali di svolgere un compito semplice: moltiplicare le funzioni polinomiali. (Queste sono equazioni che presentano variabili elevate a esponenti che sono numeri naturali, per esempio y = x3 + 1). Hanno addestrato le reti mostrando loro esempi di equazioni e dei loro prodotti. Quindi hanno chiesto alle reti di calcolare i prodotti delle equazioni che non avevano mai visto prima. Le reti neuronali più profonde hanno appreso il compito con molti meno neuroni di quelle meno profonde.

Anche se la moltiplicazione non è un compito che rivoluzionerà il mondo, Rolnick afferma che l'articolo ha segnato un punto importante: "Se una rete poco profonda non può nemmeno fare un moltiplicazione, non dovremmo fidarcene per nient'altro".

Altri ricercatori hanno studiato la quantità minima di larghezza necessaria. Alla fine di settembre, Jesse Johnson, già matematico dell'Oklahoma State University e ora ricercatore presso la casa farmaceutica Sanofi, ha dimostrato che a un certo punto nessuna profondità può compensare la mancanza di larghezza.

Per avere un'idea del suo risultato, immaginiamo delle pecore in un campo. Tuttavia, si tratta di pecore punk-rock: la loro lana è stata tinta in diversi colori. Il compito della nostra rete neurale è tracciare una linea attorno a tutte le pecore dello stesso colore.

In sostanza, questo compito è simile alla classificazione delle immagini: la rete ha una raccolta di immagini (che rappresenta come punti nello spazio di dimensione superiore) e ha bisogno di raggruppare quelle simili.

Johnson ha dimostrato che una rete neurale fallirà in questo compito quando la larghezza degli strati è inferiore o uguale al numero di input. Quindi, riguardo alle nostre pecore, ciascuna può essere descritta con due input: una x e una y per specificare la sua posizione nel campo. La rete neurale etichetta dunque ogni pecora con un colore e traccia un bordo attorno alle pecore dello stesso colore. In questo caso, ci sarà bisogno di tre o più neuroni per strato per risolvere il problema.

Più nello specifico, Johnson ha dimostrato che se il rapporto larghezza-variabile è sbagliato, la rete neurale non sarà in grado di definire cicli chiusi, il tipo di cicli che avrebbe bisogno di definire se, per esempio, tutte le pecore rosse fossero raggruppate insieme al centro del pascolo. "Se nessuno degli strati è più spesso del numero di dimensioni di input, ci sono alcune forme che la funzione non sarà mai in grado di creare, indipendentemente dal numero di livelli che si aggiungono", ha detto Johnson.

Articoli come quello di Johnson stanno iniziando a costruire i rudimenti di una teoria delle reti neurali. Al momento, i ricercatori possono fare solo affermazioni molto basilari sulla relazione tra architettura e funzione e queste affermazioni sono una piccola parte rispetto al numero di compiti che le reti neurali stanno affrontando.

Quindi, anche se la teoria delle reti neurali non cambierà di colpo il modo in cui vengono costruiti i sistemi, si stanno elaborando i progetti per una nuova teoria su come imparano i computer: una teoria che potrebbe avviare l'umanità lungo un percorso con ripercussioni ancora maggiori del viaggio sulla Luna.

(L'originale di questo articolo è stato pubblicato il 31 gennaio 2019 da QuantaMagazine.org, una pubblicazione editoriale indipendente online promossa dalla Fondazione Simons per migliorare la comprensione pubblica della scienza. Traduzione ed editing a cura di Le Scienze. Riproduzione autorizzata, tutti i diritti riservati)