LE RETI NEURALI ARTIFICIALI

 

LE PRESTAZIONI ATTUALI DEI COMPUTER, VELOCI MA STUPIDI?

I computer sono in grado di eseguire elaborazioni o procedure automatiche in modo molto efficiente. Nella maggior parte dei compiti essi offrono prestazioni indubbiamente superiori a quelle umane,
ad esempio un sistema elettronico esegue calcoli matematici o recupera informazioni da una base di dati in modo estremamente veloce. Eppure, processi apparentemente molto semplici quali il ragionamento simbolico, la modellazione e l’estrazione della conoscenza, la percezione e l’autoapprendimento, - attività tipiche della mente umana - sono estremamente difficili da automatizzare. Per un computer, ad esempio, è molto difficile riconoscere gli oggetti presenti in un’immagine perché pur individuando i contorni percettivamente salienti dovuti alle variazioni di luminosità, non riesce a raggrupparli per definire gli oggetti. Questo processo, detto di segmentazione, è molto difficile da realizzare per un sistema puramente automatico perchè necessita della conoscenza a priori riguardo agli oggetti.
Un altro problema difficilmente affrontabile dai computer è quello del riconoscimento della voce. Un programmatore che voglia costruire un sistema automatico in grado di dattilografare, deve definire a priori i suoni di tutte le parole possibili che si possono presentare al sistema e le corrispondenze tra i suoni ascoltati e le parole che li hanno prodotti. In questo modo quando il computer riceve un suono, lo cercherà in una tabella di corrispondenze e troverà la parola associata. Ora si pensi che il programmatore abbia effettivamente eseguito questo gran lavoro: abbia fatto pronunciare ad un parlatore le parole del vocabolario della lingua italiana associando a ciascun suono la parola corrispondente. In questo modo ha stabilito tutte le associazioni tra un suono e la parola rappresentata. Ora immaginiamo che lo stesso parlatore usi il programma di dattilografia in un periodo di stanchezza o di fretta o con il raffreddore o in presenza di rumori di fondo o masticando una gomma americana. In queste situazioni egli pronuncia alcuni suoni leggermente diversi rispetto al solito, suoni che il computer non riconosce perché non ha mai ‘sentito’ prima ovvero non ritrova quei suoni nella sua tabella di corrispondenze. Più in generale le difficoltà nel riconoscimento vocale automatico sono dovute all’enorme variabilità con cui può presentarsi la medesima frase di parlatori diversi, basti pensare alla differenza di velocità, alla prosodia, al timbro, al rumore di fondo. Ulteriore difficoltà risiede nella separazione delle parole: a volte le pause tra le voci lessicali sono così brevi da non essere riconosciute, alcune parole possono essere erroneamente interrotte per la presenza di consonanti occlusive sorde, come ad esempio la ‘p’, che sono interpretate come pause.
Ancora più difficile per un computer è capire il significato di una frase ovvero estrarre il contenuto semantico da un insieme di simboli. Questa difficoltà è dovuta al fatto che non esiste una corrispondenza univoca tra concetto e parole: lo stesso concetto può essere espresso mediante molte combinazioni di parole. Più difficile ancora è recuperare gli stati emotivi più o meno velati nelle frasi quali l’assertività, la rabbia, la perplessità... Se il computer potesse capire il significato delle frasi sarebbe in grado di estrarre informazioni da un articolo scientifico, da un libro o da internet e riassumere un testo.

 

L’INTELLIGENZA ARTIFICIALE

Si avverte quindi la necessità di disporre di sistemi in grado di assolvere a compiti umani quali muoversi in un ambiente, guidare veicoli, formulare diagnosi, prendere decisioni e in generale eseguire operazioni in cui è richiesta esperienza ovvero che siano in grado di emulare le capacità cognitive della mente umana. Questo obiettivo è perseguito da una branca delle scienze informatiche e ingegneristiche che si chiama Intelligenza Artificiale.
Fino ad ora per semplicità abbiamo utilizzato il termine ‘computer’ ma da questo punto in poi con la parola computer intenderemo la struttura fisica che permette l’esecuzione di un programma o algoritmo così come il cervello ospita i processi di elaborazione dell’informazione, decisionali ed esecutivi della mente.
Le ricerche degli ultimi decenni avevano evidenziato che le capacità cognitive simili a quelle della mente emergevano quando si costruiva una struttura di elaborazione la cui topologia riproduceva quella del cervello umano cioè avente molte unità di elaborazione elementare interconnesse. Tali strutture prendono il nome di ‘reti neurali artificiali’ e possono essere costruite fisicamente tramite circuiti elettronici, neuroni biologici interfacciati a circuiti elettronici, oppure simulate mediante programmi per computer e quest’ultimo costituisce il modo più flessibile di utilizzarle. In generale le reti neurali artificiali sono costituite da unità interconnesse, dette nodi o neuroni artificiali, che effettuano poche e semplici operazioni di elaborazione, precisamente sommano i valori pesati presenti al loro ingresso e altri valori fissi detti ‘bias’, poi mappano in uscita tale somma mediante una funzione detta di trasferimento o di attivazione. La funzione di attivazione, che può introdurre non linearità, determina i valori in uscita di un neurone.

 

neurone artificiale 

 

Figura 1 – La struttura di un neurone artificiale

 

Il neurone artificiale, benché di struttura semplice, è già in grado di elaborare i valori numerici presenti al suo ingresso e di restituire un valore in uscita simulando un processo decisionale. Ad esempio, si supponga di voler decidere se uscire o meno per andare a passeggiare. La decisione sarà influenzata da vari fattori: ambientali, interni e appartenenti al nostro vissuto. A ciascuna condizione sarà associata un’importanza relativa ovvero un peso soggettivo che potrà essere positivo o negativo a seconda che influenzi rispettivamente l’individuo ad intraprendere la passeggiata o a scegliere di restare a casa. Il peso può essere nullo o elevato in valore assoluto a seconda che un determinato fattore sia per l’individuo rispettivamente non importante o molto importante. Tra i fattori ambientali valuteremo, ad esempio, le condizioni atmosferiche e se siamo metereopatici esse influiranno in modo importante sulla decisione finale. Se siamo insicuri sarà determinante avere la compagnia di una persona con la quale uscire altrimenti poco ci importerà di essere soli ovvero assegneremo a questa condizione un peso minimo o nullo. Saranno inoltre influenti le esperienze pregresse: se in un’occasione precedente siamo stati scippati e abbiamo vissuto traumaticamente l’evento, il ricordo concorrerà a farci rimanere a casa, quindi avrà un peso elevato e negativo. Se non abbiamo vissuto traumaticamente l’evento dello scippo questo sarà poco influente per la decisione attuale. Al contrario se durante una passeggiata precedente avevamo conosciuto una persona piacevole, saremo motivati ad uscire, valutando probabile l’evento di rincontrare altre persone che ci restituiscano un’emozione positiva. Tornando al parallelismo con il neurone artificiale, i suoi ingressi rappresentano le condizioni oggetto di valutazione, i coefficienti che moltiplicano i valori di ingresso rappresentano l’interpretazione e l’importanza soggettiva che associamo agli eventi. L’influenza di un fattore nel condizionare il processo decisionale è modellizzata da un peso, che sarà di valore positivo o negativo a seconda che incentivi o blocchi la motivazione dell’individuo ad agire o ad assumere su di se un proponimento. Il bias e una funzione di trasferimento a gradino provvedono a formare i valori in uscita che saranno ad esempio 0 o 1 se la decisione è rispettivamente quella di restare a casa o di uscire. Un neurone artificiale avente una determinata configurazione di pesi simulerà il processo decisionale di un individuo in un certo momento della sua vita.
I neuroni di una rete neurale artificiale sono organizzati in strati. Tipicamente si distinguono tre strati: quello di ingresso è costituito da neuroni direttamente connessi con gli ingressi del sistema, quello intermedio connette le uscite dei neuroni del primo strato con gli ingressi dei neuroni dello strato di uscita, infine allo strato di uscita appartengono i neuroni direttamente connessi con le uscite del sistema.

 

rete neurale 

Figura 2 – Struttura di una rete neurale artificiale.

 

Qui consideriamo reti in cui il segnale si propaga in un solo verso dallo strato di ingresso a quello di uscita e completamente connesse ovvero in cui le uscite di ogni nodo sono collegate a tutti gli ingressi dei neuroni dello strato successivo. Esistono reti non completamente connesse e reti in cui l’uscita di un nodo si connette a nodi appartenenti a strati più a monte. Le reti si distinguono a seconda delle funzioni di trasferimento implementate dai neuroni e per la loro struttura topologica ovvero per il numero di strati, il numero di neuroni ad ogni strato e la disposizione delle connessioni. Diversi tipi di reti si adattano a scopi diversi.

 

L’APPRENDIMENTO DI UNA RETE NEURALE ARTIFICIALE

