|
||||||
DOCUMENTS
elab.immagini
galileo
realtà virtuale
vrml
biomeccanica
esapodi
formula1
intelligenza
Papers
meccanica
sistemi
robotica
Le radici dell'Artificial Life possono essere rinvenute negli automi cellulari di John Von Neumann e Arthur W. Burks. Nelle parole di Burks, che fu il continuatore della sua opera, Von Neuman si chiedeva:
"Quale tipo di organizzazione logica è sufficiente ad un automa per riprodurre se stesso? Questa domanda non è precisa ed ammette sia una risposta banale che una interessante. Von Neuman aveva in mente il fenomeno naturale dell'autoriproduzione quando la pose, ma non tentò di simulare l'autoriproduzione di un sistema naturale a livello genetico e biochimico. Egli voleva astrarre dal problema naturale dell'autoriproduzione la sua forma logica."(Burks, 1970).
Il formalismo che permise la realizzazione di un tale sistema, fu proposto da un suo collega, Stan Ulam, con il nome di Automa Cellulare (Ulam, 1962). Un automa cellulare è semplicemente un sistema che può avere un numero finito di stati ed il cui stato è determinato dallo stato di altri automi che lo circondano. Il comportamento degli automi cellulari diventa interessante proprio perché formano una rete di interazioni, il cui comportamento globale, nel tempo, non è prevedibile; anche se le leggi che governano i passaggi di stato per ogni singolo automa sono semplici e ben determinate. Lo stato di ogni automa di questa rete, in ogni istante di tempo, è determinato dallo stato posseduto, nell'istante precedente, dagli automi che lo circondano. Con gli automi cellulari, Von Neumann impostò un sistema capace di autoreplicarsi e stabilì che, qualunque sistema capace di fare ciò, doveva fare uso delle informazioni contenute nella sua descrizione in due modi fondamentalmente differenti: sia interpretando, che non interpretando. Interpretate le informazioni dovevano tradursi in azioni da compiere per realizzare il replicante, non interpretate dovevano essere soltanto copiate, perché sarebbero state l'analoga descrizione per il replicante. Quando, in seguito, si scoprì la struttura ed il funzionamento del DNA emerse che erano proprio i modi in cui la cellula fa uso delle informazioni contenute in esso durante i suoi processi di trascrizione e traduzione da una parte e replicazione dall'altra.
Fino agli anni ottanta possiamo dire che l'unico filone di ricerca sull'artificial life è stato questo degli automi cellulari. In seguito si è avuto quell'interesse convergente in questo campo da vari ambiti cui abbiamo fatto cenno sopra. Proprio per unificare gli sforzi e fare il punto della situazione, nel settembre del 1987 si è tenuta a Santa Fe la prima conferenza sull'Artificial Life (che è considerata l'atto di nascita ufficiale di questa nuova scienza), organizzata da Chris Langton del Santa Fe Institute. Ad essa parteciparono non solo scienziati che, con vari approcci, lavoravano alla costruzione di robot, o scienziati cognitivi, ma anche filosofi, chimici e biologi. In seguito si è tentato di definire meglio le competenze dell' Artificial Life e di formalizzarne i confini e gli ambiti. Si sono avute altre conferenze negli Stati Uniti ed in Europa, oltre a sempre più frequenti pubblicazioni.
Oggi possiamo distinguere due grossi filoni che si intrecciano tra loro: quello della robotica e quello delle simulazioni.
Un altro tipo di distinzione che si può fare, che è in realtà molto più profonda e destinata ad approfondirsi, è tra gli approcci che potremmo definire top-down, quali quelli della tradizione cognitiva o dell'Intelligenza Artificiale, e quelli bottom-up nel quale troviamo connessionismo (in particolare il filone degli agenti situati) e automi cellulari.
Vi sono, ovviamente, anche molti tentativi di integrare le due strategie. Riguardo alla prima distinzione Rodney Brooks (che è il più autorevole ricecatore nel campo della robotica) insiste sulla difficoltà di trasportare apprendimenti e tecniche dalle simulazioni al mondo reale (Brooks, 1992), ma fa riferimento soprattutto a ricerche che utilizzano il classico procedimento dell'Intelligenza artificiale. Al contrario suggerisce tecniche che utilizzano gli algoritmi genetici perché si abbiano apprendimenti trasferibili dal simulato al reale. Un automa deve apprendere ad agire in un ambiente e, in linea di principio, non fa molta differenza se questo ambiente è reale o simulato. L'ambiente simulato, però, non deve essere stato progettato in modo da rendere il più semplice possibile "la vita" all'automa. Questa semplificazione (come fa notare Brooks, 92; pagg. 4-5) spesso finisce per rendere ancora più difficile operare in tale ambiente. Ciò è legato al fatto che quello che è riportato dai sensori, nella vita reale, è sempre molto incerto. Quell'imprecisione che, a prima vista, sembrerebbe un problema, in realtà porta ad apprendimenti più flessibili in partenza; fa si che non si creino conflitti di precedenza artificiali come in alcune simulazioni e soprattutto porta in maniera più naturale a prendere il punto di vista del robot, invece di fornirgli la propria visione dell'ambiente. Questa è appunto la posizione fondamentale del filone che va sotto il nome di agenti situati e che vedremo più approfonditamente in seguito perché è quella che più ci interessa.
Per quanto riguarda l'apprendimento, possiamo distinguere un apprendimento genetico ed uno individuale, proprio come negli esseri viventi reali.
In genere oggi si tende ad utilizzare o l'uno o l'altro, ma con un uso integrato di entrambe le forme di apprendimento si potrà fare, tra l'altro, ulteriore chiarezza su una questione che nel passato ha riempito molte pagine: quanta parte del comportamento di un organismo è attribuibile al suo patrimonio genetico e quanto all'apprendimento nella sua vita. La questione ormai ha raggiunto un sufficiente grado di chiarezza con il riconoscimento del contributo integrato di entrambe le componenti, ma si ripropone ogni volta la proporzione e, soprattutto, la natura delle predisposizioni genetiche quando si parla di comportamenti o di attività mentali.
Nelle simulazioni che si fanno in questo campo, si utilizzano in genere alternativamente strategie che possiamo considerare ispirate all'apprendimento in vita (tramite backpropagation principalmente, ma anche con l'apprendimento competitivo, con la regola di Hopfield, o comunque apprendimenti basati sulla modifica dei valori delle connessioni tra neuroni); oppure all'apprendimento su base genetica, che si compie di generazione in generazione (algoritmi genetici).
Ultimamente si sta diffondendo enormemente soprattutto l'uso di questa ultima strategia. Ciò è logico, se si considera, al di là di un'analisi più circostanziata, che, in questa fase iniziale, potrebbe essere una buona strategia, quella di lasciare sviluppare le specie più adatte ai vari scopi che si propongono i diversi ricercatori. E' comunque auspicabile che si arrivi presto all'utilizzo complementare di ambedue la strategie come fa notare Parisi (1989) :
"vi è un intreccio costante fin dalla embriogenesi del sistema nervoso tra «conoscenze» provenienti dall'esterno e «conoscenze» contenute nel codice genetico, e non si può ignorare il ruolo di nessuna di queste due fonti di conoscenza se si vuole capire in che luogo si sviluppa, funziona, apprende e raggiunga certe prestazioni il cervello di un certo individuo o di una certa specie."(pag.19-20)
Gli algoritmi genetici consistono fondamentalmente in varie tecniche, che portano alla selezione degli algoritmi che danno (in base ad un determinato criterio) i risultati migliori ed alla ricombinazione casuale di alcune loro porzioni e/o alla mutazione di alcune loro parti.
In genere si parte con una certa popolazione di automi che hanno leggere differenze tra loro e si fanno agire in un ambiente per un certo numero di cicli. In seguito quelli che si saranno comportati meglio avranno la possibilità di riprodursi. Cioè si prenderà, ad esempio, il venti per cento della popolazione che si è comportato nel modo migliore e da questi, con mutazioni casuali e ricombinazioni, si otterrà anche il restante ottanta per cento di automi; con questa nuova popolazione si farà un altra sessione di cicli, al termine dei quali, si ripeterà lo stesso procedimento. All'interno di questo schema generale, le effettive realizzazioni degli algoritmi possono essere molto diverse: da programmi in vari linguaggi, a valori di connessioni di reti neurali.
L'apprendimento ontogenetico, invece, può utilizzare varie strategie per la modifica delle connessioni, sia con un supervisore sia senza.
Negli apprendimenti supervisionati, lo sperimentatore (o una memoria di tipo statico), in caso di risposta diversa da quella ritenuta più opportuna, fornisce la risposta desiderata, mentre nelle strategie di apprendimento non supervisionato, è la rete stessa che propone le risposte e modifica le connessioni.
Anche se abbiamo diversi tipi di reti che possono apprendere (che si rifanno a tutte le principali teorie dell'apprendimento comportamentiste: dalla legge dell'effetto di Thorndike, a quella della contiguità temporale di Guthrie), quelle che effettivamente si sono rivelate adatte, a far apprendere ad un automa senza supervisore un certo compito, sono quelle basate sulla backpropagation e sull'apprendimento competitivo.
Bisogna considerare che, in questi primi tentativi di realizzare automi in grado di modificare il proprio comportamento in modo da ottimizzare un certo risultato, l'importanza che hanno i metodi di apprendimento effettivamente utilizzati è molto relativa. Infatti possiamo ottenere risultati piuttosto simili, sia utilizzando una strategia "filogenetica", come gli algoritmi genetici, che una "ontogenetica", come la modifica delle connessioni in base al risultato delle azioni. Quello che effettivamente si sta sperimentando, non sono tanto queste teorie "parziali" dall'apprendimento, quanto proprio la strategia globale di organizzazione del proprio comportamento da parte di questi sistemi.
Anche tecniche non basate sulle reti neurali, ma su classificatori che rientrerebbero più propriamente nel campo dell'intelligenza artificiale, sono utilizzati in questo modo con risultati paragonabili a quelli delle altre tecniche (Brooker, 1988; Brooker et al., 1989; Dorigo, 1993; Holland, 1986; Wilson, 1987).
Queste limitazioni vengono però superate se si aggiunge almeno un altro strato tra quello di ingresso e quello di uscita. Una rete a tre o più strati può classificare in qualunque modo si voglia. Ma una regola per la modifica dei coefficienti di connessione, in questi casi in cui gli strati sono più di due, è stata proposta solo nel 1986 da Rumelhart, Hinton e Williams. La regola è la celeberrima error backpropagation, consistente, appunto, nella propagazione dell'errore a ritroso. Vengono prima modificati i coefficienti delle connessioni tra il penultimo e l'ultimo strato e poi si risale, di strato in strato, fino a modificare quelli delle connessioni tra il primo ed il secondo strato.
Data la possibilità di far apprendere ad una rete a tre o più strati qualunque tipo di associazione, o criterio di categorizzazione, oggi reti di questo tipo sono molto usate nei campi più disparati.
Un difetto di queste reti è l'enorme mole di calcoli che devono essere fatti, in fase di apprendimento, dopo la presentazione di ogni stimolo, prima che la rete converga verso un valore dei coefficienti relativamente definitivo. Tra l'altro non è detto che questi valori siano i migliori possibili in assoluto, potrebbe trattarsi, infatti, di un minimo locale. In altre parole la regola della backpropagation, come d'altra parte quella di Widrow e Hoff, è fatta in modo da far diminuire, dopo ogni iterazione, la differenza che, a livello di connessioni, si ha tra l'uscita prodotta e quella voluta; ma ciò non garantisce che si ottengano i valori migliori in assoluto. Questo progressivo approssimarsi a dei valori delle connessioni che ottimizzano l'errore, potrebbero portare a delle connessioni che non danno il migliore "compromesso" possibile in modo da ottenere, in tutti i casi memorizzati fino a quel momento, la migliore combinazione possibile di risposte.
Questo pericolo è particolarmente concreto nel caso di utilizzo di queste reti nel modo più naturale, detto "on line", cioè quando le modifiche alle connessioni sono apportate dopo ogni iterazione. L'altro metodo (batch) prevede, invece, il solo calcolo delle variazioni dei coefficienti, finché non è stato presentato l'intero set di rappresentazioni che la rete deve apprendere, è solo a questo punto che le connessioni vengono effettivamente modificate. Il metodo batch, oltre a non poter essere proposto come modello dell'apprendimento umano, (infatti la variazione delle connessioni, o qualunque altro processo sia alla base dell'apprendimento umano, si verifica dopo la presentazione di ogni elemento di una sequenza da classificare) è anche più lento, ma ha il vantaggio di essere meno soggetto al pericolo di incorrere in minimi locali ed è quindi preferito nelle applicazioni pratiche che lo permettono.
Sono state proposte anche delle modifiche alla regola di Rumelhart, Hinton e Williams che permettono una convergenza più veloce, con un minor numero di iterazioni, come la quickpropagation (Fahlman, 1988), ma non è ancora stato risolto il problema dell'evitamento dei minimi locali.
Nello stesso anno in cui è stata trovata una regola di apprendimento per le reti a più strati è stata pubblicata anche una raccolta di articoli sulle reti neurali (McClelland & Rumelhart, 1986). In essa è presentata come un fatto avvenuto la nascita di un nuovo paradigma di ricerca basato sulle possibilità dell'elaborazione subsimbolica e parallela.
Sia per la pubblicazione di questa antologia che per la backpropagation, dopo il 1986 c'è stata una grande ripresa degli studi e pubblicazioni sulle reti neurali. Nello stesso tempo, si sono moltiplicate anche le utilizzazioni pratiche delle reti (in particolare proprio della backpropagation). Esse si utilizzano oggi nell'interpretazione di segnali radar e sonar, nel riconoscimento della voce, nel riconoscimento della scrittura naturale, nella visione artificiale, nella robotica, per risolvere vari problemi di ottimizzazione.
Vi sono anche altre soluzioni, al problema di modificare le connessioni di reti multistrato in modo tale che si abbia apprendimento. Tali reti utilizzano vari tipi di apprendimento competitivo ed hanno appunto in comune il fatto di "aumentare i valori dei coefficienti di connessione eccitatori associati alle linee che, dallo strato immediatamente inferiore, inviano segnali alle unità che hanno vinto la competizione" (Pessa, 1993; pag.195). Queste reti hanno connessioni eccitatorie con le unità dello strato superiore e connessioni di tipo inibitorio tra unità che appartengono allo stesso strato.
Le più utilizzate realizzazioni di questo principio, prevedono uno dei seguenti criteri per la propagazione del segnale:
1) La strategia con più vincitori. Si fa una media delle somme pesate degli ingressi ad ogni neurone ed emettono un'uscita solo quelle che in cui essa è superiore alla media.
2) La strategia Winner Takes All. In questo caso emette un'uscita solo l'unità che ha la più alta somma pesata degli ingressi.
3) Le strategie a bolla. In queste si immaginano i neuroni disposti su una griglia, in modo tale che ci siano vicinanze e distanze tra i vari elementi. Le unità che si considerano vincenti sono tutte quelle che si trovano in un opportuno intorno spaziale di quella che ha ottenuto la più alta somma pesata degli ingressi. La prima è stata proposta da Kohonen, ma in seguito egli stesso ed altri ne hanno proposte molte diverse versioni.
In seguito vengono modificati i coefficienti delle unità vincitrici o, in alcuni casi, anche di quelle che non hanno vinto la competizione.
Parallelamente a queste linee di ricerca, lo studio delle possibilità delle reti neurali, si è sviluppato in altre direzioni. Oltre a reti a strati, in cui uno strato ha funzioni di input ed un altro di output, ce ne sono molti altri tipi composti da un solo strato ed altri aventi architetture più complesse.
Ritornando alle prime reti che sono state proposte (McCulloch e Pitts), esse sono state generalizzate nel 1961 da Caianello, il quale ha proposto delle equazioni in cui lo stato di attivazione di ogni neurone non dipende solo da quello di tutti gli altri nell'istante precedente (il tempo anche in queste reti è discreto), ma dipende anche dallo stato di attivazione che si è avuto negli istanti precedenti. Questa modifica permette di catturare maggiormente la realtà del funzionamento neuronico, sappiamo infatti che i neuroni reali rispondono non solo in conseguenza della stimolazione che ricevono in un dato istante, ma anche dipendentemente da quelli precedenti, variando le disponibilità dei diversi neurotrasmettitori in conseguenza della frequenza di risposta. In realtà con questa modifica non si è preteso di riprodurre tutta la ricchezza di possibilità che sta dietro la scarica di un neurone reale, ma ci si è spostati comunque in direzione di quella maggiore complessità.
Più importante, dal punto di vista teorico, gli studi di Caianello hanno permesso di trovare un algoritmo che permette di risolvere (almeno in linea di principio, data la grande mole di calcoli necessaria in caso di reti composte da moltissimi neuroni) le equazioni che governano lo sviluppo di una rete di questo tipo, in maniera da poter sempre sapere in partenza come si evolverà una data rete (quali sono i suoi punti di equlibrio ed il suo ciclo) ed anche progettare una rete che abbia le caratteristiche dinamiche desiderate.
Oggi sono disponibili molti tipi di reti, adatte a vari scopi, con caratteristiche molto differenti, sviluppatesi nel tentativo di superare alcune delle limitazioni delle reti.
Il problema più importante che si ha con le reti neurali e quello dell'«interferenza catastrofica». Cioè il problema dato dal fatto che, una rete addestrata ad un certo set di stimoli, se viene poi addestrata a rispondere ad un altro set di stimoli, può non rispondere più adeguatamente al set di stimoli a cui era addestrata precedentemente. Questi effetti negativi possono essere in parte limitati agendo sulla plasticità della rete. Così, se si desidera che la rete mantenga comunque l'apprendimento di un primo gruppo di elementi, si può rendere meno plastica, meno soggetta a modificarsi ulteriormente per effetto degli stimoli successivi. D'altra parte ciò comporta una ridotta capacità di adattarsi e, nei casi in cui ciò è importante, si può rendere comunque più plastica considerando più importanti le ultime cose via via apprese.
Un importante tentativo di superare questo problema sono le reti ART (adaptive resonance teory) sviluppate da Grossberg. Esse sono in grado di mantenere la flessibilità che permette di apprendere nuove classificazioni e, nello stesso tempo, di non perdere le classificazioni fatte in precedenza. Questo è ottenuto con un procedimento che prende a modello ciò che effettivamente avviene nel riconoscimento effettuato da soggetti umani. Infatti lo stimolo proposto non dà il via ad un passivo convergere verso una risposta, ma alla proposta di un'ipotesi basata su le classificazioni effettuate in precedenza. A questo punto, se si ha una convergenza soddisfacente tra l'ipotesi e lo stimolo reale, questo viene classificato nel modo previsto, altrimenti si crea una nuova categoria.
Illustrare tutti i tipi di reti oggi esistenti sarebbe molto lungo ed esulerebbe dagli scopi di questa illustrazione sommaria delle possibilità delle reti. Più importante può essere, invece, un confronto tra le possibilità e le limitazioni delle reti rispetto alle possibilità offerte dal paradigma dell'intelligenza artificiale tradizionale.
L'interesse attuale per le reti ed il crescere di importanza del paradigma connessionistico, sono dati non solo e non tanto dalle migliori prestazioni delle reti attuali rispetto a quelle di qualche anno fa, ma soprattutto dalla necessità di trovare nuove strade per risolvere le due limitazioni più grandi mostrate dall'approccio simbolico: la scarsi flessibilità di fondo; e la separazione irriducibile tra il livello astratto e quello "reale".
Questi problemi hanno fatto si che fosse molto difficile riprodurre molte capacità umane di base all'apparenza elementari come la percezione, la capacità di sorvolare su alcune imprecisioni nello stimolo, la capacità di apprendere dalla realtà, o quella di comprendere il linguaggio naturale. Nel paradigma simbolico tutto deve essere previsto in anticipo, una situazione leggermente diversa da quella conosciuta è, a tutti gli effetti, una situazione nuova. Sono stati ottenuti dei risultati notevoli, soprattutto con i sistemi esperti, ma un piccolo errore di inferenza, una deduzione, può falsare completamente la soluzione di un problema e per ottenere questi risultati, è stato necessario prevedere il maggior numero possibile di possibilità e sfumature.
Le reti neurali presentano proprio queste caratteristiche di flessibilità e di auto adattamento. Sono in grado di richiamare o riconoscere delle informazioni anche se queste sono degradate, oppure in presenza di rumore. Inoltre non è necessario fornirle di una base dati di partenza perché svolgano un dato compito, sono invece in grado di apprendere autonomamente dai propri errori, o comunque dall'ambiente e di generalizzare questi apprendimenti. D'altra parte l'apprendimento, che sostituisce la programmazione e la creazione di una base dati, oltre ad essere molto lungo e laborioso, necessita di molti esempi che devono essere forniti in modo efficace. Inoltre la capacità di ricostruire stimoli parziali, ha come rovescio della medaglia la scarsa precisione e accuratezza; in alcuni campi, come nella contabilità, è importante che il dato sia riprodotto con precisione e non "approssimato". Un altro difetto che possiamo individuare, è dato dal fatto che rimane oscuro ciò che effettivamente è avvenuto all'interno della rete come è giunta ad una determinata risposta e come potrebbe essere modificata per migliorarne un determinato aspetto.
Nel complesso posseggono però molte delle caratteristiche cercate e sono senz'altro più adatte per alcune applicazioni, anche se non possono sostituire in ogni caso le tecniche, già ben sviluppate, dell'intelligenza artificiale. Le reti hanno trovato utilizzazione soprattutto nei vari campi che richiedono una percezione artificiale in qualche modo paragonabile a quella umana; oppure la necessità di trovare collegamenti o categorizzare situazioni difficilmente definibili. I principali campi di applicazione sono infatti: