Reti neurali e vita artificiale
A differenza della biologia, che studia il mondo vivente analizzandolo nelle sue parti ed esaminando come queste interagiscono fra loro, la vita artificiale (VA) indaga i fenomeni del mondo vivente riproducendoli in un sistema artificiale, ovvero mediante simulazioni al computer. Tale studio è condotto a ogni livello di entità biologiche, dalle molecole alle cellule, dagli organi agli organismi, dalle popolazioni alle società, fino agli ecosistemi. Qui sarà illustrato il modo in cui le reti neurali possono essere inquadrate nella prospettiva della VA, oltre la visione connessionista classica, che le considera come semplici sistemi computazionali o di elaborazione dell'informazione. La VA offre un quadro teorico e metodologico unitario con il quale affrontare fenomeni che vanno dalla biologia molecolare e dalla genetica fino alle società umane, passando attraverso il sistema nervoso e il comportamento dell'individuo. Già le reti neurali classiche si muovono in questa direzione, costituendo un insieme di concetti e di modelli ugualmente applicabili ai fenomeni del sistema nervoso, studiati dalle neuroscienze, e a quelli del comportamento e della vita mentale, studiati dalla psicologia. Le reti neurali nella prospettiva della VA fanno un altro passo collegando tra loro, e studiando in una stessa simulazione, fenomeni 'al di sotto' del sistema nervoso e del comportamento, come sono quelli della biologia molecolare, della genetica, della biologia dello sviluppo, e fenomeni 'al di sopra' del comportamento individuale, come quelli studiati dalle scienze sociali.
Questa tendenziale unificazione dello studio dei diversi fenomeni che svolgono un ruolo nella spiegazione del comportamento umano non implica nessun riduzionismo in senso tradizionale. Il quadro teorico di riferimento della VA è quello dei sistemi complessi, cioè dei sistemi formati da un grande numero di elementi che, interagendo tra loro localmente, danno luogo a proprietà globali del sistema non deducibili o prevedibili sulla base di una conoscenza degli elementi e delle leggi che governano le loro interazioni locali. Le neuroscienze studiano gli elementi del sistema nervoso, cioè le cellule nervose e le loro interazioni, le cui proprietà globali costituiscono il comportamento dell'organismo. Una relazione analoga si può postulare, da un lato, tra il livello della biologia molecolare e della genetica e quello del sistema nervoso e di altri organi e sistemi dell'organismo; dall'altro, tra il livello dei comportamenti degli individui e quello delle strutture sociali. In entrambi i casi, una collezione molto ampia di elementi e le loro interazioni danno luogo a comportamenti e a strutture emergenti, cioè non deducibili a partire dagli elementi e dalle loro interazioni. Il carattere non riduzionista della relazione tra i livelli non toglie che la possibilità di analizzare i fenomeni di ciascun livello in termini di fenomeni dei livelli inferiori possa far compiere allo studio del comportamento e delle società umane quegli stessi progressi che sono stati compiuti dalla chimica, da quando è stato possibile identificare i processi fisici sottostanti ai fenomeni chimici, e dalla biologia, da quando si è cominciato ad analizzare i fenomeni biologici in termini chimici.
Le reti neurali sono modelli matematici del sistema nervoso e del comportamento, simulati tramite computer. Esse riproducono alcuni aspetti essenziali della struttura e del funzionamento del sistema nervoso, e le modalità con cui rispondono agli stimoli provenienti dall'esterno vengono proposte come modello del comportamento dell'organismo. Una rete neurale è costituita da un insieme di unità collegate tra loro da connessioni unidirezionali; le unità emulano i neuroni, mentre le connessioni emulano le giunzioni sinaptiche tra i neuroni. Le unità di una rete tipica si dividono in: unità di input, cioè unità con le quali la rete registra la situazione al suo esterno; unità interne, con le quali la rete trasforma l'informazione che giunge dall'esterno; unità di output, con le quali la rete risponde all'informazione esterna. Durante il funzionamento della rete, l'attivazione si propaga dalle unità di input a quelle di output passando attraverso le unità interne. In ogni dato ciclo le unità della rete hanno un livello di attivazione che corrisponde alla frequenza di emissione di impulsi nervosi da parte di un neurone.
Nel caso delle unità di input, tale livello dipende dall'ambiente esterno, mentre per quanto riguarda le unità interne e quelle di output, esso dipende dalle eccitazioni o inibizioni che giungono a un'unità dalle altre unità con cui essa è collegata. Una eccitazione tende ad aumentare il livello di attivazione dell'unità, mentre una inibizione tende a diminuirlo. Le connessioni, oltre a poter essere eccitatorie o inibitorie, possono variare nel loro peso, cioè nel contributo che esse danno alla determinazione del livello di attivazione delle unità. Il peso emula il numero di recettori sinaptici situati sulla membrana esterna del neurone postsinaptico ed è espresso con un numero positivo nel caso in cui la connessione sia eccitatoria, negativo nel caso sia inibitoria. Una unità invia a un'altra unità con cui è collegata una quantità di eccitazione o di inibizione che dipende dal proprio livello di attivazione e dal peso della connessione che collega le due unità.
La somma algebrica delle eccitazioni e delle inibizioni che giungono a una data unità costituisce l'input netto dell'unità, il quale viene trasformato, mediante una determinata funzione matematica (funzione di trasferimento), nel livello di attivazione dell'unità stessa. Tale funzione può variare da una rete all'altra e anche da una unità all'altra della stessa rete (potendo essere una funzione lineare, non lineare, sigmoide, a scalino, ecc.) e costituisce un'importante variabile nel funzionamento di una rete. Un'altra variabile importante è il cosiddetto (soglia di attivazione) associato alle unità interne e a quelle di output. A tale scopo si suppone che all'input netto di queste unità venga fornito un contributo costante, che agisce come soglia di attivazione, tramite una speciale unità (unità di bias) avente valore di attivazione costante e pari a 1 (cioè all'attivazione massima). Poiché il peso della connessione che unisce l'unità di bias a una data unità varia a seconda dell'unità, la soglia di attivazione risulta diversa per le varie unità.
Se immaginiamo che una rete neurale controlli il comportamento di un semplice organismo posto nell'ambiente, le unità di input della rete emulano gli organi sensoriali dell'organismo e le unità di output gli organi motori. L'insieme dei livelli di attivazione delle unità di input (pattern di input) codifica lo stato dei diversi tipi di agenti fisici e chimici (luminosi, sonori, meccanici, termici, odori, sapori) presenti in un dato momento nell'ambiente circostante e a cui l'organismo è sensibile. L'attivazione si propaga dalle unità di input alle unità interne e da queste alle unità di output. L'insieme dei livelli di attivazione delle unità di output (pattern di output) codifica i movimenti con cui l'organismo risponde all'informazione sensoriale proveniente dall'esterno. Ogni rete ha un'architettura costituita dal numero di unità e dallo schema delle interconnessioni. Fra i vari tipi di architetture, l'architettura feedforward (a propagazione in avanti o a catena aperta) è una delle più frequentemente usate nelle ricerche sulle reti neurali. Un'architettura feedforward è formata da un insieme (o strato) di unità di input, da uno strato di unità di output e da uno o più strati intermedi di unità interne o nascoste. Ogni unità di ciascuno strato è connessa con tutte le unità dello strato successivo, a partire dallo strato di input fino a quello di output. In ogni ciclo, l'attivazione si propaga in avanti dalle unità di input ai successivi strati di unità interne fino a raggiungere le unità di output.
A differenza delle architetture feedforward, le architetture ricorrenti presentano connessioni che partono da una data unità e ritornano, direttamente o indirettamente, alla stessa unità. Un tipo di architettura ricorrente può servire a dotare una rete neurale di una memoria a breve termine che conserva una traccia di quanto è avvenuto nei cicli precedenti. In ogni ciclo input-output, il pattern di attivazione delle unità interne viene memorizzato in uno speciale insieme di unità chiamate o 'unità di contesto', collegate alle unità interne tramite normali connessioni. Pertanto, in ogni ciclo, il livello di attivazione delle unità interne, e quindi anche l'output della rete, viene a dipendere non solo dalle unità di input, ma anche dalla traccia dello stato della rete nel ciclo precedente, memorizzata nelle unità di memoria.
Le reti neurali sono modelli capaci di riprodurre, rendere più comprensibili e talvolta predire aspetti importanti del comportamento e dell'apprendimento. Esse sono in grado di cogliere le regolarità sottostanti a una varietà di compiti elementari di categorizzazione, riconoscimento di pattern, associazione e memoria, previsione, mappatura sensomotoria, e così via. Inoltre, le reti neurali dimostrano di avere una serie di proprietà simili a quelle che si osservano negli organismi reali: rispondono in modo appropriato a input deteriorati; ricostruiscono la parte mancante di input parziali; sviluppano forme di rappresentazione interna simili a quelle dei sistemi nervosi reali (per es., i campi recettivi delle unità interne, cioè il modo in cui una singola unità interna risponde ai diversi input possibili); esibiscono, quando il ricercatore danneggia la rete eliminando unità o connessioni, deficit comportamentali simili a quelli di sistemi nervosi che hanno subito lesioni; riflettono il modo in cui il comportamento cambia nel corso dell'apprendimento, inclusi i differenti effetti provocati da danneggiamenti apportati in stadi diversi dell'apprendimento.
Essendo modelli simulati su computer, le reti neurali sono laboratori sperimentali virtuali nei quali si possono controllare e manipolare variabili e osservare le conseguenze di queste operazioni, come nei laboratori reali e addirittura con più gradi di libertà che in questi. Tuttavia una simulazione su computer non è soltanto un laboratorio nel quale fare esperimenti, dovendo anche necessariamente incorporare un modello teorico dei fenomeni che sono oggetto di studio. Inoltre tale modello deve essere formulato con la precisione, l'esplicitezza e il dettaglio necessari affinché esso sia 'capito' dal computer e il programma di elaborazione funzioni a dovere e senza problemi. D'altro canto, le reti neurali, come tutti i modelli simulativi (e, in generale, come tutti i modelli teorici), semplificano rispetto ai fenomeni reali, nel nostro caso rispetto al sistema nervoso e ai comportamenti effettivamente esibiti dagli organismi. Affinché le reti neurali costituiscano dei modelli utili per la comprensione dei fenomeni, è necessario dimostrare che esse incorporano almeno alcuni dei principî essenziali dei fenomeni reali e che è possibile includere progressivamente in esse ulteriori aspetti del sistema nervoso, che si ritengono necessari per capire il modo in cui esso funziona e controlla il comportamento.
Il modo in cui una rete neurale risponde all'input dipende fondamentalmente da due fattori: dalla sua architettura, cioè dallo schema delle interconnessioni, e dal peso di ciascuna connessione. Data una certa architettura e determinati pesi, la rete risponderà a uno stesso input generando sempre il medesimo output. Tuttavia, sia l'architettura che i pesi possono cambiare nel corso della vita dell'organismo, così che il comportamento della rete, cioè il modo in cui la rete risponde all'input, è soggetto a cambiamenti che emulano le fasi di sviluppo e di apprendimento dell'organismo. La distinzione tra sviluppo e apprendimento non è netta. Nello sviluppo, i cambiamenti che avvengono nell'organismo hanno un'importante base genetica, mentre nell'apprendimento i cambiamenti sono soprattutto funzione dell'esperienza dell'organismo. Una procedura di apprendimento frequentemente usata con le reti neurali è la procedura di (error backpropagation). Nelle unità di input della rete vengono codificati uno dopo l'altro i diversi pattern di attivazione, ma, poiché all'inizio dell'apprendimento i pesi delle connessioni sono assegnati a caso, l'output generato in risposta a ciascuno di essi non sarà quello desiderato.
Quando la rete genera un output in risposta a un dato input, a essa viene presentato anche l'output desiderato (input di insegnamento) per quel dato input. La procedura confronta il livello di attivazione calcolato dalla rete per ogni unità di output con il corrispondente livello di attivazione specificato nell'input di insegnamento, e usa la discrepanza tra i due livelli di attivazione (l'errore) per modificare i pesi di quelle connessioni che hanno determinato il livello di attivazione di ciascuna unità di output. Inoltre, la procedura stima l'errore delle unità interne ‒ il cui livello di attivazione contribuisce anch'esso a determinare il livello di attivazione delle unità di output ‒ in modo da poter modificare pure i pesi delle connessioni che hanno determinato il livello di attivazione delle unità interne. Così la procedura attua una retropropagazione dell'errore partendo dalle unità di output fino a raggiungere le unità di input della rete. Le modifiche dei pesi avvengono in modo tale che, attraverso un certo numero di cicli di apprendimento (detti 'epoche'), l'output generato dalla rete in risposta a ciascun input viene gradualmente ad approssimare l'output desiderato. Alla fine l'errore tende a zero e la rete ha acquisito la capacità desiderata.
Una rete neurale, che ha imparato a rispondere nel modo desiderato ai pattern di input a cui è esposta durante l'apprendimento (pattern di addestramento), è in genere capace di rispondere nel modo desiderato anche a nuovi pattern a cui non è stata esposta durante l'apprendimento, ma che coinvolgono la stessa capacità (pattern di generalizzazione o di prova). La dimostrazione che la rete ha acquisito veramente la capacità desiderata consiste proprio nella sua capacità di generalizzare. Rispondendo nel modo desiderato a pattern di input che non ha mai visto prima, la rete dimostra di aver estratto e incorporato nei pesi delle sue connessioni le regolarità presenti nel compito di apprendimento. La procedura di retropropagazione dell'errore consiste in un apprendimento supervisionato, cioè è basata su un input di insegnamento fornito dall'esterno avente lo scopo di specificare, per ciascuna unità di output, quale sia il livello di attivazione desiderato, descrivendo così nei dettagli alla rete il comportamento che ci si aspetta da essa.
In molti casi, tuttavia, un organismo non dispone di un'informazione così specifica sul comportamento desiderato; si può allora ricorrere a un'altra procedura di apprendimento supervisionato, detta 'procedura di rinforzo'. In questo caso, alla rete viene fornita soltanto una valutazione globale sulla qualità del suo output in un ciclo o in una successione di cicli. Questa informazione, che si presenta come un premio o come una punizione, viene utilizzata per modificare i pesi delle connessioni, in modo tale che la rete generi output di qualità progressivamente migliore e quindi apprenda il proprio compito. Oltre alle procedure di apprendimento supervisionato esistono anche procedure di apprendimento non supervisionato. Una di queste è quella che usa la cosiddetta , in base alla quale il peso di una connessione aumenta di valore se i livelli di attivazione delle due unità connesse sono correlati positivamente (sono entrambi alti o entrambi bassi) e viene diminuito se essi sono correlati negativamente (uno è alto e l'altro è basso). Con tale procedura di apprendimento la rete impara a riconoscere ed estrarre le regolarità presenti negli input.
In quanto modelli teorici per lo studio del comportamento, vi sono due modi di considerare le reti neurali. Il primo approccio, che chiameremo 'classico', concepisce le reti neurali come astratti sistemi di elaborazione dell'informazione. Da questo punto di vista le reti neurali non differiscono in maniera essenziale da altri sistemi, come quelli di tipo simbolico, che operano su strutture di simboli trasformandole in base a regole anch'esse espresse mediante simboli. Le reti neurali differiscono dai sistemi simbolici in quanto la loro struttura e il loro modo di funzionare riflettono alcune caratteristiche del sistema nervoso, mentre i sistemi simbolici manipolano simboli in base a regole di tipo logico e linguistico senza interessarsi alla struttura fisica del sistema nervoso. Tuttavia, in entrambi i casi si tratta di sistemi di elaborazione dell'informazione.
Un secondo metodo di considerare le reti neurali le concepisce come modelli di sistemi fisici, nel caso specifico biologici. Questa è la prospettiva della vita artificiale (VA), cioè del tentativo di simulare su un elaboratore elettronico ogni aspetto e fenomeno del mondo vivente. Ovviamente, in quanto esplicitamente ispirate alle caratteristiche del sistema nervoso, le reti neurali sono per definizione parte della VA, dato che il sistema nervoso e il comportamento degli organismi sono prima di tutto fenomeni biologici. Tuttavia, il fatto di vedere le reti neurali in modo esplicito come parte della VA rende le ricerche che usano reti neurali piuttosto diverse dalle ricerche classiche, in cui le reti neurali sono considerate semplicemente come astratti sistemi di trasformazione di input in output. Nella prospettiva della VA una rete neurale viene vista come un modello di un particolare oggetto fisico, il sistema nervoso, che sta dentro un oggetto fisico più grande, il corpo dell'organismo, che a sua volta sta dentro un oggetto di dimensioni ancora maggiori, l'ambiente in cui l'organismo vive e si comporta. Il comportamento viene studiato come risultante non solo dalle interazioni interne tra le unità della rete neurale, ma anche dalle interazioni tra questi tre oggetti fisici. Si cercherà di chiarire, e di esemplificare con simulazioni, in che cosa consiste la prospettiva di ricerca sulle reti neurali che le considera come parte della VA.
La VA ha lo scopo di analizzare i sistemi biologici non per mezzo di studi ed esperimenti biologici, ma creando sistemi artificiali che abbiano almeno alcune delle caratteristiche essenziali dei sistemi biologici reali. Nella maggior parte dei casi ciò comporta la simulazione dei fenomeni su computer, e quindi la costruzione di modelli che possano essere tradotti in programmi di elaborazione. In altri casi, tuttavia, è anche possibile studiare particolari aspetti dei fenomeni biologici, specialmente quelli comportamentali, costruendo dei sistemi fisici controllati da un computer, per esempio dei robot biomorfi, e analizzandone il comportamento. La VA è interessata a ogni fenomeno e aspetto del mondo vivente. Le reti neurali sono modelli del sistema nervoso e del comportamento e pertanto simulano fenomeni che si collocano al livello degli organismi pluricellulari. Ma studiare le reti neurali in una prospettiva di VA, diversamente da quanto accade con le reti neurali classiche, significa tenere esplicitamente conto delle relazioni tra il livello degli organismi e i livelli inferiori (cellule e molecole) e superiori (insiemi di organismi).
Una rete neurale può codificare nelle sue unità di input non solo stati dell'ambiente esterno, ma anche stati interni del corpo, e può codificare nelle sue unità di output non solo movimenti rivolti verso l'esterno, ma anche modificazioni dello stato interno del corpo. Inoltre, la ricerca biologica sta dimostrando sempre più dettagliatamente che all'interno del corpo vi sono importanti interazioni tra il sistema nervoso e almeno due altri sistemi, quello endocrino-ormonale e quello immunitario, e che queste interazioni hanno un ruolo cruciale nel determinare importanti aspetti del comportamento dell'organismo. Una rete neurale, pertanto, deve essere in grado di recepire i messaggi che le vengono inviati dal sistema ormonale e da quello immunitario e di generare messaggi da indirizzare verso questi due sistemi.
Inoltre, le reti neurali viste nella prospettiva della VA vivono in un ambiente fisico (simulato), a differenza di quelle classiche per le quali l'ambiente è costituito esclusivamente dal ricercatore che le crea e le addestra. Il ricercatore decide quali sono le caratteristiche generali dell'ambiente all'inizio della simulazione, ma è poi l'ambiente, non il ricercatore, che determina di volta in volta l'input della rete e che 'valuta', mediante input di insegnamento o in altro modo, il suo output. Da ciò discende una caratteristica cruciale che distingue le reti neurali ecologiche da quelle classiche: l'input che arriva alla rete dall'ambiente dipende non solo da quest'ultimo ma anche dalla sua interazione con la rete. Questo fa sì che le reti ecologiche, diversamente da quelle classiche, controllino esse stesse, almeno in parte, gli input che ricevono dall'esterno. Ciò ovviamente è vero anche per gli organismi reali, e ha una serie di conseguenze molto importanti per capire la natura del loro comportamento. L'ambiente in cui vivono le reti neurali può comprendere oggetti inanimati (ambiente abiotico), organismi di altre specie (ambiente biotico), organismi della stessa specie (ambiente sociale), artefatti creati dalle stesse reti neurali (ambiente tecnologico).
Oltre a un sistema nervoso e ad altri sistemi che contribuiscono a determinare il comportamento, il corpo dell'organismo contiene, nel nucleo di tutte le sue cellule, l'informazione genetica che l'individuo ha ereditato dai suoi genitori. La conseguenza più importante che deriva dal considerare le reti neurali come membri di popolazioni dotate di genoma che si riproducono è che diventa possibile studiare i processi di cambiamento evolutivo a livello della popolazione. Poiché la riproduzione è selettiva, cioè non tutti gli individui hanno lo stesso numero di figli, ed è accompagnata da un'aggiunta costante di variabilità dovuta alle mutazioni genetiche e alla ricombinazione associata alla riproduzione sessuale, il pool genetico della popolazione, cioè l'insieme dei genotipi degli individui che ne fanno parte, si modifica da una generazione all'altra. Di conseguenza, cambia anche il comportamento, che è uno dei tratti fenotipici influenzati dal genotipo. Le reti neurali possono quindi venire usate per studiare le predisposizioni genetiche sottostanti al comportamento, l'emergere evolutivo di nuovi comportamenti e il loro modificarsi nel succedersi delle generazioni, e le interazioni tra questo tipo di cambiamenti, che avvengono al livello della popolazione (evoluzione), e i cambiamenti che avvengono nell'individuo nel corso della sua vita (sviluppo e apprendimento).
Le reti neurali classiche ignorano l'informazione genetica e il suo ruolo nel determinare il comportamento della rete. Una tipica simulazione con reti neurali classiche ha inizio con una rete alle cui connessioni sono stati assegnati pesi casuali. Pertanto all'inizio la rete è una tabula rasa che non possiede nessuna capacità e nessuna conoscenza. I pesi della rete vengono modificati attraverso l'apprendimento, cioè nell'interazione della rete con l'ambiente. È l'esperienza della rete nell'ambiente (sotto forma di input e di input di insegnamento) che 'scrive' sulla tabula rasa e crea ogni capacità e conoscenza che la rete finirà per avere. È vero che vengono fissate alcune condizioni iniziali per l'apprendimento, come l'architettura della rete o i parametri di apprendimento, e che queste condizioni iniziali, essendo indipendenti dall'esperienza e dall'ambiente, possono essere considerate come una eredità genetica. Ma per questo è necessario riprodurre nelle simulazioni i processi evolutivi che hanno portato al costituirsi di tale eredità genetica piuttosto che di un'altra. Inoltre, l'informazione genetica ereditata da un individuo non costituisce semplicemente la condizione iniziale di un processo di apprendimento, ma ha anche un ruolo nei processi di cambiamento che avvengono durante tutto il corso della vita dell'individuo.
Al contrario, una popolazione di reti neurali in una simulazione di VA evolve biologicamente. La riproduzione selettiva dei migliori individui e l'aggiunta costante di variabilità attraverso le mutazioni genetiche e la ricombinazione sessuale determinano cambiamenti nel patrimonio genetico in una successione di generazioni. Il processo evolutivo viene modellato mediante procedure chiamate . Una simulazione di VA comincia tipicamente con una popolazione di individui a ciascuno dei quali viene assegnato un genotipo casuale. Poiché i genotipi specificano i pesi delle connessioni, anche i pesi delle connessioni delle reti neurali degli individui che compongono la popolazione iniziale saranno casuali. Gli organismi si comporteranno perciò in modo piuttosto inefficiente, con forti tendenze a comportamenti stereotipici, cioè dando sempre la stessa risposta, quale che sia l'input ricevuto dall'esterno. Se ogni individuo possiede alla nascita una certa dotazione di energia e questa energia diminuisce di una certa quantità a ogni ciclo input/output, l'individuo verrà a trovarsi presto senza energia e morirà. L'unico modo per sopravvivere è riuscire a procurarsi del cibo.
Se un individuo risponde all'informazione sensoriale che indica dove è situato il cibo con movimenti che tendono a diminuire la sua distanza da questo, alla fine lo raggiungerà e lo mangerà. In questo modo l'energia contenuta nel cibo andrà a compensare quella consumata dall'individuo. Fino a quando un individuo riesce a rimanere in vita (tutti comunque muoiono a una certa età), esso potrà generare una o più figlie (stiamo considerando una popolazione che si riproduce per clonazione, con un solo individuo, la madre, capace di generare una o più figlie), cioè delle copie del proprio genotipo, e gli individui che riusciranno a sopravvivere più a lungo avranno più figlie di quelli che muoiono prima. Una figlia avrà quindi una rete neurale con gli stessi pesi delle connessioni di sua madre. In realtà, anche se i pesi di una figlia sono ereditati dalla madre, essi non sono identici a quelli della madre, e neppure a quelli delle proprie eventuali sorelle, perché la codifica genetica di un certo numero dei pesi ereditati da ogni figlia viene modificata casualmente (mutazioni genetiche). Di conseguenza, anche il comportamento della figlia sarà simile, ma non identico, a quello della madre (e delle eventuali sorelle).
Poiché ogni individuo è diverso dagli altri, è probabile che, per ragioni puramente casuali, fin dalla prima generazione alcuni individui si comportino in modo un po' più efficiente degli altri, venendo maggiormente attratti dal cibo e procurandosene così più degli altri. Questi individui vivranno più a lungo e tenderanno a riprodursi più degli altri. In questo modo gli individui che costituiscono la seconda generazione tenderanno a essere le figlie dei migliori individui della prima generazione. Inoltre, se è vero che le mutazioni genetiche produrranno figlie che, nella maggior parte dei casi, saranno meno efficienti delle loro madri (anche molto meno efficienti, a causa di mutazioni deleterie), in alcuni (rari) casi esse produrranno figlie più efficienti delle loro madri e delle loro sorelle. Questi individui più fortunati saranno a loro volta quelli selezionati per la riproduzione. A lungo termine il risultato sarà un aumento della capacità media di procurarsi il cibo nel succedersi delle generazioni. Si noti tuttavia che non bisogna esagerare il carattere adattivo dei cambiamenti evolutivi: diversi tipi di fattori, nella realtà e nelle simulazioni, possono causare cambiamenti adattivamente neutrali o addirittura svantaggiosi.
Nella simulazione che abbiamo descritto, nel genotipo sono codificati i pesi delle connessioni delle reti neurali. La riproduzione selettiva dei migliori individui e l'aggiunta delle mutazioni casuali porta, con il succedersi delle generazioni, a trovare insiemi di pesi che si traducono in comportamenti efficienti di reperimento del cibo. Ma il genotipo di una rete neurale può contenere informazioni che specificano qualunque tratto fenotipico della rete. Un altro tratto fenotipico molto importante, che può essere specificato nel genotipo, è l'architettura della rete neurale dell'individuo, cioè lo schema delle connessioni esistenti nella rete. Ogni individuo ha un'architettura diversa da quella di qualsiasi altro, e il processo evolutivo consiste nella ricerca delle architetture neurali più adatte alla sopravvivenza nel particolare ambiente e alle specifiche esigenze di adattamento della popolazione. Per esempio, il genotipo può codificare per ciascuna unità della rete la sua collocazione in uno spazio bidimensionale (quello reale del sistema nervoso è tridimensionale) e due parametri di crescita del suo assone neurale: la lunghezza di ciascun segmento di ramificazione dell'assone e l'angolo di ramificazione. Nel modello in esame tutte le ramificazioni sono binarie, tutti gli assoni si ramificano quattro volte con segmento di ramificazione di identica lunghezza, e l'angolo di ramificazione è l'angolo tra i due rami in cui di volta in volta si biforca l'assone. Il genotipo può essere visto come un insieme di istruzioni per costruire una rete neurale. Quando queste istruzioni sono eseguite, le unità vengono collocate nello spazio bidimensionale nel posto assegnato e l'assone comincia la sua crescita. Se un ramo dell'assone di un'unità finisce nel punto in cui è collocata un'altra unità, tra le due unità si stabilisce una connessione.
È chiaro perciò che l'architettura neurale risultante dipende dal luogo dello spazio in cui sono collocate le unità e dai parametri di crescita assonale. Poiché queste specificazioni sono contenute nel genotipo, e questo varia da un individuo all'altro, individui diversi avranno architetture diverse. Non solo lo schema di connettività, ma anche il numero totale di unità che costituiscono la rete neurale effettiva (funzionale) varia da un individuo all'altro, dato che alcune unità possono restare non connesse, e quindi non fanno parte della rete neurale effettiva che trasforma l'input nell'output. La variabilità e la complessità del processo neuroevolutivo possono essere accresciute simulando anche il processo di reduplicazione e differenziazione cellulare a partire da una singola cellula iniziale e il progressivo spostamento delle unità nello spazio fisico bidimensionale, fino a che ciascuna di esse non raggiunge la posizione finale, nella quale farà crescere il suo assone. La crescita degli assoni può avvenire in modo istantaneo alla nascita, e in questo caso un individuo nasce con un'architettura neurale già completa che non cambia più durante la vita, e non vi è sviluppo (maturazione) del sistema nervoso dell'individuo. Oppure, il genotipo può contenere un'ulteriore informazione, e cioè l'età dell'organismo in cui ogni particolare unità neurale farà crescere il suo assone. Tale età tenderà a essere diversa per le differenti unità, e la rete neurale di ciascun individuo è soggetta a un processo di maturazione. Sullo schermo del computer si può osservare come l'architettura neurale di ogni particolare individuo si modifica nel corso della sua vita.
Nei modelli finora descritti la maturazione della rete neurale è interamente controllata dal genotipo. Nella maggior parte degli organismi, invece, la maturazione del sistema nervoso appare influenzata dall'attività che si svolge nel sistema nervoso, la quale, a sua volta, è funzione degli input sensoriali che giungono dall'ambiente esterno. In altre parole, il sistema nervoso dimostra plasticità fenotipica, cioè capacità di assumere una forma che dipende dal particolare ambiente in cui esso si sviluppa. Un modello di maturazione neurale che incorpora una forma di plasticità fenotipica è il seguente. A differenza del modello descritto in precedenza ‒ in cui la maturazione della rete neurale è controllata interamente dal genotipo, in quanto esso specifica direttamente l'età in cui ciascuna unità della rete farà crescere il suo assone ‒, ora al genotipo viene assegnato il compito di specificare per ciascuna unità unicamente una soglia per la maturazione assonale, lasciando all'esperienza dell'individuo il compito di determinare se e quando questa soglia viene raggiunta e, pertanto, se e quando la particolare unità farà crescere il suo assone. La variabile cruciale è il livello di attivazione dell'unità. Il modello misura quanto questo livello di attivazione varia nel tempo in una successione di cicli della rete. Il livello di attivazione di un'unità può restare sostanzialmente costante in una successione di cicli, e questo significa che l'unità non ha un ruolo importante nel determinare la risposta dell'organismo al variare degli input, oppure può variare da un ciclo al successivo e quindi avere un ruolo più importante nel determinare il comportamento dell'organismo.
La soglia codificata nel genotipo definisce quanto deve variare il livello di attivazione di un'unità affinché questa faccia crescere il suo assone. La variazione del livello di attivazione di un'unità dipende in ultima istanza dalla variazione dell'input sensoriale che giunge alla rete dall'ambiente esterno, ma non tutte le unità rispondono al variare dell'input esterno mutando il loro livello di attivazione. Pertanto, in questo modello, la maturazione della rete neurale dipende da due fattori: da un lato dalle soglie di maturazione delle diverse unità codificate nel genotipo e dall'altro dall'input ambientale, cioè dall'esperienza. L'evoluzione seleziona una soglia ottimale per ciascuna unità, ma è l'esperienza che decide se e quando tale soglia viene raggiunta e quindi si verifica un evento di maturazione della rete neurale. Il ruolo dell'esperienza nella maturazione della rete neurale appare in modo evidente in simulazioni in cui l'ambiente viene manipolato sperimentalmente, in maniera tale che uno stesso genotipo possa svilupparsi in due ambienti diversi. In queste circostanze il genotipo dà luogo ad architetture neurali differenti a seconda dell'ambiente in cui si sviluppa. Inoltre, il processo evolutivo fa in modo che l'architettura neurale, che si sviluppa a partire da uno stesso genotipo in un determinato ambiente, sia quella che ottimizza le probabilità riproduttive dell'individuo in quel particolare ambiente, ma non in uno diverso.
Altre forme di interazione tra genotipo ed esperienza sono quelle in cui la rete neurale apprende, cioè modifica, i pesi sulle sue connessioni in funzione dell'esperienza, ma queste modifiche sono vincolate da informazioni codificate nel genotipo. Per esempio, è stato mostrato che, codificando nel genotipo il valore dei parametri di apprendimento (il tasso di apprendimento, che specifica quanto viene modificato un peso in funzione del suo contributo all'errore della rete, e il momento, che specifica quanto la modifica apportata a un peso dipende dalle modifiche precedenti), l'evoluzione seleziona progressivamente valori ottimali per tali parametri. In questo modo l'apprendimento che ha luogo in una data rete dipende sia dall'esperienza a cui la rete è esposta nel corso della sua vita (input e input di insegnamento, nel caso della procedura di retropropagazione) sia dai valori dei parametri di apprendimento ereditati geneticamente.
Quanto una rete apprende sulla base di una certa esperienza dipende dai pesi iniziali assegnati alle connessioni della rete, oltre che dai parametri di apprendimento. Nelle reti neurali classiche i pesi iniziali, che vengono poi modificati dall'apprendimento, sono assegnati a caso. Pertanto, per ragioni puramente casuali, una rete può vedersi assegnati pesi iniziali che sono più favorevoli all'apprendimento di una determinata capacità rispetto a quelli assegnati a un'altra rete, e perciò apprendere più della seconda. Nelle simulazioni di VA, i pesi iniziali con cui una rete comincia un apprendimento possono essere ereditati geneticamente, e l'evoluzione può selezionare questi pesi in modo tale che gli individui delle generazioni più evolute imparino di più da una stessa esperienza di apprendimento, rispetto a quelli delle generazioni meno evolute. Se il criterio di selezione degli individui è il loro successo nell'apprendimento, tenderanno a riprodursi gli individui che hanno pesi iniziali migliori.
Torniamo alla popolazione di organismi che devono procurarsi il cibo per sopravvivere. Un individuo risponde all'informazione sensoriale, che lo informa sulla posizione del cibo, con movimenti che tendono ad avvicinarlo a esso. Poniamo che questi organismi, nel corso della loro vita, apprendano a prevedere come cambia la posizione del cibo in funzione dei loro movimenti sulla base di una conoscenza della posizione attuale del cibo e di un proprio movimento pianificato ma non ancora eseguito. Una rete neurale che abbia appreso a fare queste previsioni si dimostra più efficiente nel raggiungere il cibo rispetto a una rete neurale che non abbia imparato a prevedere le conseguenze dei propri movimenti. Poiché l'apprendimento alla previsione avviene nel corso della vita, un individuo tende a migliorare la sua efficienza nel raggiungere il cibo nel corso della vita, cioè mano a mano che le sue capacità di previsione vanno perfezionandosi con l'apprendimento. Gli individui non vengono selezionati in base alla loro capacità appresa di prevedere, ma in base alla loro capacità di raggiungere il cibo. Tuttavia la capacità appresa di prevedere ha un ruolo nel processo evolutivo in quanto influenza la capacità di raggiungere il cibo, che è il criterio su cui si basa la selezione.
Un fenomeno che si osserva in queste simulazioni è che con il succedersi delle generazioni va aumentando, anche se in misura limitata, la capacità di fare previsioni, che già esiste alla nascita, prima di ogni apprendimento. In altre parole, i pesi delle connessioni ereditati geneticamente già incorporano, in qualche misura, la capacità di fare previsioni. Poiché tale capacità non determina le probabilità riproduttive dell'individuo (che sono determinate dalla capacità dell'individuo di procurarsi il cibo), questo risultato va interpretato in termini di assimilazione genetica. Una capacità appresa durante la vita viene in qualche misura incorporata nei geni. Un secondo fenomeno che si osserva è che gli individui di generazioni successive apprendono progressivamente meglio a prevedere le conseguenze dei loro movimenti durante la vita. Questo deve essere spiegato come una selezione indiretta di pesi iniziali migliori per l'apprendimento. La capacità che viene appresa durante la vita (quella di prevedere le conseguenze dei propri movimenti) non è la capacità in funzione della quale gli individui vengono selezionati per la riproduzione. Tuttavia la correlazione tra la capacità di prevedere e quella di procurarsi il cibo produce una pressione selettiva indiretta sulla stessa capacità di prevedere. Questa pressione selettiva indiretta si esprime con la progressiva selezione di pesi iniziali migliori nel succedersi delle generazioni.
Il terzo fenomeno che si osserva nelle simulazioni che stiamo esponendo è forse quello più interessante. Se si confrontano due popolazioni, entrambe selezionate in base alla capacità di procurarsi il cibo, ma che differiscono per il fatto che soltanto in una gli individui imparano a prevedere le conseguenze dei loro movimenti durante la vita, la capacità di procurarsi il cibo aumenta evolutivamente in modo migliore nella popolazione con apprendimento, piuttosto che in quella senza apprendimento. Questo si osserva nonostante le modifiche ai pesi delle connessioni, che sono il risultato dell'apprendimento, non vengano trasmesse geneticamente. In altre parole, una rete neurale riceve alla nascita i pesi delle connessioni che sua madre aveva a sua volta alla nascita, cioè prima delle modifiche dovute all'apprendimento. Ciononostante, i cambiamenti che avvengono nella rete durante la vita hanno un effetto sul processo evolutivo. Questa simulazione indica quanto possono essere complesse e indirette le interazioni tra evoluzione al livello della popolazione e apprendimento al livello del singolo individuo, e come queste complesse interazioni possano essere catturate e studiate mediante le simulazioni di VA.
Belew 1991: Belew, Richard K. - McInerney, John - Schraudolph, Nicol N., Evolving networks: using the genetic algorithm with connectionist learning, in: Artificial life II: proceedings of an interdisciplinary workshop on the synthesis and simulation of living systems held 1990 in Los Alamos, New Mexico, edited by Christopher G. Langton e altri, Redwood City (Cal.), Addison-Wesley, 1991.
Cangelosi 1994: Cangelosi, Angelo - Parisi, Domenico - Nolfi, Stefano, Cell division and migration in a 'genotype' for neural networks, "Network: computation in neural systems", 5, 1994, pp. 497-515.
Elman 1990: Elman, Jeffrey L., Finding structure in time, "Cognitive science", 14, 1990, pp. 179-211.
Holland 1992: Holland, John H., Adaptation in natural and artificial systems: an introductory analysis with applications to biology, control, and artificial intelligence, Cambridge (Mass.), MIT Press, 1992.
Langton 1995: Artificial life. An overview, edited by Christopher G. Langton, Cambridge (Mass.), MIT Press, 1995.
Nolfi 1994: Nolfi, Stefano - Elman, Jeffrey L. - Parisi, Domenico, Learning and evolution in neural networks, "Adaptive behavior", 3, 1994, pp. 5-28.
Parisi 1990: Parisi, Domenico - Cecconi, Federico - Nolfi, Stefano, Econets: neural networks that learn in an environment, "Network: computation in neural systems", 1, 1990, pp. 149-168.
Rumelhart, McClelland 1986: Rumelhart, David E. - McClelland, James L., Parallel distributed processing. Explorations in the microstructure of cognition, Cambridge (Mass.), MIT Press, I, 1986 (trad. it.: PDP: microstruttura dei processi cognitivi, Bologna, Il Mulino, 1991).
Sutton, Barto 1998: Sutton, Richard S. - Barto, Andrew G., Reinforcement learning. An introduction, Cambridge (Mass.)-London, MIT Press, 1998.