Una rete neurale appena costruita ha una struttura predefinita dal programmatore, tale per cui ai pesi delle connessioni e ai bias vengono associati valori casuali. Essa non è ancora in grado di assolvere a compiti specifici ma sarà più adatta a determinate funzioni così come un bambino appena nato non può vantare alcuna esperienza ma la struttura del suo cervello presenta delle predisposizioni di origine genetica. Una rete che parte da pesi e livelli di attivazione arbitrari è utile a simulare l’emergere di un comportamento o di un’abilità attraverso meccanismi di associazione tra un ingresso e uscita.
Affinché la rete possa eseguire elaborazioni utili deve essere addestrata e questo avviene presentandole numerosi esempi di funzionamento del sistema reale da modellizzare. La rete ricava i concetti dagli esempi forniti e sarà in grado di dare risposte anche in corrispondenza di ingressi mai visti prima, questa caratteristica viene definita capacità di generalizzazione. Proprio come un bambino imparerà ad estendere i suoi apprendimenti e ad agire autonomamente grazie alle esperienze di gioco e in seguito alle retroazioni dei genitori. Le reti neurali emulano i due processi che avvengono nella mente quando giunge uno stimolo. Quando il cervello riceve uno stimolo attiva percorsi neurali che recuperano concetti precedentemente memorizzati appartenenti alla stessa categoria (riconoscimento dello stimolo); nel momento in cui una categoria è rievocata essa viene rimodellata dallo stimolo (apprendimento e rimodellazione di categoria). Allo stesso modo uno stimolo all’ingresso di una rete neurale artificiale in fase di apprendimento evoca una risposta basata sui valori delle variabili da cui è composta. Le variabili interne vengono modificate affinché la rete si avvicini maggiormente alla risposta attesa relativamente all'input appena elaborato.
Con il metodo dell’apprendimento tramite esempi si potrebbe formare un medico a formulare le diagnosi solamente fornendogli tante corrispondenze tra i sintomi e la patologia che li genera. Fornendo a una rete di adeguata complessità un numero sufficiente di associazioni tra sintomi e patologia, questa acquisirebbe esperienza e si comporterebbe come un medico artificiale ovvero un sistema esperto in grado di formulare le diagnosi. Si pensi quale capacità essa accumulerebbe se venisse addestrata sommando l’esperienza dei migliori medici del mondo. Un medico che cessa la sua attività non mette più a disposizione della comunità la sua esperienza che possiamo presumere abbia raggiunto l’apice. Egli viene sostituito da un nuovo medico che seppur in gamba dovrà formare la propria esperienza per prove ed errori, incorrendo in limiti, fallimenti e mancanze. Naturalmente non si sostiene qui di poter sostituire il medico con una macchina ma sarebbe utile fornire al clinico un ‘parere artificiale’ basato sull’esperienza di moltissimi medici.
Un altro esempio: supponiamo di voler costruire un algoritmo a rete neurale artificiale che sappia riconoscere i volti da un’immagine. Lo stesso volto può apparire da un gran numero di angolazioni, presentarsi in diverse dimensioni e condizioni di illuminazione quindi la rete deve riconoscere tutti i volti appartenenti alla stessa persona e quelli di persone diverse. Come specificato in precedenza, un normale algoritmo riconoscerebbe solo le immagini inserite dal programmatore. Un algoritmo che implementa una struttura a rete neurale è in grado di riconoscere anche le immagini in cui il volto si presenta con nuove angolazioni, questo grazie alla conoscenza che ha ricavato dagli esempi somministrati in fase di addestramento.
Tecnicamente l’apprendimento è eseguito da un algoritmo che, come un insegnante, provvede a fornire gli esempi in ingresso e a modificare i pesi delle connessioni e i bias affinché le uscite della rete seguano il più fedelmente possibile i dati. Questo procedimento imita la plasmabilità del cervello umano ovvero la variazione dello spessore della sinapsi che può variare nel tempo rafforzando o indebolendo il collegamento tra due neuroni in seguito agli stimoli ambientali. Dal punto di vista matematico addestrare una rete neurale significa trovare il minimo assoluto della sua funzione di errore. Poiché tale funzione ha molte dimensioni e la rete è un sistema non lineare, non è possibile conoscerla analiticamente e la ricerca del minimo assoluto può terminare con la restituzione del minimo relativo più ‘vicino’ a quello delle condizioni di partenza.
All’addestramento segue il test ovvero la somministrazione alla rete di esempi mai visti ma di cui l’operatore conosce i risultati. Confrontando i risultati della rete con quelli aspettati, si valuta se essa ha imparato a risolvere il problema. Mentre è sempre possibile addestrare al meglio una rete neurale, il corretto esito dell’addestramento non garantisce un funzionamento soddisfacente in fase di test, momento in cui essa elabora dati mai visti. Se il test non è soddisfacente si ripetono tutte le procedure iniziando con una nuova assegnazione di valori casuali ai pesi e ai bias, l’addestramento e il test. Poiché l’apprendimento dipende dalle condizioni iniziali ovvero dai valori dei pesi e dei bias stabiliti prima dell’addestramento, ripetendo gli addestramenti con i medesimi esempi ma variando le condizioni iniziali si ottengono reti in grado di svolgere diversi compiti. La dipendenza delle soluzioni dalle condizioni iniziali è dovuta alla non linearità della rete. Questa proprietà non deve essere vista come un problema, ma come un elemento che attribuisce flessibilità al sistema e gli permette di raggiungere molti assetti ovvero molte soluzioni, dette anche attrattori. Se i risultati continuano a non essere soddisfacenti si modifica l’architettura della rete, ad esempio aumentando il numero dei nodi. In generale maggiore è il numero dei nodi maggiore è il potere computazionale della rete ma all’eccessivo aumentare di essi diminuisce la capacità di generalizzare sugli esempi forniti e la ragione è intuibile: avendo più nodi si hanno a disposizione più parametri ma pochi esempi per vincolarli. In generale non è nota a priori l’architettura di una rete che più si adatta a un determinato scopo quindi si devono sperimentare diversi cicli di addestramento e test su diverse architetture. E’ interessante notare che alcuni protocolli di apprendimento provvedono alla modifica automatica della struttura delle connessioni della rete e questo ha una corrispondenza diretta con la neurobiologia. Esistono algoritmi che implementano reti che si costruiscono da sole ovvero aumentano il numero dei nodi quando necessario (self growing – apprendimento competitivo).
Può succedere che la rete che la rete non risulti mai soddisfacente in fase di test e in questo caso il problema va imputato a un numero insufficiente di esempi in fase di addestramento, esempi non rappresentativi del fenomeno, contraddittori o imprecisi. Esistono tipi di apprendimento con rinforzo e senza supervisione ma non verranno trattati. L’elaborazione dell’informazione all’interno della rete avviene in modo parallelo e ogni nodo può produrre effetti eccitatori o inibitori sugli altri. La conoscenza ovvero le rappresentazioni interne della rete non vengono immagazzinate all’interno di specifiche unità ma sotto forma di configurazioni di connessioni tra unità.

 

