31 ottobre 2006
Bestie rare crescono…
E’ arrivato il grande momento. No, non mi sto per sposare. Semplicemente ho deciso che stasera vi racconterò di quello su cui sto lavorando all’ISTC. Dunque mettetevi comodi. Sono prolisso per natura, ormai lo sapete. E in più le cose da dire sono tante. Prendetevi pure qualcosina da bere, possibilmente caldo (un bel caffè americano é quanto di più adatto allo scopo mi viene in mente), mettete a letto i bambini, pulite gli occhiali ed infine allacciate le cinture. Fatto tutto? Perfetto, ora siete pronti ad imbarcarvi con me per questo affascinante viaggio alla scoperta della mia tesi di laurea.
Ma siete davvero sicuri di essere pronti, vero? Ok… lettore di blog avvisato, lettore di blog mezzo salvato. Siccome sarò lungo e palloso è bene avvisarvi due volte.
Tutto ebbe inizio in una buia e tempestosa notte (perdonate la licenza poetica, in realtà non so se quel giorno ci fosse tempesta, ma di sicuro non era buio e tantomeno notte) del lontano 1993, quando Domenico Parisi e Federico Cecconi presentarono, nel contesto della Second International Conference on Simulation of Adaptive Behavior (detta pure “From Animals to Animats 2“), un loro lavoro dal titolo: “Neural Networks with Motivational Units“. Si trattava di una serie di simulazioni, mirate a studiare come organismi artificiali potessero arrivare ad esibire comportamenti di tipo “goal-oriented”.
Le simulazioni di vita artificiale (e questo doveva valere in particolar modo all’epoca in cui l’articolo venne scritto), si focalizzano spesso su singoli aspetti, estremamente ristretti e circoscritti, del comportamento degli esseri viventi. Spesso si tratta di una necessità pratica, dettata dalle limitazioni delle macchine sulle quali queste simulazioni devono “girare”. Più frequentemente ciò è invece dovuto all’esigenza di semplificare il più possibile il reale, in maniera tale da poterlo ricreare virtualmente in maniera sufficientemente agevole. Ma al di là delle motivazioni che vi stanno alla base, quello che si fa solitamente è creare un determinato ambiente ed inserire al suo interno un organismo, il cui comportamento è in qualche modo “dettato” dagli stimoli ambientali che percepisce. Al comparire di due stimoli sensoriali tra loro simili, in sostanza, la risposta comportamentale dell’organismo é pressapoco lo stessa.
Le cose diventano più interessanti, e questo è il caso analizzato da Cecconi e Parisi nel loro lavoro, quando si cerca di ottenere dagli organismi virtuali un più elevato livello di autonomia rispetto all’ambiente nel quale essi vivono. Autonomia che si traduce, nella pratica, in comportamenti che non sono eslcusivamente funzione degli stimoli sensoriali prodotti dall’interazione con l’ambiente, ma che dipendono anche da una componente interna all’organismo: lo “stato motivazionale”.
Per andare ancor più nello specifico, i due ricercatori hanno creato un’ambiente virtuale bidimensionale discreto (rappresentabile graficamente da una matrice di dimensione 10×10), alcune delle cui 100 celle possono essere caratterizzate dalla presenza di unità di cibo o di acqua. Una popolazione di reti neurali (overro, ciò che abbiamo chiamato fino a questo momento “organismi”), dotate, oltre che dei recettori dell’input sensoriale, anche di un’unità aggiuntiva che codifica lo stato motivazionale interno (fondamentalmente, la sensazione di “fame” o di “sete”), viene inserita nell’ambiente e fatta evolvere tramite algoritmo genetico per 50 generazioni. Ciò che si osserva con il passare del tempo è che l’evoluzione porta alla comparsa di individui che si muovono nello spazio, raccogliendo cibo ed acqua, in accordo con il proprio stato motivazionale (vanno alla ricerca di cibo quando hanno fame, di acqua quando hanno sete).

