Una rete neurale si identifica con l'hardware o con il software? So che una rete neurale è un sistema "cibernetico" che è in grado di imparare dagli errori come un'intelligenza artificiale, essa simula in qualche modo i neuroni e le connessioni che li collegano; unità componenti del sistema che comunicano tra loro. Non mi è chiaro di cosa si tratti in concreto. Vorrei sapere anche: quali sono le possibilità e i limiti, allo stato attuale, di una rete neurale? Non mi riferisco solo alle sue applicazioni, ma alla capacità di calcolo e alla possibilità che si evolva in un intelligenza in grado di creare autonomamente delle soluzioni che risolvano i problemi dell'uomo.
Per capire in concreto con cosa si identifichi e quali siano i limiti di una rete neurale è utile innanzitutto sfatare alcuni miti associati a questo tipo di strutture. Questi miti sono in parte il frutto dell'esplicito riferimento che le reti neurali fanno ai sistemi nervosi biologici e in parte dipendono dalla storia della loro affermazione come alternativa agli approcci simbolici per la sintesi di sistemi intelligenti.
Non appena, verso la metà del secolo scorso, si sono resi disponibili calcolatori programmabili sufficientemente potenti, scienziati e ingegneri hanno cercato di utilizzarli per realizzare macchine in grado di eseguire compiti e risolvere problemi che fino a quel momento potevano essere svolti e risolti solo da un essere umano. I primi successi in questa impresa sono stati ottenuti grazie a programmi di intelligenza artificiale. Tali programmi si basavano sulla scomposizione del problema e sulla definizione di una serie di regole operative e di criteri di applicazione delle regole. Ben presto ci si è resi conto che molti compiti che gli esseri umani riescono a svolgere senza difficoltà, non si prestano ad essere automatizzati seguendo questo approccio, ispirato alle facoltà cognitive superiori degli esseri umani quali la manipolazione di simboli e di regole verbali. Ad esempio, volendo realizzare un sistema automatico di smistamento della corrispondenza, ci si trova a dover risolvere il problema del riconoscimento degli indirizzi. Dato che questi possono essere scritti a mano o a macchina con calligrafie o formati di carattere estremamente variabili, è difficile definire una serie di regole che permetta di riconoscere, ad esempio, una lettera “A” in tutte le forme e contesti in cui può apparire all'interno di un indirizzo.
Come reazione a queste difficoltà dell'approccio simbolico basato sulla manipolazione di regole è salito alla ribalta l'approccio basato sulle reti neurali (detto anche approccio “connessionista”). Al contrario dell'approccio simbolico, l'approccio connessionista si ispira a quelli che appaiono come i costituenti più semplici su cui si fondano le facoltà cognitive umane, ovvero, le cellule del sistema nervoso (i neuroni biologici). Le reti neurali utilizzano dei modelli molto semplificati dei neuroni biologici e delle reti che essi formano. Ogni neurone artificiale possiede alcuni ingressi e un'uscita e realizza tipicamente una semplice funzione matematica che associa un valore del segnale di uscita ai valori dei segnali di ingresso. Questa funzione riproduce in modo semplificato la trasformazione tra i segnali di ingresso e il segnale di uscita dei neuroni biologici. Le connessioni tra i neuroni artificiali che compongono una rete neurale sono caratterizzate da un valore numerico che moltiplica l'ampiezza del segnale di uscita di un neurone prima di presentarlo in ingresso a un altro neurone. Questi valori numerici sono chiamati “pesi sinaptici” perché il loro effetto simula a un livello elementare l'efficacia dei collegamenti sinaptici tra neuroni biologici. L'apprendimento di una rete neurale si realizza in genere grazie ad algoritmi che modificano i pesi sinaptici al fine di produrre la relazione desiderata tra i segnali che arrivano alla rete neurale dall'esterno e i segnali che l'intera rete neurale produce in uscita.
Sono state proposte molte strutture di rete neurale e molti algoritmi di apprendimento che hanno permesso di risolvere molti problemi che l'approccio simbolico non è in grado di trattare. Ad esempio, utilizzando l'approccio connessionista, è stato possibile risolvere il problema del riconoscimento degli indirizzi descritto in precedenza, utilizzando algoritmi che si basano sulla semplice presentazione alla rete neurale di una collezione di esempi preventivamente classificati da un operatore. Un aspetto caratteristico dell'approccio connessionista è il fatto di produrre un sistema che risolve il problema senza invocare delle regole esplicite di risoluzione, ad esempio, nel caso della classificazione degli indirizzi, delle regole per il riconoscimento dei caratteri. Questo fatto ha contribuito inizialmente ad alimentare il mito delle reti neurali come oggetti capaci di replicare in modo suggestivo e misterioso certe capacità cognitive umane.
Col passare degli anni e con l'approfondirsi delle riflessioni sulle reti neurali, a questa visione ingenua delle reti neurali si è andata progressivamente sostituendo una visione meno romantica e una migliore comprensione del tipo di soluzione che le reti neurali rappresentano. Ad esempio, quello del riconoscimento degli indirizzi è stato riconosciuto come un problema intrinsecamente probabilistico che non ammette in generale una soluzione univoca ma piuttosto diverse ipotesi a cui sono associati diversi gradi di plausibilità e di incertezza. Dunque, da un lato non sorprende che metodi simbolici basati su regole rigide non siano in grado di risolvere il problema; dall'altro si riconosce nella rete neurale che risolve il problema, una funzione che associa a ogni indirizzo la sua interpretazione più plausibile, date le premesse implicite nella struttura della rete e nell'algoritmo di apprendimento e l'informazione esplicita costituita dalla collezione di esempi. Si comprende anche che, in questo contesto, l'utilità della rete neurale consiste nella sua capacità di realizzare potenzialmente un insieme molto ampio di funzioni utilizzando un numero tutto sommato modesto di parametri (i pesi sinaptici). Un discorso simile si può fare per gli altri esempi di reti neurali, problemi e metodi di apprendimento menzionati da Orazio Miglino nella sua risposta a un'altra domanda a "Ulisse".
Questa lunga premessa aiuta finalmente a capire che le reti neurali non si identificano né con l'hardware né col software. Sono semplicemente uno strumento concettuale efficace per la rappresentazione di certe strutture computazionali e associative e per la definizione di algoritmi di apprendimento per queste strutture. Naturalmente la realizzazione pratica di queste strutture implica un'implementazione in un sistema fisico. Questo può essere un calcolatore programmabile. In tal caso si ha un'implementazione software della rete neurale in termini di istruzioni che realizzano le funzionalità corrispondenti ai neuroni e alle connessioni tra di essi. In alternativa, si possono costruire dei circuiti elettronici che realizzano le funzionalità dei neuroni e delle connessioni e si ha un'implementazione hardware della rete neurale. Il vantaggio dell'implementazione software è una flessibilità molto maggiore nella scelta del modello di neurone, della connettività della rete, e dell'algoritmo di apprendimento. Questo vantaggio si ottiene di solito a scapito della velocità e dell'efficienza con cui la rete neurale può essere implementata, che è potenzialmente molto maggiore nel caso di un'implementazione hardware. In particolare, un'implementazione hardware può sfruttare appieno il parallelismo intrinseco in molti tipi di rete neurale, al contrario delle implementazioni software che, tipicamente, sono eseguite da calcolatori programmabili che realizzano un grado modesto di parallelismo.
Come testimonia l'esempio del riconoscimento degli indirizzi descritto poc’anzi e gli esempi menzionati da Orazio Miglino nella risposta già citata e da Alessandro Treves nella sua risposta a un'altra domanda rivolta a “Ulisse”, le reti neurali sono attualmente in grado di risolvere utilmente problemi di notevole interesse che non si riescono a risolvere con l'approccio simbolico. In compenso l'approccio connessionista non sembra particolarmente indicato per affrontare il tipo di problemi che l'approccio simbolico permette di risolvere. In questo senso attualmente l'approccio connessionista e quello simbolico si possono considerare complementari nella loro capacità di risolvere problemi. Purtroppo, allo stato attuale, i due approcci hanno in comune una capacità molto limitata di porsi autonomamente dei problemi e di crearne autonomamente le soluzioni. Nel caso delle reti neurali odierne è necessario nella maggior parte dei casi che un operatore umano definisca il problema e stabilisca gli obiettivi e l'algoritmo di apprendimento.
C'è naturalmente un grande interesse per la realizzazione di sistemi in grado di apprendere autonomamente a risolvere dei problemi definiti in termini molto generali, ad esempio, in termini di utilità per gli esseri umani. Un approccio molto promettente in questa direzione si basa sull'uso di reti neurali dotate di un “sistema di valori” e di un meccanismo di apprendimento legato agli esiti dell'attività della rete relativamente a tale sistema di valori. Questo tipo di rete neurale comprende degli elementi ispirati ai meccanismi di neuromodulazione che si osservano nei sistemi nervosi biologici e che svolgono un ruolo cruciale nell'orchestrazione dell'apprendimento spontaneo delle reti nervose biologiche. Nella formulazione stessa di quest’idea si rivela però la necessità di dotare la rete neurale della possibilità di produrre degli effetti. In altre parole, è necessario dotare il ”cervello artificiale” di un “corpo” che gli permetta di agire sull'ambiente e di valutare gli effetti delle sue azioni. Corpo e ambiente vanno intesi in senso generalizzato. Può trattarsi di elementi del mondo fisico o di elementi virtuali definiti all'interno di una simulazione e non è necessario che somiglino al corpo e all'ambiente di un essere umano.
Una difficoltà del metodo appena descritto è il fatto di richiedere la definizione di un sistema di valori capace di indurre la manifestazione dei comportamenti auspicati. Per comportamenti complessi questo compito appare estremamente difficoltoso per un operatore umano. Una possibile soluzione consiste nell'imitare la natura ancora una volta, definendo degli obiettivi a un livello molto astratto e lasciando che sia un processo di evoluzione artificiale (a livello individuale e culturale) a plasmare il sistema di valori necessario a raggiungere gli obiettivi. Finora si sono fatti solo i primi timidi passi in questa direzione e non è chiaro se e in che tempi questo approccio possa portare alla creazione di sistemi con un'autonomia e intelligenza paragonabile a quella di un essere umano. In particolare, non è ancora chiaro fino a che punto sia possibile determinare gli esiti di un processo evolutivo e di apprendimento artificiale quando gli obiettivi vengono definiti a un livello molto astratto.
Laureata in Chimica e con un dottorato in Scienze Chimiche, Laura Maria Raimondi insegna e svolge ricerche presso la Facoltà di Scienze Matematiche, Fisiche e Naturali dell'Università di Milano. Attualmente si occupa di modellistica molecolare, vale a dire della simulazione, con metodi computazionali, della struttura e del comportamento dinamico di molecole organiche e di biomolecole, nonché della loro reattività.