VANTAGGI E SVANTAGGI DELLE RETI NEURALI ARTIFICIALI

Ora possiamo chiederci quali sono i vantaggi e gli svantaggi dell’utilizzo degli algoritmi che implementano le reti neurali. I tipi di rete che qui abbiamo trattato sono vantaggiosi quando si conoscono poche corrispondenze tra ingressi e uscite di un sistema, quando non è possibile stabilirne le corrispondenze matematiche e quando si hanno ingressi imprecisi perché affetti da rumore o distorti.
Le reti neurali inferiscono le relazioni di causa ed effetto tra i dati semplicemente apprendendo dagli esempi, sono in grado di categorizzare ovvero creare un assetto interno che dia un significato ai raggruppamenti dei dati visti in fase di apprendimento, successivamente sono in grado di generalizzare ovvero fornire le risposte per ingressi mai visti. Sono abbastanza robuste al rumore e tolleranti ai guasti, quest’ultima proprietà fa sì che esse funzionino anche quando alcuni nodi si guastano. Uno degli svantaggi è che esse costituiscono una scatola nera ovvero funzionano ma non si sa quali ragionamenti abbiano sviluppato per arrivare ai risultati, in altre parole, modellizzano la realtà ma non la spiegano quindi non forniscono conoscenza sul sistema reale. Il tempo di addestramento è proporzionale al numero di nodi quindi reti con molti elementi possono essere computazionalmente molto pesanti da trattare. Questo limita il numero di nodi con i quali costruire una rete e quindi la complessità ottenibile. Finché non avremo computer ed elevate prestazioni e algoritmi di addestramento più efficienti non potremo emulare il cervello che si stima avere circa 10 miliardi di neuroni ciascuno con migliaia di connessioni.
Si spera trascorra ancora molto tempo prima di poter ottenere sistemi intelligenti e quindi avere a che fare con la loro autocoscienza.

 

LA VITA ARTIFICIALE

