1 Una definizione approssimata di intelligenza è che essa può essere attribuita a un qualunque sistema (biologico o artificiale) che ha la capacità di migliorare la sua probabilità di sopravvivere nel mondo reale in cui è capace di competere o cooperare con altri agenti. Questo è un primo motivo per cui è interessante studiare il comportamento animale a fini robotici, essendo gli animali intelligenti nell’accezione sopra detta. Inoltre la stessa esistenza degli animali implica che almeno questa forma di intelligenza è raggiungibile. Infine lo studio del comportamento animale può portare alla costruzione di modelli utili per i robotici. 2 E’ per questo motivo che discipline che interessano i robotici sono: •Neuroscienze: studio dell’anatomia del sistema nervoso, della fisiologia, biochimica e biologia molecolare; •Psicologia: studio della mente e del comportamento; •Etologia: studio del comportamento animale in condizioni naturali. Tralasciamo in questa sede gli aspetti di Neuroscienza in parte trattati nel corso di reti neurali. Mostreremo invece alcuni aspetti dell’etologia e della psicologia. Per avere un’idea dei risultati raggiunti in etologia partiamo da quelli che sono stati gli studi di Lorentz e Tinbergen che introdussero il concetto di behavior e quello di IRM (Innate 3 Releasing Mechanism). L’aspetto fondamentale di questi studi fu che un comportamento animale è innescato da una qualche percezione che l’animale riceve alla quale fanno seguito uno o più behavior in cascata. Per quanto riguarda gli aspetti di psicologia ci rifacciamo ai lavori di Neisser U. (1976) e di Gibson (1979). In particolare quest’ultimo rifiutando il world model introdusse il concetto di affordance o percezione diretta mentre Neisser mostrò quando, per la robotica è opportuno un modello o l’altro. Neisser U. (1976), Cognition and reality: principles and impications of cognitive psychology, W.H. Freeman, San Francisco 4 Gibson J.J. (1979), The ecologica Approach to visual perception, Houghton Mifflin, Boston MA Una critica allo studio comparato di etologia e robotica scaturisce dal richiamo ad artefatti che pur operando in qualche maniera come animali nell’artefatto non vi somigliano affatto. Vedi l’esempio dell’aereo che vola ma senza sbattere le ali. La risposta è che mentre gli animali fanno ricorso a capacità innate i robot operano sulla base di programmi software compilati che tengono conto di dette capacità. 5 Dal comportamento animale, e anche umano, si possono ricavare molte idee ad esempio sul trattamento contemporaneo di diverse percezioni (sensor fusion) e inoltre vivendo gli animali in un open world lo studio del loro comportamento può portare al superamento del problema del closed world. Infatti molti animali semplici quali gli insetti, i pesci, le rane etc. esibiscono un comportamento intelligente, nei termini di cui sopra, pur avendo strutture neurali estremamente semplici. Evidentemente qualche cosa succede per cui evitano il frame problem. 6 Agente e teoria computazionale. Volendo utilizzare quanto le scienze cognitive offrono attraverso lo studio degli animali è necessario cercare un modello che permetta in qualche misura il confronto tra conoscenze cognitiviste e comportamento del robot. Una maniera per concettualizzare i due diversi sistemi è quella dell’”agente”. Un agente è un qualche cosa, hardware o software, che interagisce con il mondo, introducendovi cambiamenti e percependo quanto in esso accade. Con questa vaga definizione si può dire che un uomo, un animale o un artefatto che possiede le suddette proprietà sono “agenti”. 7 Il concetto di agente permette di discutere delle proprietà dell’intelligenza senza discutere i dettagli di come quella intelligenza è presente in un certo agente. Visto in un ottica di sistema ad oggetti si può dire che “agente” è la superclasse delle classi “persona” e “robot”. Questo non chiarisce molto il concetto di intelligenza tra diversi soggetti. Una maniera di analizzare le corrispondenze tra diversi soggetti è quello di individuare a quali “livelli” i soggetti in esame hanno qualche cosa in comune. L’insieme di questi livelli porta a quella che Marr chiamò la teoria computazionale. In maniera molto semplificata possiamo far riferimento a tre livelli. Marr D., Vision: A Computational Investigation into the Human Representation and Processing 8 of Visual Information, W:H: Freman & Co, 1982 Livello 1 – Dimostrazione dell’esistenza di quello che dovrebbe/potrebbe essere fatto. In robotica ci sono molti interessi a realizzare robot per la ricerca di superstiti di catastrofi (terremoti etc.). Se guardiamo verso il mondo animale vediamo che, ad esempio, i moscerini sono molto abili nell’individuare un corpo umano. Questi animali forniscono una prova che un agente computazionalmente semplice può trovare un essere umano utilizzando il calore emesso dal suo corpo. A questo livello possiamo dire che nei due agenti, robotico e biologico, vi è una combinazione di obiettivo e funzionalità. 9 Livello 2 – Decomposizione del "what" in input, output, e relative transformazioni. A questo livello va creato una sorta di flow chart formato da black box costituite da input, output e trasformazione dell’input nell’output. Nell’esempio dei moscerini si può dire che è possibile trovare creature a sangue caldo rilevando la temperatura. Se un moscerino percepisce un’area calda vola verso di essa. Il progettista può modellare questo processo come: input: immagine termica; output: comandi di direzione; Black-box: trasformazione dell’input nell’output. 10 Questo blocco potrebbe essere pensato come un sistema che individua il centroide, pesato sulla base del calore nelle singole zone, dell’immagine termica e genera i comandi per dirigersi verso di esso. Ovviamente sia se si muove il corpo caldo che il moscerino nel suo avvicinamento l’immagine termica cambia e quindi di nuovo va rifatto il calcolo del centroide e così via fino al raggiungimento dell’obiettivo. Non è detto che questo avviene realmente nei moscerini, ma lo studio del loro comportamento risulta utile per la progettazione di un robot salva gente. 11 Si noti che studiando le funzioni esplicate dal moscerino invece del come queste sono implementate permette di non doversi occupare ad esempio del volo del moscerino, visto per altro che probabilmente un robot avrebbe le ruote. Al livello 2 dunque i due agenti, robotico e biologico, possono esibire un processo comune. 12 Livello 3 – Come implementare il processo. A questo livello bisogna occuparsi di come implementare il black-box. Nel moscerino i comandi per dirigersi in una direzione sono elaborati da una qualche rete neurale mentre in un robot potrebbero essere elaborati tramite un algoritmo che calcola l’angolo tra il centroide dell’immagine termica e la posizione attuale del robot. Un’altra ricerca potrebbe essere sviluppata relativamente allo studio di come il moscerino è capace di rilevare differenze di temperature tra sorgenti piccole e vicine. A questo punto i due agenti possono non avere nulla in comune relativamente all’implementazione senso-motoria. 13 E’ quindi chiaro che i livelli 1 e 2 sono sufficientemente astratti da essere applicabili a qualunque tipo di agenti. La differenza tra agente robotico e agente biologico emerge solo al livello 3. Filmato genghis 14 . 15 Alcuni studiosi tentano anche di emulare l’aspetto biologico riproducendo la fisiologia e il meccanismo neurale. In generale questo non è possibile e forse nemmeno desiderabile. Quello che è stato fatto, vedi Genghis, è stato quello di replicare l’intelligenza di alcuni animali e costruire macchine che in qualche modo somigliassero ad essi. Quello che è importante è che al livello 2, focalizzando l’attenzione sulla teoria computazionale dell’intelligenza biologica, i progettisti possono ricavare suggerimenti su come organizzare quella robotica. 16 Cosa sono i behavior animali? Il blocco di base di un intelligenza naturale è denominato behavior. Un behavior è costituito da un mapping tra un insieme di input sensoriali e un insieme di azioni motorie realizzato allo scopo di raggiungere un certo scopo. Ad esempio se un cavallo vede un predatore alza le orecchie, abbassa la testa e scalpita sul terreno. In questo caso l’input sensoriale di un predatore attiva un pattern riconoscibile come un comportamento (behavior) difensivo. Il movimento difensivo attiva un pattern perché la sequenza di azioni prodotte è sempre la stessa indipendentemente da dettagli del tipo quante volte batte lo zoccolo a terra. Il seguente è uno schema di definizione di un behavior. SENSOR INPUT BEHAVIOR PATTERN OF MOTOR ACTION 17 Gli etologi perdono anni per identificare i behavior. Spesso il pattern motorio viene individuato rapidamente: la scommessa sta nel determinare correttamente il pattern di input di quel behavior e del perché quel behavior facilita la sopravvivenza della specie. 18 I behavior possono essere divisi in tre grandi classi: Reflexive behaviors : sono del tipo Stimolo/Risposta (S-R) come quando il ginocchio viene colpito dal martelletto del medico. Essenzialmente questo behavior è meccanico, i circuiti neurali assicurano che allo stimolo sia direttamente connessa una risposta per riprodurla nel più breve tempo possibile. Reactive behaviors: vengono appresi e consolidati laddove debbono essere eseguiti senza una attività conscia. Tutti i behavior che comportano una “memoria” o risposta muscolare sono in genere reflexive behavior (andare in bici, sciare etc.). Questi stessi behavior possono diventare coscienti in particolari casi, ad esempio andare in bicicletta su una strettissima strada di montagna. Conscious behaviors: sono di tipo deliberativo (ad es. assemblare un 19 robot, collegare insieme behavior diversi etc.) La classificazione è importante per diverse ragioni. In primo luogo il paradigma reattivo fa largo uso dei reflexive behavior (in certi testi un behavior è sinonimo di reflexive behavior). In secondo luogo la classificazione aiuta il progettista a determinare quale è il tipo giusto di behavior da implementare. In terzo luogo l’uso della parola “reattivo” ha un significato diverso in etologia e in robotica. In etologia behavior reattivo significa behavior appreso, in robotica connota, invece, un behavior riflessivo. 20 Reflexive behaviors I reflexive behavior sono particolarmente interessanti perchè non implicano alcun ricorso a forme di conoscenza: se percepisci questo allora fai quello. Per un robot questa è una risposta meccanica (hardwired), senza computazioni e sicuramente veloce. I reflexive behavior possono a loro volta essere divisi in tre categorie 1.Reflexes 2.Taxes 3.Fixed-action patterns 1. Reflexes: la risposta dura finchè dura lo stimolo ed è proporzionale all’intensità di questo; 21 2. Taxes: (orientativa) La risposta consiste in un orientamento particolare. I piccoli delle tartarughe esibiscono un comportamento tropotaxis: essi nascono al buio e si muovono verso le zone a maggior luminosità. Fino a non molti anni fa queste zone erano quelle dell’oceano su cui si rifletteva la luce lunare. L’arrivo dell’uomo ha però modificato l’ambiente, per cui i proprietari di stabilimenti balneari in Florida, durante la stagione delle nascita delle tartarughe, devono spegnere di notte le luci esterne per evitare che i piccoli si dirigano verso di esse piuttosto che verso il mare. Le tartarughe nascono di notte perché così sono invisibili per gli uccelli predatori. 22 Fino a non molto tempo fa era un mistero capire come facevano questi neonati a trovare l’oceano. La leggenda vuole che durante una sperimentazione in sito uno studioso che supponeva che il fenomeno avesse una spiegazione nei campi magnetici, dimenticò un faretto acceso sulla sabbia, e tutte le tartarughe si diressero verso il faretto. Dopo di che fu abbandonata l’ipotesi dei campi magnetici. Le formiche invece presentano un comportamento chemiotaxis, esse cioè seguono le tracce chimiche lasciate dai feromoni che esse stesse rilasciano. 23 3. Fixed-action patterns: la risposta dura più a lungo dello stimolo. Questo è ad esempio utile per scappare dai predatori. Bisogna tenere bene in mente che un taxis è relativo ad ogni forma di orientamento dovuto ad uno stimolo, non esclusivamente allo stimolo di avvicinarsi ma anche a quello di allontanarsi. 24 Le precedenti categorie non sono mutuamente esclusive. Per esempio un animale che cammina sulle rocce o attraverso una foresta con alberi che ostacolano la sua vista potrebbe persistere (fixed action pattern) nell’orientarsi verso l’ultima direzione nella quale aveva percepito il cibo anche dopo che non lo percepisce più. 25 La stretta connessione tra azione e percezione spesso può essere quantificata da espressioni matematiche. Un esempio di questo è l’orientamento dei pesci volanti (angelfish). Per nuotare verso l’alto un pesce volante usa un sensore interno (idiothetic) di gravità combinato con un sensore di visione (allothetic) per vedere la linea esterna dell’orizzonte dell’acqua e nuotare verso l’alto. Se questo pesce è messo in una vasca con prismi che fanno sì che la linea dell’orizzonte appaia con un certo angolo il pesce volante nuoterà obliquamente. Ad un’analisi più accurata risulta che l’angolazione con cui nuota il pesce volante è data dal vettore somma del vettore parallelo alla gravità con il vettore perpendicolare 26 alla linea dell’orizzonte percepita. 27 Konrad Lorenz e Niko Tinbergen sono i padri fondatori dell’etologia. Interessante nei loro studi è non solo quali siano i comportamenti degli animali ma anche come questi li abbiano appresi e li selezionino in maniera coordinata. Il loro lavoro fornisce molti suggerimenti su quattro diverse maniere di come gli animali acquisirebbero e organizzerebbero i loro behavior. Il lavoro di Konrad Lorenz and Niko Tinbergen fornisce anche un aiuto nella costruzione di una teoria computazionale (livello 2) per capire come costruire un processo sulla base di behavior.28 Le quattro maniere per acquisire un behavior sono: 1. Essere nati con un behavior (innato). Un esempio è il behavior per l’alimentazione nei piccoli di rondini dell’artico (artic tern). Esse vivono nell’artico dove l’ambiente è prevalentemente bianco e nero. Per altro la rondine dell’artico ha un becco rosso brillante. Quando i piccoli sono nati e sono affamati essi picchiettano sul becco dei genitori. Il becchettare provoca un riflesso di rigurgito nei genitori che rovesciano fuori il cibo per i piccoli. E’ chiaro che i piccoli non riconoscono i loro genitori per se, essendo appena nati. Invece essi sono nati con un behavior che dice: se sei affamato becchetta l’oggetto rosso più grande che vedi. Si noti che i soli oggetti rossi nel loro campo visivo sono i becchi delle rondini dell’artico, ed i più grandi sono quelli più vicini, cioè quelli dei loro genitori. Questa è una strategia semplice e economica. 29 2. Sequenza di behavior innati. Un esempio è il ciclo di accoppiamento (mating cycle) delle (digger) vespe scavatrici. Una (digger) vespa femmina si accoppia con un maschio, quindi costruisce un nido. Quando essa vede il nido finito allora rilascia le uova. La sequenza è logica ma il punto importante è il ruolo degli stimoli che evocano i passi successivi. Il nido non è costruito se la femmina non si accoppia, cioè fino a quando non vi è un cambiamento nel suo stato interno. Le uova non sono rilasciate fin quando il nido non è costruito. Il nido è uno stimolo visivo che evoca il passo successivo. Si noti che la vespa non è necessario che sappia o capisca la sequenza. Ciascun passo è evocato dalla combinazione di stato interno e stato dell’ambiente. Questo è molto simile alle Macchine a Stato Finito (FSM). 30 3. Behavior innati con memoria. Un animale può nascere con behavior innati che vengono inizializzati dalla situazione in cui è avvenuta la nascita. Un esempio di questo sono le api che nascono negli alveari. La conoscenza del luogo in cui si trova l’alveare non è innato. Un ape deve apprendere a cosa assomiglia il suo alveare guardandolo dall’esterno, e come volare da e verso di esso. Si suppone che il curioso comportamento esibito dalle api piccole (che è innato) permette loro di apprendere queste informazioni critiche. Un piccola ape vola fuori dell’alveare per una piccola distanza, quindi vi gira attorno e torna indietro. Questo è ripetuto molte volte con l’ape che si allontana sempre un poco di più lungo una linea retta. Successivamente l’ape ripete l’operazione ma con una certa angolazione rispetto all’apertura dell’alveare. 31 Perché questo? La congettura è che in questa maniera l’ape apprende come riconoscere l’alveare da tutte le possibili angolazioni di arrivo. Successivamente l’ape associa alla vista dell’alveare un comando motore (vola a sinistra, sopra, sotto, ..) per raggiungere l’ingresso. Il behavior di girare attorno all’alveare è innato, quello che è appreso è come appare l’alveare e dove si trova l’ingresso. Questo richiede memoria. 32 4. Apprendimento di un insieme di behavior. I behavior non sono necessariamente innati. Nei mammiferi, specialmente nei primati, i piccoli devono spendere molto tempo per l’apprendimento. Un esempio di apprendimento è la caccia per i leoni. I piccoli di leone non hanno alcun behavior innato per la caccia. Se non sono addestrati dalle madri in un periodo di alcuni anni essi non mostrano alcuna capacità a provvedere a se stessi. A prima vista potrebbe sembrare strano che qualche cosa fondamentale come la caccia del cibo debba essere appreso e non sia innato. Comunque si consideri, la caccia è molto complessa. 33 Essa è composta da una serie di sotto-behavior quali: ricerca del cibo, inseguimento, cattura e così via. La caccia può anche richiedere collaborazione con altri membri del branco. Essa richiede una notevole conoscenza del tipo di animale da cacciare e del terreno di caccia. Si immagini di scrivere un programma che preveda tutte le possibili combinazioni! Pur se i behavior appresi sono molto complessi essi possono sempre essere rappresentati da IRM (Innate Releasing Mechanism) in quanto sono memorizzati proprio i releasers e le azioni mentre l’animale crea da sé il programma. 34 Da queste osservazioni sugli animali si vede come anche un robot potrebbe acquisire uno o più behavior o venendo pre-programmato (innate) o apprendondoli in qualche maniera (learned). Si nota pure che un behavior può essere innescato purchè ci sia un meccanismo di memoria. La cosa importante è che pur se un behavior di tipo S-R può essere pre-programmato addirittura a livello hardware in maniera abbastanza semplice, un progettista di robot complessi non può certamente fare a meno dell’uso di memoria. 35 Innate releasing mechanisms (IRM) Lorenz e Tinbergen hanno tentato di chiarire nei loro lavori come i behavior sono coordinati e controllati dando a questa attività il nome di IRM (Innate Releasing Mechanism). Un IRM presuppone che vi sia uno specifico stimolo (interno o esterno) che rilascia o attiva un pattern stereotipo di azione. Un IRM attiva un behavior. Un releaser è una molla o una variabile booleana che va inizializzata. 36 Una maniera di pensare a un IRM è quella di vederlo come un processo. In una teoria computazionale dell’intelligenza in cui si usano gli IRM, i black box basilari sarebbero i behavior. Ricordiamo per altro che un behavior riceve input sensoriale e produce azioni motorie. L’IRM va oltre; esso ci dice quando un behavior deve essere attivato e quando disattivato. Il releaser agisce come un segnale di controllo per attivare un behavior. Se un behavior non è rilasciato esso non risponde ai segnali di input e quindi non produce output motorio. 37 Releaser Sensory Input BEHAVIOR Pattern of motor action Per esempio se un piccolo di Rondine Artica non ha fame esso non becchetta su un becco rosso anche se questo gli è vicino. Gli IRM possono anche essere visti come un semplice programma di calcolo. L’agente può essere simulato con un programma C mediante un WHILE infinito. Ogni esecuzione del loop provoca il movimento dell’agente per un secondo, e dopo il loop si ripete. enum Releaser={PRESENT, NOT_PRESENT}; Releaser predator; while (TRUE) predator = sensePredators(); if (predator = PRESENT); 38 flee(); In questo esempio l’agente fa solo due cose: percepisce il mondo e quindi fugge se percepisce un predatore. E’ possibile un solo behavior : fuggire. Esso è condizionato dalla presenza del predatore. Un predatore è di tipo releaser ed ha solo due possibili valori: present, not_present. Se l’agente non sente il releaser del behavior non fa nulla in quanto non c’è un behavior di default. In questo esempio vi è anche un filtro delle percezioni. Qui l’agente fa attenzione solo ai predatori mediante una funzione dedicata sensePredators(). Questa funzione potrebbe ad esempio essere un sensore specifico (ad esempio la retina che è sensibile alle frequenze di movimento associate al moto del predatore), o un gruppo di neuroni che fanno la stessa operazione eseguita da un algoritmo 39 equivalente. Altro aspetto interessante dell’IRM è che un releaser può essere una composizione di releaser sia interni che esterni. Se il releaser della composizione non è soddisfatto allora il corrispondente behavior non è attivato. Nello pseudo codice che segue mostriamo un releaser composto. enum Releaser={PRESENT, NOT_PRESENT}; Releaser food, hungry; while (TRUE) { food = senseFood(); hungry = checkState(); if (food == PRESENT && hungry==PRESENT) feed() ; } 40 Nell’esempio successivo si vede cosa accade in una sequenza di behavior dove l’agente mangia, accudisce i suoi piccoli, dorme e quindi ripete la sequenza. I behavior sono implicitamente collegati insieme dai loro releaser. Una volta che il releaser iniziale è attivato si ha il primo behavior. Esso si attiva per un secondo (l’intervallo per un “movimento”) e quindi passa il controllo all’istruzione successiva. Se il behavior non è stato completato il releaser rimane attivo e nessun altro behavior è attivato. Il programma ritorna all’inizio e il primo behavior è eseguito di nuovo. Quando il primo behavior è eseguito lo stato interno dell’animale o quello dell’ambiente esterno potrebbero essersi modificati a seguito delle azioni compiute. Quando stato interno e ambiente coincideranno come stimolo 41per il secondo behavior questo verrà attivato e così via. enum Releaser={PRESENT, NOT_PRESENT} ; Releaser food, hungry, nursed; while (TRUE) { food = sense() ; hungry = checkStateHunger() ; parent = checkStateParent(); if (hungry==PRESENT) searchForFood(); //sets food = PRESENT when done if (hungry==PRESENT && food==PRESENT) feed(); // sets hungry = NOT_PRESENT when done if (hungry==NOT_PRESENT && parent==PRESENT) nurse(); // set nursed = PRESENT when done if (nursed ==PRESENT) sleep() ; 42 } Questo esempio mette anche in evidenza la natura dei behavior. Se l’agente dorme e poi si sveglia ma non ha fame, che cosa farà? In accordo con i releasers se ne sta lì buono finchè non gli viene fame. In esso inoltre i behavior permettono il nutrimento e l’accudimento dei piccoli ma non prevedono la fuga o la lotta con i predatori. Possiamo aggiungere questo come segue: 43 enum Releaser={PRESENT, NOT_PRESENT}; Releaser food, hungry, nursed, predator; while (TRUE) { predator = sensePredator() ; if (predator==PRESENT) flee() ; food = senseFood(); hungry = checkStateHunger() ; parent = checkStateParent() ; if (hungry==PRESENT) searchForFood() ; if (hungry==PRESENT && food==PRESENT) feed() ; if(hungry== NOT_PRESENT && parent==PRESENT) nurse() ; if(nursed==PRESENT) sleep() ; } 44 Si noti che questa organizzazione permette all’agente di fuggire al predatore indipendentemente se si trova nella condizione di mangiare, accudire e dormire perché la presenza del predatore è verificata per prima. Ma il fuggire è temporaneo perché esso non introduce cambi allo stato interno dell’agente, fatto salvo forse nel renderlo più affamato, cosa che verrà verificata all’iterazione successiva. Il codice può produrre una fuga di un secondo seguita da una mangiata di un secondo. Una maniera per superare questo problema è quella di inibire o disattivare ogni altro behavior finchè la fuga non è completata. Questo si può realizzare con uno statement IF THEN ELSE 45 while (TRUE) { predator = sensePredator(); if (predator==PRESENT) flee() ; else { food = senseFood(); hungry = checkStateHunger(); } } 46 L’inserimento dell’ IF THEN ELSE previene l’esecuzione di altri meno importanti comportamenti. Se l’agente si gira e il predatore è fuori della sua vista (diciamo dietro l’agente), il valore di predatore diverrà NOT_PRESENT e allora l’agente tornerà al cibo, al mangiare, accudire o dormire. Fuggire dovrebbe essere un fixed-pattern action behavior che persiste per un qualche periodo di tempo T. 47 Un fixed-pattern action behavior può essere realizzato in questa maniera: #define T LONG_TIME while (TRUE) { predator = sensePredator() ; if (predator==PRESENT) for(time = T; time > 0; time--) flee() ; else { food = senseFood(); } } 48 Il codice C è implementato come una sequenza implicita, dove l’ordine di esecuzione dipende dal valore dei releasers. Una implementazione come sequenza esplicita potrebbe essere la seguente: Releaser food, hungry, nursed, predator; while (TRUE) { predator = sensePredator() ; if (predator==PRESENT) flee() ; food = senseFood(); hungry = checkStateHunger() ; parent = checkStateParent() ; if (hungry==PRESENT) searchForFood () ; feed() ; nurse() ; sleep() ; 49 } La sequenza esplicita ad un primo sguardo sembra più interessante. Essa è meno confusa e i releasers compositi sono nascosti. Ma essa non è equivalente alla prima. Infatti assume che invece del ciclo che opera ogni secondo e che i behavior sono attivati uno di seguito all’altro, ogni behavior assume il comando e gira fino al suo completamento. Si noti che l’agente non può reagire al predatore finchè non ha terminato la sua sequenza di behavior. 50 Una chiamata al behavior fuga potrebbe essere inserito fra ogni behavior oppure la fuga potrebbe essere elaborata sulla base di un interrupt. Ma ogni “vincolo” rende il programma meno generale e difficile da aggiornare o mantenere. Il punto principale qui è: semplici behavior che operano indipendentemente possono portare a qualche cosa che un osservatore esterno può considerare come una sequenza di azioni complesse? 51 Concurrent behaviors Da quanto sopra si evince che i behavior spesso operano indipendentemente e in concorrenza. Quella che appare essere una sequenza fissa può essere il risultato di una normale serie di eventi. Comunque alcuni behavior possono violare o ignorare la sequenza implicita quando l’ambiente presenta stimoli conflittuali. Nel caso dell’agente genitori il behavior fuggire da un predatore era mutuamente esclusivo con i behavior: nutrirsi, accudire, dormire. Possono capitare cose interessanti se due o più behavior sono rilasciati contemporaneamente quando invece questo in genere non accade. 52 Si ha che queste strane interazioni cadono nelle seguenti categorie: Equilibrium: I behavior sembrano bilanciarsi l’uno con l’altro. Si consideri nutrirsi e fuggire per uno scoiattolo quando il cibo è vicino ad una persona su un sedile nel parco. Lo scoiattolo appare visibilmente indeciso se andare a prendere il cibo o scappare via. Dominance: Uno vince su tutti. Se si è affamati e assonnati solo uno dei due behavior verrà attivato. Cancellation: I behavior si annullano l’un l’altro. I maschi dello spinarello quando hanno territori in comune con altri pesci sono combattuti tra la necessità di difendere il loro territorio e attaccare quello degli altri. In alcuni casi i maschi fanno un altro nido! Allora apparentemente gli stimoli aggressivi si annullano, lasciando solo lo stimolo associato 53 con la costruzione del nido. Sfortunatamente non è sempre chiaro quando questi differenti meccanismi per behavior conflittuali vengono applicati. E’ chiaro che non c’è un solo metodo. I robotici devono fare attenzione all’interazione tra i differenti behavior. Da qui sono scaturite, come vedremo le architetture reattive e il paradigma ibrido. 54 Perception in Behaviors Mentre Lorenz e Tinbergen forniscono una serie di idee circa i behavior è chiaro che questi dipendono dalle percezioni. Ulrich Neisser che introdusse il termine “cognitive psychology" nel suo libro Cognition and Reality intuì che percezione e azione non possono essere considerate separatamente. J.J. Gibson, discusso psicologo cognitivo, spese la sua carriera nell’approccio ecologico alla percezione. Questo approccio è giusto l’opposto del modello top-down basato sul ragionamento introdotto da Neisser. 55 Action-perception cycle Il ciclo azione-percezione, mostra che la percezione è fondamentale per ogni agente intelligente. Una semplice interpretazione di questo ciclo è: quando un agente agisce esso interagisce con il suo ambiente essendone parte integrale. Così non appena fa un’azione esso cambia l’ambiente o comunque il modo di percepirlo (per esempio lo vede da un nuovo punto di osservazione). Da qui la percezione del mondo per l’agente è modificata. Questa nuova percezione è usata per una varietà di funzioni incluse quelle cognitive come la pianificazione di cosa fare dopo, o quelle reattive. 56 Action-Perception Cycle Agent acts & Modifies World Cognitive Activity World Directs what to look for Agent samples finds Potential Actions Perception of environment Il termine attività cognitiva include i concetti di controllo, feedback e feedforward in cui l’agente rileva un errore in quello che ha cercato di fare e quello che è realmente accaduto. Una equivalente attività cognitiva di base è stabilire cosa dovrebbe percepire successivamente (percezione attesa). Questa attività può a volte essere semplice come la attivazione di processi per la ricerca di releaser, o tanto complicata come cercare una certa faccia in una folla di persone. 57 Relativamente a se c’è un processo conscio esplicito di elaborazione delle percezioni oppure l’estrazione di un stimolo o di un releaser, l’agente è ora visto come qualcosa che va a percepire un nuovo aggiornamento. Questa è una forma di attenzione selettiva o focus dell’attenzione. Non appena riceve una percezione l’agente la cattura. Se al momento l’agente è in una situazione da ricevere più percezioni prima di continuare con la sua azione primaria, man mano che percepisce fa dei test nel mondo. Se l'agente agisce in modo di raccogliere più percezioni prima di continuare con la sua azione primaria questo è riportato come percezione attiva. Parte del processo di campionamento serve a determinare la potenzialità per una azione. 58 Lorenz e Tinbergen potrebbero pensare a questo processo come dovuto ad un agente che ha un insieme di releasers per un certo task e ora si guarda attorno per verificare se ci sono o no. Se una percezione prevede un’azione l’agente la compie. L’azione modifica l’ambiente circostante ma questo a sua volta modifica la valutazione della situazione da parte dell’agente. In qualche maniera il ciclo azionepercezione sembra sostenere una qualche rassomiglianza superficiale al paradigma gerarchico SENSE-PLAN-ACT. Comunque si noti che: 1) non vi è nessun box che contiene ACT 2) il ciclo non richiede la necessità di un planning ad ogni aggiornamento. L’azione è implicita nell’agente. L’aspetto interessante di un ciclo è capire a che punto percezione e cognizione intervengono. L’agente può sia dover acquisire più percezioni che portare a termine un compito. Infine un agente può o meno avere la necessità di 59 pianificare un azione ad ogni aggiornamento. Due funzioni della percezione In entrambi i ruoli di releaser e guida per il behavior, la percezione filtra gli stimoli che arrivano a seconda del goal da perseguire. Questo è spesso riportato come percezione action-oriented dai robotici, quando vogliono distinguere un approccio percettivo dal paradigma gerarchico globale. Molti animali hanno sviluppato dei sensori specializzati per i loro behavior. Alcune rane che sono accovacciate nell’acqua tutto il giorno hanno gli occhi rivolti verso l’alto e una retina di divisione: in cui la metà più bassa è buona per vedere in acqua, la metà superiore in aria. 60 Gibson: Ecological approach Il dogma centrale dell’approccio di Gibson è: “il mondo è la sua propria migliore rappresentazione”. Il lavoro di Gibson è particolarmente interessante perché complementa il ruolo della percezione nel IRM ed è consistente con il ciclo azione-percezione. Gibson postulò (e provò) l'esistenza di affordances. Le affordances sono potenzialità percepibili dell'ambiente per un'azione. Per esempio, per un piccolo di rondine artica, il colore rosso è percepibile e rappresenta il potenziale per l’alimentazione. 61 Quindi una affordance può essere un modo più formale di definire lo stimolo esterno in IRM. Ma come gli IRMs, un affordance è solamente un potenziale - non conta finché tutte le altre condizioni non sono soddisfatte (il piccolo di rondine ha fame). Un affordance può essere anche il percetto che guida il behavior. La presenza di rosso ad un piccolo di rondine artica affamato rilascia il behavior del cibo. Ma il behavior del cibo consiste di beccare l'oggetto rosso. Quindi in questo caso, rosso è anche il percetto che è usato per guidare l'azione, così come per rilasciarlo. 62 Gibson si riferì al suo lavoro come ad un "approccio ecologico" perché credeva che la percezione evolvesse per sostenere le azioni, e che è sciocco tentare di discutere la percezione indipendentemente dall'ambiente di un agente, e dai suoi comportamenti di sopravvivenza. Per esempio, esiste una specie di api (le scavatrici) che preferisce un tipo speciale di papavero. Per molto tempo, gli scienziati non riuscivano a capire come le api riconoscessero quel tipo di papavero perché quando cambiava colore, diveniva indistinguibile da un altro tipo di papavero che cresceva nella stessa area. Odori, magnetismo? Niente. Allora guardarono il papavero sotto i raggi UV e IR e scoprirono che nelle bande non-visibili quel tipo di papavero si distingueva dall'altra specie di papavero. 63 E quindi gli scienziati furono capaci di localizzare nelle api le componenti retiniche sensibili a quelle bande. L'ape e il papavero erano co-evoluti, quando il colore del papavero mutava verso una banda unica, alla stessa maniera la retina dell'ape si specializzava a rilevare quel colore. Con una retina "accordata" con il papavero, l'ape non doveva fare alcun ragionamento su se c'era un papavero in vista, e, in tal caso, se esso era la specie di papavero giusta. Se quella radiazione UR era presente allora il papavero era là. 64 I pescatori hanno sfruttato affordances fin dall’antichità. Un'esca per la pesca tenta di enfatizzare quegli aspetti del cibo desiderato da un pesce, presentando lo stimolo il più forte possibile: se il pesce ha fame, lo stimolo dell'esca provocherà il nutrirsi. In realtà le esche artificiali non sembrano ad un uomo molto simili al cibo che esse imitano. Quello che Gibson fa di così interessante per i robotici è che un affordance è direttamente percepibile. Percezione diretta vuole dire che il processo che sente non richiede memoria, inferenza, o interpretazione. Questo significa un minimo calcolo che di solito si traduce in un tempo di esecuzione molto rapido quasi istantaneo su un computer o robot. 65 Ma un agente davvero può percepire qualsiasi cosa di significativo senza fare uso della memoria, dell'inferenza, o dell'interpretazione? Bene, certamente i piccoli di rondine artica non hanno bisogno di memoria o inferenza per ottenere cibo da un genitore. E loro sicuramente non interpretano il rosso nel senso di: "oh, c'è una macchia rossa. È un piccolo ovale che è la forma corretta per Mamma ma quell'altra è quadrata, allora deve essere uno studente di etologia che tenta di imbrogliarmi." Per il piccolo di rondine artica , è semplicemente: rosso = cibo, rosso più grande = meglio. 66 Questo funziona per le creature umane? Si consideri il camminare per una sala e qualcuno che getta qualche cosa verso di noi. Noi probabilmente ci abbassiamo. E’ anche probabile che chiniamo la testa senza riconoscere l'oggetto, anche se più tardi potremmo verificare che era solo una bolla di sapone. La risposta è troppo veloce per qualunque ragionamento: "Oh guarda, qualche cosa sta muovendosi verso me. Deve essere una palla. Le palle sono di solito dure. Io dovrei chinare la testa." 67 Noi probabilmente facciamo ricorso, invece, a un fenomeno così di base da non accorgercene, chiamato flusso ottico. Il flusso ottico è un meccanismo neurale per determinare il movimento. Gli animali possono con esso determinare il tempo di contatto piuttosto facilmente. Noi probabilmente abbiamo familiarità con il flusso ottico quando guidiamo una macchina. Quando guidiamo o stiamo in una macchina, gli oggetti davanti sembrano essere a fuoco chiaramente mentre il lato della strada è alquanto indistinto a causa della velocità. Il punto dello spazio dal quale la macchina si sta muovendo è il fuoco di espansione. Da questo punto esterno, c'è un effetto di sfocatura. Più è sfocato sui lati, e più veloce la macchina sta andando. (Questo effetto viene usato nei film di fantascienza per simulare viaggi più veloci della luce.) 68 Quel pattern sfocato è noto come un campo di flusso (perché può essere rappresentato da vettori, come un campo gravitazionale o magnetico). E' semplice, per una rete neurale, estrarre il tempo di contattato, rappresentato nella letteratura cognitiva da t. 69 I gannets (uccelli artici) e i saltatori con l’asta usano entrambi il flusso ottico per fare movimenti all'ultimo minuto, precisi come riflessi. I gannets sono grandi uccelli che si tuffano da grandi altezze verso un pesce. Poiché gli uccelli si tuffano da centinaia di metri nell'aria, essi devono usare le ali come superfici di controllo per dirigere il tuffo verso il pesce designato come bersaglio. Ma loro cadono a piombo così veloci che se colpissero l'acqua con le ali aperte le ossa cave si fracasserebbero. Il gannets piega le ali poco prima di colpire l'acqua. Il flusso ottico trasforma il tempo di contatto, t, in uno stimolo: quando il tempo di contatto diminuisce sotto una certa soglia, esso piega le ali! 70 I saltatori con l'asta fanno a volte piccole rettifiche su dove piantare l'asta man mano che si avvicinano alla sbarra. Questo è alquanto difficile dato che iI saltatore con l'asta sta correndo alla velocità massima. Sembra che i saltatori con l'asta usino il flusso ottico piuttosto che la ragione (troppo lenta) su quale sia il posto migliore in cui piantare l'asta. Il saltatore con l'asta non è l'unico esempio di creatura umana che usa il flusso ottico, è solo un caso che è stato ben documentato. 71 In molte applicazioni, un programma di computer veloce può estrarre un affordance. Comunque, questo non è il caso (finora) del flusso ottico. I meccanismi neurali della retina si sono evoluti in maniera tale da fare il calcolo molto rapidamente. Si sa che i ricercatori di computer vision stanno lottando da anni per duplicare la generazione di un campo di flusso ottico per un'immagine di una macchina fotografica. Solo recentemente sono stati introdotti alcuni algoritmi che funzionano in tempo reale su computer normali. Il punto è che siamo ancora alquanto lontani da poter simulare su un computer le affordances e i sensori specializzati. 72 Le affordances non sono limitate alla visione. Un affordance comune è quella della conoscenza di quando un contenitore è riempito quasi fino in cima. Si pensi al riempimento di una brocca con acqua o al serbatoio di combustibile di una macchina. Senza essere capace di vedere la cavità, una persona sa, quando il serbatoio è quasi pieno dal cambio del suono. Il cambio del suono è direttamente percepibile; la persona non ha bisogno di conoscere quale sia la taglia o la forma del volume che è riempito o anche quale sia il liquido. 73 Una applicazione particolarmente affascinante di affordances in robotica che serve anche ad illustrare che cosa sia un affordance è la ricerca di Louise Stark e Kevin Bowyer. Un problema apparentemente insormontabile in computer vision è riconoscere un oggetto da un’immagine. Letteralmente, il computer dovrebbe dire, "quella è una sedia" se è l’immagine di una sedia. Un modo tradizionale di avvicinarsi al problema è stato quello di usare modelli strutturali. Un modello strutturale tenta di descrivere un oggetto in termini di componenti fisici: "Una sedia ha quattro gambe, un piano, ed uno schienale." Ma non per tutte le sedie va bene lo stesso modello strutturale. Una sedia di dattilografa ha solo una gamba, con un appoggio al fondo. Canestri appesi non hanno affatto gambe. Una panca non ha uno 74 schienale. Di qui si capisce chiaramente che l'approccio strutturale ha il problema che il computer deve avere accesso a molti modelli diversi. Ai modelli strutturali manca anche la flessibilità. Se al robot è presentato un genere nuovo di sedia (per esempio una sedia che sembra una toilette o un secchio dell'immondizia rovesciato), il robot non sarebbe capace di riconoscerlo senza che qualcuno non costruisca esplicitamente un altro modello strutturale. Stark e Bowyer esplorarono un'alternativa all'approccio strutturale chiamato GRUFF. GRUFF identifica le sedie sulla base della funzione piuttosto che della forma. 75 Per la percezione Gibsoniana, una sedia dovrebbe essere una sedia perché ci permette di sedere, o soddisfa la funzione del sedersi. E queste affordance di sedibilità dovrebbero essere caratteristiche che possono essere estratte da un'immagine purchè siano: •Senza memoria (l'agente non ha bisogno di memorizzare tutte le sedie del mondo). •Senza inferenza (il robot non ha bisogno di ragionare: "se ha 4 gambe, ed un piano ed uno schienale, allora è una sedia; noi siamo in un'area che dovrebbe avere molte sedie, così questo aumenta la probabilità che sia una sedia"). •Senza un'interpretazione dell'immagine (il robot non ha bisogno di ragionare: c'è un pezzo di bracciolo, ed un cuscino,... "). •Un computer dovrebbe essere solo capace di guardare un’immagine e dire se c’è qualche cosa in quell’immagine su cui è possibile sedersi o non. 76 Stark e Bowyer rappresentano la sedibilità come una superficie continua a un ragionevole livello da terra che abbia almeno la taglia del sedere di una persona a un'altezza pari a quella delle ginocchia. (Qualunque cosa utilizzabile come appoggio serve a specificare un tipo di sedia.) Stark e Bowyer scrissero un programma di computer che accettava disegni CAD/CAM di studenti che tentarono di mettere giù cose non-intuitive che potessero servire come sedie (come toilette, cesti capovolti, secchi per l'immondizia). Il programma di computer era capace di identificare correttamente superfici sedibili che erano sfuggite anche agli studenti. 77 Bisogna osservare che Stark e Bowyer erano esitanti nel fare dichiarazioni circa quello che questo dice sulla percezione Gibsoniana. L'algoritmo di computer vision può comunque essere accusato di fare delle inferenze ed interpretazioni ("quello è il sedile, quella è l'altezza corretta"). Ma d'altra parte questo livello di inferenza ed interpretazione è significativamente diverso che quello utilizzato nel tentare di determinare la struttura delle gambe, ecc. e la relazione tra taglia del sedile ed altezza potrebbe essere rappresentata in una rete neurale speciale che potrebbe essere evocata ogni qualvolta il robot o l'animale sono stanchi e vogliono sedersi. Il robot comincerebbe a osservare che potrebbe sedersi su una sporgenza o una grande pietra se una sedia o una panca non fossero nei dintorni. 78 79 Neisser: due sistemi percettivi A questo punto, l'idea delle affordances dovrebbe sembrare ragionevole. Una sedia è una sedia perché permette di sedersi. Ma cosa accade quando qualcuno siede sulla nostra sedia? Sembrerebbe che le creature umane hanno dei meccanismi per riconoscere specifici esempi di oggetti. Riconoscimento certamente comporta memoria (la "mia macchina è una Ford Explorer blu ed io l'ho parcheggiata nel cortile sotto l’albero questa mattina"). Altri compiti, come il tipo di investigazione che Sherlock Holmes fa, possono richiedere inferenze ed interpretazioni. Immaginarsi di tentare di duplicare Sherlock Holmes in un computer è alquanto diverso dell'imitare un piccolo di rondine artica affamato . 80 Quindi, mentre le affordances certamente sono un modo potente di descrivere la percezione negli animali, non sono chiaramente gli unici modi con cui gli animali percepiscono. Neisser postulò che ci sono due sistemi percettivi nel cervello (e cita dati di tipo neurofisiologico): 1 - percezione diretta. Questa è la parte del cervello "Gibsoniana", o ecologica e consiste di strutture basse del cervello che si sono evolute nel passato e danno conto delle affordances. 2 - il riconoscimento. Questo è la parte percettiva più recente del cervello che si collega al problem solving e alle altre attività cognitive. 81 Questa parte tiene conto dell'uso di modelli interni per distinguere la "tua tazza" di caffè dalla "mia tazza" di caffè. Qui è dove si hanno modelli percettivi del tipo top-down. Da un punto di vista pratico, la dichotomia di Neisser suggerisce, che la prima decisione nel progettare un behavior è determinare se un behavior può essere portato a termine con un affordance o è richiesto un riconoscimento. Se può essere portato a termine con un affordance, ci può essere poi un modo semplice e corretto di programmarlo in un robot; altrimenti, dovremo usare un algoritmo percettivo più sofisticato. 82 Schema Theory Lo Schema Theory offre un modo utile di gettare uno sguardo su una configurazione di programmazione orientata agli oggetti. Gli psicologi usano lo Schema Theory sin dai primi del 1900. Esso fu portato per la prima volta all'attenzione del robotici di AI da Michael Arbib quando era all'Università di Massachusetts, e più tardi è stato usato estensivamente da Arkin e Murphy per i robot mobili, Lyons ed Iberall per la manipolazione, e Draper et al. per la visione. 83 Lo Schema fu concepito dagli psicologi come un modo di esprimere l'unità di base dell'attività. Uno schema consiste • della conoscenza di come agire e/o percepire (conoscenza, strutture dati, modelli) • dei processi computazionali dai quali viene usata per portare a termine l'attività (l'algoritmo). L'idea di un schema corrisponde esattamente al concetto della classe nella programmazione orientata agli oggetti (OOP). Una classe schema in C++ o Java può contenere sia dati (conoscenza, modelli, releasers) sia metodi (algoritmi per percepire ed agire). 84 Schema: Dati Metodi Uno schema è una modalità generica per fare un'attività, come andare in bicicletta. È una modalità perché una persona può andare su biciclette diverse senza ricominciare ogni volta il processo di apprendimento. Dopo che uno schema è parametrizzato come una classe, i parametri (tipo di bicicletta, altezza del sellino, posizione del manubrio) possono essere forniti all'oggetto al momento dell'instanziazione (quando un oggetto è creato dalla classe). Come con la programmazione orientata agli oggetti, la creazione di uno specifico schema è detto una istanziazione dello schema (SI). 85 L’instanziazione dello schema è l'oggetto che è costruito con quei parametri di cui si ha bisogno per adeguarlo alla situazione. Per esempio, potrebbe essere una mossa verso lo schema del cibo dove l'agente si dirige secondo una linea diretta verso il cibo . Si noti che il "si dirige secondo una linea diretta " è una modalità dell'attività, ed un algoritmo riutilizzabile per il controllo del movimento. Comunque, è solo un metodo e fino a che lo schema muovi_verso_il_cibo non è istanziato, non c'è nessuna specifica meta a cui dirigersi, per esempio, il vassoio di dolciumi sulla tavola. Lo stesso schema potrebbe essere instanziato per muoversi verso un panino. 86 Behaviors e Schema Theory Nella applicazione fatta da Arbib dello schema theory verso una teoria computazionale dell'intelligenza, un behavior è uno schema che è composto da un schema motorio ed uno schema percettivo. Lo schema motorio rappresenta la modalità per l'attività fisica; lo schema percettivo incarna il sentire. Lo schema motorio e lo schema percettivo sono come pezzi di un puzzle; entrambi i pezzi devono essere messi insieme prima di avere un behavior. Releaser Sensory Input BEHAVIOR Schema percettivo Schema motorio Pattern of Motor Action 87 Essenzialmente, il concetto di schema motorio e percettivo coincide con l'etologia e la psicologia cognitiva come segue: •Un behavior riceve input sensori e produce azioni motorie come output. •Un behavior può essere rappresentato come un schema che essenzialmente è un costrutto di programmazione a oggetti (OOP). •Un behavior è attivato da releasers. •La trasformazione di input sensori in output di azioni motorie può essere divisa in due sotto-processi: uno schema percettivo ed uno schema motorio. 88 Behavior:: Schema Data Metodi perceptual_schema(), motor_schema() In termini di OOP, le classi di schema motorio e schema percettivo sono derivate dalla classe schema. Un behavior primitivo ha solo uno schema motorio ed uno percettivo. 89 Ricordando l'IRMs, behavior più sofisticati possono essere costruiti ordinando in sequenza i behavior. Nel caso di una sequenza di behavior, il behavior complessivo potrebbe essere rappresentato in due modi. Un modo è considerare il behavior come composto da molti behavior primitivi, con la logica del releasing che serve come conoscenza di quando attivare ciascuno dei behavior primitivi. Questo probabilmente è il modo più facile di esprimere un behavior "meta.” Un behavior composto di tre behavior può essere pensato come: Behavior:: Schema Data Metodi releaser1 releaser2 releaser3 IRM_logic() behavior1() behavior2() behavior3() 90 In applicazioni più avanzate, l'agente può avere comunque la scelta di caratterizzare il suo behavior come schema percettivo o motorio. Per esempio, una persona di solito usa la visione (schema percettivo predefinito) per uscire da una stanza (schema motorio). Ma se la luce è spenta, la persona può usare il tatto (uno schema percettivo alternativo) per cercare l’uscita da una stanza buia. In questo caso, lo specifico schema per la conoscenza è sapere quale schema percettivo adoperare per condizioni ambientali diverse. Lo Schema theory è abbastanza espressivo per rappresentare concetti di base come IRMs, in più permette la costruzione di nuovi behavior a partire da componenti primitivi. 91 Questo modo alternativo di creare un comportamento scegliendo tra schemi alternativi percettivi e motori può essere pensato come: Data Metodi Environmental_state choose_PS(environmental_state) perceptual_schema_1() perceptual_schema_2() motor_schema() 92 Arbib e colleghi lavorarono al computer su modelli di behavior guidati dalla visione nelle rane e nei rospi. Essi usarono lo schema theory per rappresentare il behavior del rospo in termini computazionali e chiamarono il loro modello rana computatrix (rana è la classificazione per rospi e rane). Il modello dava conto delle osservazioni di Ingle rispetto a quello che accade quando un rospo vede due mosche contemporanemente. Rospi e rane possono essere caratterizzati come soggetti che rispondono visualmente sia a piccoli che a grandi oggetti che si muovono. Gli oggetti piccoli in movimento rilasciano il behavior del nutrirsi, e il rospo si gira verso l'oggetto (taxis) e poi scatta su di esso. (Se l'oggetto risulta non essere una mosca, il rospo può sputarlo fuori.) I grandi oggetti in movimento rilasciano il comportamento della fuga, 93 spingendo il rospo ad andare via. Il behavior del nutrirsi può essere modificato come uno schema comportamentale, o modalità come mostrato sotto. Releaser appearance of small moving object Toad’s vision Sensory Input Perceptual Schema Motor Schema Get coordinates of small, moving object Turn to coordinates of small, moving object Toad’s legs Pattern of Motor Action Feeding Behavior 94 Quando il rospo vede una mosca, una istanza del behavior è instanziata; il rospo si gira verso quell’oggetto e scatta verso di lui. Il gruppo di Arbib andò ad un livello successivo circa la computational theory. Essi implementarono il taxis behavior come un campo vettoriale: la rana computatrix letteralmente sentiva una forza attrattiva in direzione della mosca. Questa direzione e intensità (la magnitudo) furono rappresentate come un vettore. La direzione indicava dove la rana doveva girare e la magnitudo indicava la forza con la quale afferrare. 95 96 Quello che è particolarmente interessante è che il programma della rana computatrix predice quello che Ingle vide nei rospi e rane veri quando a loro erano presentate simultaneamente due mosche. In questo caso, ogni mosca rilascia una istanza separata del behavior di nutrirsi. Ogni behavior produce il vettore per il quale il rospo ha bisogno di girarsi per afferrare la mosca, senza sapere che esiste l'altro behavior. Secondo l'implementazione del vettore di campo dello schema del modello, il rospo ora riceve due vettori, invece di uno. Cosa fare? Bene, la rana computatrix somma i due vettori, dando luogo ad un terzo vettore! Il rospo non afferra nessuna mosca, ma si gira al centro delle due. L'interazione inaspettata delle due istanze indipendenti non è probabilmente un grande svantaggio per un rospo, perché se ci sono due mosche in giro, probabilmente una di loro ritornerà indietro.97 Questo esempio fornisce alcune importanti lezioni per la robotica. In primo luogo, conferma l'idea di una teoria computazionale in cui le funzionalità in un animale e quelle elaborate da un computer possono essere equivalenti. Il concetto di behavior è il Livello 1 della teoria computazionale , lo schema theory (specialmente gli schemi percettivi e motori) rappresentano il Livello 2, il Livello 3 è l'implementazione del vettore di campo dell'azione motoria. L'esempio mostra la proprietà dei behavior emergenti, dove l'agente sembra fare qualche cosa di abbastanza complesso, ma è in realtà solo il risultato della interazione tra moduli semplici. L'esempio mostra anche come i behavior rispondono ai principi della programmazione a oggetti. 98 Un altro aspetto interessante dello schema theory è che supporta il behavior riflessivo. Ricordiamo che nei behavior riflessivi la forza della risposta è proporzionale alla forza dello stimolo. Nello schema theory, allo schema percettivo è permesso di passare, allo schema motorio, sia il percetto che un guadagno. Gli schemi motori possono usare il guadagno per calcolare la magnitudo dell'azione di output. Questo è un esempio di come un particolare schema può essere confezionato per un behavior. 99 Lo Schema theory non specifica come l'output di behaviour concorrenti sono combinati; quello è un problema di Livello 3, o della implementazione. Esempi precedenti hanno mostrato che in alcune circostanze l'output è combinato o sommato, in altri i behaviours normalmente avvengono in sequenza e non in sovrapposizione, e qualche volta c’è anche un effetto tipo il vincitore-prende-tutto . L'effetto del vincitore-prende-tutto è un tipo di inibizione, in cui un behaviour interdice l'instanziazione di un altro behaviour. 100 Arbib e colleghi hanno anche modellato un'istanza dell'inibizione nelle rane e nei rospi. Ritornando all'esempio di alimentarsi e fuggire, un possibile modo di modellare questo behaviour è con due behaviour. Il behaviour alimentarsi consisterebbe di uno schema motorio per muoversi verso un oggetto, e uno schema percettivo per cercare piccoli oggetti in movimento. Il behaviour di fuga sarebbe simile ma con un solo schema motorio per allontanarsi dalla percezione di grandi oggetti in movimento. 101 Studi sulle lesioni cerebrali nelle rane mostrarono qualche cosa di diverso. Il behaviour di alimentazione in realtà consiste nel muoversi verso qualunque oggetto in movimento. Quindi lo schema percettivo è più generale che anticipato. La rana tenterebbe di mangiare qualsiasi cosa, incluso i predatori. Lo schema percettivo nel behaviour di fuga rileva grandi oggetti in movimento. Esso fugge da loro, ma interdice anche lo schema percettivo dell'alimentazione. Di conseguenza, l'inibizione non permette alla rana di tentare sia di fuggire dai predatori sia di mangiarli. 102 103 Principi e problemi nel trasferire i suggerimenti ai Robots Riassumere dei principi generali di intelligenza naturale può essere utile per programmare robot: • I programmi dovrebbero decomporre azioni complesse in behaviours indipendenti che strettamente accoppiano percezione e azione. I behaviour sono intrinsecamente paralleli e distribuiti. • Per semplificare il controllo e la coordinazione dei behaviour, un agente dovrebbe contare su un corretto meccanismo di attivazione booleana (e.g. IRM). • Per semplificare la percezione questa dovrebbe filtrare i percetti e dovrebbe considerare quello che è importante per il behaviour (percezione action-oriented). 104 •La percezione diretta (l'affordances) riduce la complessità computazionale del percepire e permette alle azioni di esplicarsi senza memoria, inferenze, o interpretazioni. •I behaviours sono indipendenti, ma l'output da uno di essi 1) può essere combinato con un altro per produrre un output risultante, o 2) può servire ad inibire un altro (competizione-cooperativa). 105 Sfortunatamente, lo studio della intelligenza naturale non dà un quadro completo di come essa lavori. In particolare ci sono molti problemi irrisolti: •Come risolvere i conflitti tra behaviour concomitanti? I robot saranno costretti a svolgere compiti concomitanti; per esempio, un robot per il salvataggio inviato per evacuare un edificio dovrà attraversare corridoi mentre cerca stanze per vedere se ci sono persone, così come cerca segnali di presenza di fuoco che si propaga. Dovrebbe il progettista specificare i behaviours dominanti? Combinarli? Lasciare che i behaviours contraddittori si annullino e behaviour alternativi emergano? Effettivamente, una delle più grandi differenze nelle architetture dei robot è come loro trattano i behaviours concomitanti. 106 •Quando sono necessarie rappresentazioni di conoscenza esplicite e la memoria? La percezione diretta è meravigliosa in teoria, ma un progettista può essere sicuro che un affordance non è stato perso? •Come mettere su o imparare sequenze nuove di behaviours? L'apprendimento sembra essere una componente fondamentale per la generazione di behaviours complessi in animali avanzati. 107 La letteratura etologica e cognitiva è incerta sui meccanismi di apprendimento. È anche importante ricordare che l'intelligenza naturale non si sovrappone perfettamente alle necessità e alla realtà della programmazione dei robot. Un vantaggio notevole che l'intelligenza animale ha sull'intelligenza robotica è l'evoluzione. Gli animali sono evoluti in un modo che porta alla sopravvivenza della specie. 108 I robot invece sono costosi e solamente un piccolo numero ne viene costruito periodicamente. Perciò, i singoli robot devono sopravvivere, non la specie. Questo mette una pressione tremenda sui progettisti di robot per determinare da subito il progetto giusto. La mancanza di possibilità evolutive su lunghi periodi di tempo rende i robot estremamente vulnerabili poiché si introducono errori dovuti ad una carente comprensione dell'ecologia del robot. 109 Ricordiamo il caso di studio di un robot che era programmato per seguire linee bianche in una competizione segui-il-percorso usando l'affordance del bianco. Fu distratto lungo la strada dalle scarpe bianche di un giudice. Fortunatamente quel difetto di progettazione fu compensato quando il robot ritornò indietro sul percorso reagendo ad una fila di denti di leone bianchi presenti nel prato dove avveniva la gara. 110 I robot presentano altre sfide che non sono così critiche negli animali. Uno degli attributi più problematici del Paradigma Reattivo è che i robotici non hanno un vero meccanismo per predire completamente i behaviour emergenti. Siccome uno psicologo non può predire con certezza perfetta quello che una creatura umana farà sotto una situazione stressante, sembra ragionevole che un robotico che usa principi dell'intelligenza umana non sia capace di predire quello che un robot dovrebbe fare. Comunque, utenti finali di prodotti di robotica (militari, Nasa, industria nucleare) sono riluttanti ad accettare robot senza una garanzia di quello che faranno in situazioni critiche. 111