L’intelligenza artificiale è un campo molto vasto in cui trovano spazio tecniche molto varie che vanno dagli schemi di ragionamento logico/simbolici ai sistemi sub-simbolici come, ad esempio le reti neurali. Eppure, una particolare classi di reti neurali, nota come DNN (Deep Neural Network), ha consentito di risolvere problemi come l’analisi del linguaggio naturale o l’analisi delle immagini con un livello di accuratezza che prima del loro impiego era semplicemente impossibile.
Intelligenza artificiale e apprendimento: le origini e il futuro delle reti neurali
Intelligenza artificiale e reti neurali
Ecco quindi che molti oggi confondono l’intelligenza artificiale con le reti neurali, e se anche questa assimilazione è errata è facile comprenderne il motivo.
Un rete neurale non è altro che un modello matematico che simula la struttura dei neuroni del nostro cervello (limitandosi a simulare la pompa sodio potassio che invia segnali elettrici lungo l’assone e che riescono a propagarsi solo se le sinapsi che collegano l’assone di un neurone ai dendriti di altri neuroni li stimolano a sufficienza da attivare il proprio assone). Si ipotizza che la “conoscenza” di una rete neurale risieda nelle connessioni tra neuroni che nel tempo si rafforzano o si allentano catturando collettivamente “ricordi” di segnali già visti.
In principio fu il percettrone
Già negli anni quaranta McCulloch e Pitts proponevano una macchina chiamata “percettrone” che poi fu realizzata come programma in esecuzione su un computer nel 1958 da Frank Rosenblatt. L’idea di riprodurre il funzionamento del cervello umano non è quindi recente, ma vari limiti, teorici prima, e successivamente computazionali, hanno richiesto a queste idee oltre sessant’anni per maturare completamente e ottant’anni dalla prima formulazione ai giorni nostri.
Le reti neurali vengono spesso rappresentate come una serie di livelli di “neuroni” interconnessi tra di loro, una tabella di pesi indica quanto la connessione tra due neuroni sia forte. Quando la rete riceve degli stimoli dal livello di input ciascun neurone si attiva (o meno) inviando segnali ai neuroni connessi e ciascuno di essi a sua volta si attiverà se il livello di “attivazione” in input sarà sufficiente.
Lo schema di “apprendimento” dei pesi
Questo schema abbastanza semplice da descrivere si trasforma in realtà in molte formule matematiche, necessarie non solo a regolare il funzionamento di una rete neurale, ma anche ad aggiustare i pesi durante la cosiddetta fase di apprendimento: alla rete vengono presentate delle coppie (input, output) e i pesi vengono aggiustati in modo che l’output della rete sia il più vicino possibile a quello desiderato in presenza dell’input.
Questo schema di “apprendimento” dei pesi è quello che a partire dalla seconda metà degli anni ’80 ha stimolato la ricerca sulle reti neurali dopo una battuta di arresto che le aveva quasi condannate a scomparire.
In sostanza quindi, volendo formarsi un’idea semplice di cosa sia una rete neurale, si tratta di un modello matematico capace di analizzare coppie di (input, output) e cercare una relazione espressa in termini dei pesi delle connessioni dei neuroni in modo tale che la rete “generalizzi” la connessione tra queste coppie e tutte le coppie ad esse simili. Gli anni ’90 hanno sfruttato queste idee per sviluppare dei sistemi OCR robusti capaci di apprendere diverse forme di scrittura per il riconoscimento del testo all’interno di immagini.
Queste reti neurali hanno il difetto però di limitarsi ad apprendere una “funzione” che colleghi input ed output, senza però essere capaci di evolvere nel tempo. È necessario infatti qualche meccanismo di “retroazione” che, come succede a noi, sappia “valutare” l’esito di un’azione nel mondo e possa quindi “correggere” eventuali errori di apprendimento (errori oppure comportamenti non più desiderabili a causa dell’evoluzione del mondo).
Dieci anni fa, l’AI imparò a giocare ai videogiochi
Nel 2013 viene presentato un articolo scientifico al workshop NIPS su come si potessero usare tecniche di apprendimento con rinforzo per realizzare una rete neurale capace di imparare a giocare a videogiochi in stile Atari senza conoscenza pregressa, limitandosi a giocare a caso e a reagire all’esito di una mossa aggiornando la propria conoscenza. La libreria ConvNetJS sviluppata da un dottorando di Stanford ha una demo molto convincente di questo approccio che mostra un campo da gioco dove il nostro giocatore deve andare in giro cercando di mangiare cibo (cerchi arancioni) ed evitare il veleno (cerchi verdi).
L’evoluzione nel tempo delle reti neurali
Uno degli aspetti chiave del nostro pensare è la nostra capacità di analizzare l’evoluzione del mondo al passare del tempo. I nostri cervelli non si limitano a valutare situazioni puntuali, ma analizzano come evolve il mondo nel tempo. Alain Berthoz nel suo saggio “Le sense du movement” arriva a teorizzare che il cervello umano sia una sorta di macchina del tempo capace di predire il futuro prossimo (capacità che lui individua come il nostro “sesto senso” ovverosia quello del movimento).
È normale quindi che i ricercatori che studiano le reti neurali abbiano cominciato a studiare con sempre maggior attenzione modelli di reti neurali capaci di catturare le ricorrenze in serie temporali di dati: in una serie di dati un valore rilevato dipende dai precedenti, è per questo che i meteorologi collezionano serie di dati sulle temperature in tutto il mondo, così possiamo valutare o prevedere il valore della temperatura come parte di una serie di dati che cambia nel tempo.
Per poter generare sequenze di valori come predizione di una rete neurale è quindi necessario introdurre un ciclo di retroazione in modo che il comportamento della rete non dipenda solo dall’input ma anche dall’ultimo output generato (vedi figura).
Per la modellazione matematica di questo tipo di reti non è infrequente rivolgersi al calcolo differenziale, nato per cercare di modellare processi che mettono in relazione una quantità e la sua variazione nel tempo. Le equazioni differenziali trovano numerose applicazioni nel campo della fisica, ma si prestano anche a modellare l’evoluzione temporale di una rete neurale.
Le reti neurali “liquide”
A fine 2020 un gruppo di ricerca del MIT ha proposto un modello di reti neurali denominate Liquid Time constant-Networks, una forma di reti neurali ricorsive adatte a creare reti neurali capaci di evolvere il proprio comportamento in base all’evoluzione di serie di dati temporali, consentendo di realizzare sistemi capaci di evolvere durante l’esecuzione di compiti come, ad esempio, la guida autonoma di un veicolo o prevedere il tempo.
Per la loro descrizione i ricercatori hanno fatto uso di equazioni differenziali, e in particolare di una forma la cui soluzione matematica sfuggiva ai matematici dal 1907. I computer sono molto bravi a simulare le equazioni differenziali semplicemente simulando il processo da esso descritte, ma da un punto di vista computazionale questo processo di simulazione richiede numerosi calcoli e quindi molta capacità di calcolo. Per inquadrare il problema pensiamo a un po’ di fisica del liceo: data l’equazione differenziale del moto parabolico di un proiettile possiamo simulare il moto del proiettile calcolando ad ogni istante simulato la sua nuova posizione e velocità, oppure possiamo risolvere l’equazione e chiedere alla soluzione posizione e velocità ad un dato istante senza dover effettuare tutti i calcoli dal tempo iniziale all’istante desiderato.
I ricercatori del MIT hanno trovato la soluzione all’equazione differenziale usata per implementare questa nuova forma di reti neurali ricorsive, consentendo un’implementazione tremendamente efficiente delle stesse, capace di ridurre in modo significativo il carico computazionale necessario al loro funzionamento e aprendo di conseguenza nuovi scenari e ambiti di applicazione di queste tecniche sempre più pervasive.
Conclusioni
C’è da aspettarsi in futuro, anche grazie ai risultati pubblicati dal MIT, che sempre più spesso i sistemi che usiamo “evolvano” il proprio comportamento adattandosi all’ambiente che analizzeranno come serie temporali di dati, consentendo la realizzazione di dispositivi che sembreranno più intelligenti poiché capaci di adattarsi. Resta da vedere se si possa parlare di vera e propria intelligenza, ma in ogni caso porteranno allo sviluppo di macchine ancora più flessibili nello svolgere compiti che erano prerogativa dell’uomo. Non resterà altro che evolverci anche noi per evitare che le macchine prendano il nostro posto nei processi produttivi, ma ancora una volta sta a noi uomini essere protagonisti del nostro futuro.