Le reti neurali artificiali costituiscono un modo per simulare l'intelligenza artificiale. Dall'intelligenza artificiale deriva la vita artificiale, un settore di ricerca che simula il comportamento di organismi ed ecosistemi per capire come si svolgono i processi evolutivi. Gli automi cellulari sono esempi di vita artificiale che simulano le attività vitali in diversi ambienti. Essi sono programmati per riprodurre processi vitali quali mangiare, spostarsi per cercare il cibo, difendersi da altri automi e autoreplicarsi. Le simulazioni evidenziano dinamiche evolutive quali ad esempio l’aumento spontaneo di complessità, la competizione e l’associazione.

 

RETI NEURALI IN PSICHIATRIA

Le reti neurali artificiali sono i modelli di simulazione utilizzati dai connessionisti per studiare i processi cognitivi. Essi sostengono che per studiare i processi alla base dell’agire umano bisogna riprodurre i meccanismi fisici con cui l’informazione è elaborata ovvero si deve riprodurre la struttura del cervello con le sue unità interconnesse e l’elaborazione parallela. In altre parole essi cercano di mettere in relazione l’architettura fisica del cervello con l’architettura funzionale dell’attività cognitiva. Quindi nella rete neurale così come nel cervello non si possono individuare aree fisiche in cui sono memorizzate le informazioni perché esse sono distribuite fra le connessioni delle varie unità; inoltre l’elaborazione della conoscenza distribuita attiva contemporaneamente tutte le unità della rete.
Al connessionismo, che è una forma del cognitivismo, si oppone il simbolismo secondo il quale l’attività mentale è puro calcolo cioè manipolazione di simboli. Secondo i simbolisti la conoscenza del mondo viene convertita in rappresentazioni mentali ovvero in simboli che costituiscono il linguaggio del pensiero. Nel cervello sarebbe possibile individuare aree fisiche corrispondenti a moduli di elaborazione, alcuni moduli servirebbero ad esempio per convertire le percezioni in rappresentazioni.

 

UN’APPLICAZIONE DELLE RETI NEURALI ALLE ORGANIZZAZIONI DI SIGNIFICATO PERSONALE

Abbiamo sviluppato un programma che può essere di ausilio all’individuazione delle organizzazioni di significato personale. Tale strumento elabora le risposte date dai soggetti a un questionario di 68 domande aventi ciascuna 5 risposte possibili e predice gli stili di personalità. Il gruppo del Prof Nardi ha creato un questionario in parte estraendo alcune domande dal questionario MMPI (Minnesota Multiphasic Personality Inventory) in parte aggiungendo nuove domande. A questo punto si trattava di stabilire le corrispondenze tra le 340 risposte del questionario e gli stili di personalità ovvero attribuire un peso a ciascuna risposta. In realtà la corrispondenza tra risposte e personalità non è lineare perché alcune risposte sono riferite a più stili di personalità e altre non si possono considerare singolarmente ovvero il valore da assegnare a una risposta dipende anche da altre risposte. In questa situazione si dovrebbero stabilire tutte le corrispondenze tra le combinazioni di risposte, cioè circa un miliardo e mezzo (685) di modi per rispondere al questionario, e le diverse gradazioni degli stili di personalità.
Per affrontare questo problema si è utilizzato un algoritmo a rete neurale artificiale che stabilisse tutte le corrispondenze apprendendo da alcune corrispondenze note ovvero ricavate attraverso la valutazione clinica eseguita su quanti più volontari possibili. La rete neurale artificiale è stata implementata nel server del Gruppo di Biologia Computazionale dell’Istituto di Biologia e Genetica dell’Università Politecnica delle Marche. Per l’addestramento e il test si avevano a disposizione quasi cento valutazioni cliniche. Questi numeri sono esigui rispetto al miliardo di corrispondenze da stabilire ma si deve tener conto della difficoltà di recuperare volontari e del fatto che sono necessari più colloqui per fornire una singola valutazione. Abbiamo creato una pagina web nel sito pilota www.introni.it da cui è possibile interrogare liberamente la rete da noi addestrata ovvero compilare il questionario e ottenere le predizioni delle organizzazioni di significato personale. Durante la fase di test, seguita all’addestramento, si è verificato che la rete non predice in modo soddisfacente alcune valutazioni cliniche tra quelle che non erano state mostrate durante l’apprendimento e ciò indica che sono necessarie ulteriori valutazioni cliniche per migliorare l’addestramento della rete e la qualità delle predizioni. La qualità delle nostre predizioni è in costantemente miglioramento grazie al numero sempre maggiore di valutazioni cliniche che ci vengono fornite dagli psicologi.

 

BIBLIOGRAFIA

Gori M. Introduzione alle reti neurali artificiali. Mondo digitale. N°4, 2006

Macchi Cassia V. Corso di Psicologia dello Sviluppo Cognitivo, 2004