Più chiaro ed esauriente del sottoscritto risulta essere l’abstract dell’articolo in questione, che riporto integralmente:
“Organisms with multiple goals exibit behavior which is more autonomous with respect to the environment because the same environmental input can be responded to with different behaviors as a function of the currently active goal. We present simulations of the evolution of populations of neural networks with motivational units, i.e. units which contribute to the network’s output but are not activated by environmental events. Different activation states of these units mean “hunger” or “thirst”. Organisms endowed with these units evolve a behavior that seeks food when the motivational state is “hunger” and water when it is “thirst”, thereby exibiting multiple goals. A final simulation shows that organisms will spontaneously evolve such motivational units to control their behavior.”
Per ora, visto che si sta facendo tardi, non mi addentro nei dettagli tecnici di queste simulazioni. Lo farò a partire da domani (se ve lo state chiedendo, sì… è una minaccia). Il mio lavoro, comunque, consiste nel ricostruire queste simulazioni (uso il plurale non a caso, siccome vengono provate varie “combinazioni”, ma su questo punto ci ritorneremo più avanti) e studiare alcuni aspetti interessanti che emergono da esse. In particolare, mi è stato chiesto di analizzare la struttura (intesa come insieme dei pesi sinaptici) delle reti neurali che rappresentano gli organismi “efficienti”, in maniera tale da capire come sia possibile che esse riescano ad esibire un comportamento “intelligente” (cercare cibo quando sono affamate, acqua quando sono assetate). La teoria di Parisi è che l’unità motivazionale funzioni in qualche modo da “deviatore”, facendo sì che l’organismo ignori completamente (con un meccanismo definito di “attenzione selettiva”) le informazioni sensoriali relative al cibo quando è assetato e viceversa. L’idea, sulla carta, appare più che plausibile, ma deve essere verificata in maniera un po’ più approfondita. Ed è esattamente ciò di cui si occuperà principalmente il sottoscritto.
Più marginalmente, almeno all’inizio (poi tutto dipenderà dal tempo a disposizione), dovrò inoltre affrontare anche un altro paio di aspetti. Il primo riguarda sempre questo tipo di simulazione, ma con reti neurali leggermente diverse, dotate di due unità motivazionali invece che una sola. Con tale topologia di rete, un organismo può avvertire allo stesso tempo fame e sete, seppur con intensità tra loro differenti. Questo differente status quo ha chiaramente la sua influenza sul comportamento degli organismi, ma si è tuttavia osservato che essi riescono comunque a “performare” bene nella maggior parte delle situazioni. Il problema, si è osservato, sorge quando l’organismo avverte al tempo stesso un forte livello di fame e di sete. In questa particolare situazione, invece che muoversi indifferentemente alla ricerca di acqua e cibo, capita che l’organismo si blocchi del tutto. Incapace di scegliere tra due alternative, entrambe estremamente allettanti, finisce per non mangiare né bere, lasciandoci così le penne. Parlando dell’argomento, Parisi mi ha lasciato intendere che potrebbe trattarsi di un meccanismo simile a quello della depressione negli esseri umani, che lui legge principalmente come patologia che rende incapaci di effettuare scelte.
Il secondo aspetto cui facevo riferimento nel paragrafo qui sopra è invece di carattere più generale. Alcuni studi (ancora in fase preliminare) svolti di questi tempi hanno mostrato come reti neurali dotate di un sufficiente numero di neuroni nello strato intermedio siano in grado di far evolvere comportamenti intelligenti simili a quello sopra descritto. Niente di strano su questo punto. La faccenda curiosa è che, una volta che il comportamento “intelligente” è stato appreso, la rete “azzera” il peso di alcune connessioni sinaptiche, “disattivando” di fatto alcuni dei suoi neuroni dello strato intermedio. Questi neuroni non vengono più utilizzati e ciò porterebbe pertanto a pensare che non siano necessari. Al contrario, invece, è stato visto che con un minor numero di neuroni il comportamento “intelligente” non riesce ad evolvere. Probabilmente, sempre secondo Parisi, si tratta di ciò che avviene anche agli esseri umani: un boom di connessioni neuronali che vengono attivate durante l’infanzia (quando l’apprendimento è il più massiccio della vita dell’uomo), per poi decadere prima di raggiungere l’adolescenza.
Vedremo un po’. Di carne al fuoco, come avrete potuto intuire, ce n’è tantissima. Per quanto riguarda il software, invece, oggi pomeriggio ho completato la stesura del codice, scrivendo le ultime funzioni che mi mancavano. Ok, qualche problemino c’è ancora. Analizzando i dati risultanti dai primi run di questo pomeriggio, mi sono accorto che gli organismi (almeno per quanto riguarda la prima generazione), non modificano l’output della propria rete neurale durante i vari steps, nonostante gli inputs (angolazione e distanza delle più vicine unità di cibo e di acqua) si modifichino correttamente. Questo va in qualche modo bene per coloro che casualmente iniziano la loro evoluzione con pesi sinaptici che portano all’attivazione del pattern (1,1) e riescono così a muoversi lungo i bordi dell’ambiente e raccattare il più possibile. Va un po’ meno bene per coloro che hanno gli altri pattern di output: con (0,0) gli organismi rimangono irrimediabilmente fermi per tutti gli step, mentre con (1,0) o (0,1) si limitano a ruotare continuamente su se stessi. Sorvoliamo poi sul fatto che alcune delle mie bestioline abbiano mangiato, secondo i risultati stampati a video, qualcosa tipo -1029384 unità di cibo e/o di acqua. Da domani, fino a data da destinarsi, consideratemi in fase di debug…
PS: Mi sono casualmente imbattuto nel sito Internet del libro “La società dei beni” degli ormai “soliti” Domenico Parisi e Federico Cecconi. A parte il fatto che il sito meriterebbe una visita anche soltanto per com’è realizzato (credo sia Flash, comunque gradevolissimo ed usabilissimo al tempo stesso), lì dentro potete vedere la demo di una simulazione in qualche modo simile a quella su cui sto lavorando io: “Acqua e Cibo“.
PPS: Il riferimento bibliografico all’articolo di cui si è parlato nel post è: F. Cecconi, D. Parisi, Neural networks with motivational units, in J.-A. Meyer, H.L. Roitblat, & S.W. Wilson (eds.) From Animals to Animats 2, Cambridge, Mass., MIT Press, 1993.


