La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

CORSO SISTEMI DI GOVERNO DEI ROBOT Lezione n.3 Animal Behavior

Presentazioni simili


Presentazione sul tema: "CORSO SISTEMI DI GOVERNO DEI ROBOT Lezione n.3 Animal Behavior"— Transcript della presentazione:

1 CORSO SISTEMI DI GOVERNO DEI ROBOT Lezione n.3 Animal Behavior
prof. Ernesto Burattini

2 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.

3 E’ per questo motivo che discipline che interessano i robotici sono:
L’etologia che può fornire indicazioni sulla individuazione di comportamenti elementari e sulla loro aggregazione logica e temporale finalizzata al perseguimento di determinati scopi. La psicologia che può fornire meccanismi di modellazione del rapporto percezione/azione che è di grande rilevanza per la progettazione di un Sistema Robotico. La neurobiologia che può darci strumenti per studiare i meccanismi dell’elaborazione parallela delle informazioni presenti (sensoriali o inferite) e modelli per il riconoscimento e classificazione di pattern della natura più diversa (sensoriali, proattivi, …). Tralasciamo in questa sede gli aspetti di Neuroscienza in parte trattati nei corsi di reti neurali, mente e macchina e neurobiologia. Mostreremo invece alcuni aspetti dell’etologia e della psicologia.

4 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 behaviour animale e quello di IRM (Innate 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ù behaviour 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 piuttosto che un altro. Lorenz K. (1967). L’anello di Re Salomone, Adelphi, (ed. originale 1952). Tinbergen N. (1953). The herring gull's world, Collins, London. Neisser U. (1976), Cognition and reality: principles and impications of cognitive psychology, W.H. Freeman, San Francisco Gibson J.J. (1979), The ecologica Approach to visual perception, Houghton Mifflin, Boston MA

5 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 che tengono conto di dette capacità.

6 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.

7 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”.

8 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 “essere vivente” 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 of Visual Information, W:H: Freman & Co, 1982

9 Livello 1 – Dimostrazione dell’esistenza di quello che
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, le zanzare 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à.

10 Livello 2 – Decomposizione del "what" in input, output, e relative
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 delle zanzare si può dire che è possibile trovare creature a sangue caldo rilevando la temperatura. Se una zanzara 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.

11 Questo blocco potrebbe essere pensato come un sistema che individua il centroide dell’immagine termica, pesato sulla base del calore nelle singole zone, e genera i comandi per dirigersi verso di esso. Ovviamente sia se si muove il corpo caldo che la zanzara 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 avvenga realmente nelle zanzare, ma lo studio del loro comportamento risulta utile per la progettazione di un robot per il soccorso.

12 Si noti che studiando le funzioni esplicate dalla zanzara invece del come queste sono implementate permette di non doversi occupare ad esempio del volo della zanzara, visto per altro che probabilmente un robot avrebbe le ruote. Al livello 2 dunque i due agenti, robotico e biologico, possono solo esibire un processo comune.

13 Livello 3 – Come implementare il processo.
A questo livello bisogna occuparsi di come implementare il black-box. Nella zanzara 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 la zanzara è 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.

14 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.

15 . Filmato genghis short

16 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 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.

17 Cosa sono i behaviour animali?
Il blocco di base di un’intelligenza naturale è denominato behaviour. Un behaviour è 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 (behaviour) 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 behaviour.

18 Gli etologi passano anni per identificare i behaviour.
Mentre spesso il pattern motorio viene individuato rapidamente. Il problema sta nel determinare correttamente il pattern di input di quel behaviour e del perché quel behaviour facilita la sopravvivenza della specie.

19 I behaviour possono essere divisi in tre grandi classi:
Reflexive behaviours : sono del tipo Stimolo/Risposta (S-R) come quando il ginocchio viene colpito dal martelletto del medico. Essenzialmente questo behaviour è meccanico, i circuiti neurali assicurano che allo stimolo sia direttamente connessa una risposta per riprodurla nel più breve tempo possibile. Reactive behaviours: vengono appresi e consolidati laddove debbono essere eseguiti senza una attività conscia. Tutti i behaviour che comportano una “memoria” o risposta muscolare sono in genere reflexive behaviour (andare in bici, sciare etc.). Questi stessi behaviour possono diventare coscienti in particolari casi, ad esempio andare in bicicletta su una strettissima strada di montagna. Conscious behaviours: sono di tipo deliberativo (ad es. assemblare un robot, collegare insieme behaviour diversi etc.)

20 La classificazione è importante per diverse ragioni.
In primo luogo il paradigma reattivo fa largo uso dei reflexive behaviour (in certi testi un behaviour è sinonimo di reflexive behaviour). In secondo luogo la classificazione aiuta il progettista a determinare quale è il tipo giusto di behaviour da implementare. In terzo luogo l’uso della parola “reattivo” ha un significato diverso in etologia e in robotica. In etologia behaviour reattivo significa behaviour appreso, in robotica connota, invece, un behaviour riflessivo.

21 Reflexive behaviours I reflexive behaviour 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 behaviour possono a loro volta essere divisi in tre categorie 1.Reflexes 2.Taxes 3.Fixed-action patterns

22 1. Reflexes: la risposta dura finchè dura lo stimolo ed è proporzionale all’intensità di questo;
2. Taxes: (orientamento) La risposta consiste in un orientamento particolare. Fino a non molto tempo fa era un mistero capire come facevano i neonati delle tartarughe 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.

23 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. Le formiche invece presentano un comportamento chemiotaxis, esse cioè seguono le tracce chimiche lasciate dai feromoni che esse stesse rilasciano.

24 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.

25 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ù.

26 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 alla linea dell’orizzonte percepita.

27

28 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 behaviour. Il lavoro di Konrad Lorenz e Niko Tinbergen fornisce anche un aiuto nella costruzione di una teoria computazionale (livello 2) per capire come costruire un processo sulla base di behaviour.

29 Le quattro maniere per acquisire un behaviour sono:
1. Essere nati con un behaviour (innato). Un esempio è il behaviour 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 nascono sono affamati e allora 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 behaviour 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.

30 2. Sequenza di behaviour 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).

31 3. Behaviour innati con memoria.
Un animale può nascere con behaviour 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.

32 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 behaviour di girare attorno all’alveare è innato, quello che è appreso è come appare l’alveare e dove si trova l’ingresso. Questo richiede memoria. ALFANT robot

33 4. Apprendimento di un insieme di behaviour.
I behaviour 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 behaviour innato per la caccia. Se non sono addestrati dalle madri in un periodo di alcuni anni essi non mostrano alcuna capacità di 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.

34 Essa è composta da una serie di sotto-behaviour quali: ricerca del cibo, inseguimento, cattura e così via. La caccia può anche richiedere collaborazione con altri membri del branco. Essa ha bisogno di 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 behaviour 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.

35 Da queste osservazioni sugli animali si vede come anche un robot potrebbe acquisire uno o più behaviour o venendo pre-programmato (innate) o apprendondoli in qualche maniera (learned). Si noti pure che un behaviour può essere attivato purchè ci sia un meccanismo di memoria. La cosa importante è che pur se un behaviour 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.

36 Innate releasing mechanisms (IRM)
Lorenz e Tinbergen hanno tentato di chiarire nei loro lavori come i behaviour 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, che attiva un behaviour, è un releaser, simile ad una molla o ad una variabile booleana, che va inizializzato.

37 Una maniera di pensare a un IRM è quella di vederlo come un processo
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 behaviour. Ricordiamo per altro che un behaviour riceve input sensoriali e produce azioni motorie. L’IRM va oltre; esso ci dice quando un behaviour deve essere attivato e quando disattivato. Il releaser agisce come un segnale di controllo per attivare un behaviour. Se un behaviour non è rilasciato esso non risponde ai segnali di input e quindi non produce output motorio.

38 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); flee();

39 In questo esempio l’agente fa solo due cose: percepisce il mondo e quindi fugge se percepisce un predatore. E’ possibile un solo behaviour : 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 behaviour non fa nulla in quanto non c’è un behaviour 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 equivalente.

40 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 behaviour 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() ; }

41 Nell’esempio successivo si vede cosa accade in una sequenza di behaviour dove l’agente mangia, accudisce i suoi piccoli, dorme e quindi ripete la sequenza. I behaviour sono implicitamente collegati insieme dai loro releaser. Una volta che il releaser iniziale è attivato si ha il primo behaviour. Esso si attiva per un secondo (l’intervallo per un “movimento”) e quindi passa il controllo all’istruzione successiva. Se il behaviour non è stato completato il releaser rimane attivo e nessun altro behaviour è attivato. Il programma ritorna all’inizio e il primo behaviour è eseguito di nuovo. Quando il primo behaviour è 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 diverranno uno stimolo per il secondo behaviour che verrà attivato e così via.

42 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() ; }

43 Questo esempio mette anche in evidenza la natura dei behaviour.
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 behaviour permettono il nutrimento e l’accudimento dei piccoli ma non prevedono la fuga o la lotta con i predatori. Possiamo aggiungere questo come segue:

44 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() ; }

45 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 behaviour finchè la fuga non è completata. Questo si può realizzare con uno statement IF THEN ELSE

46 while (TRUE) { predator = sensePredator(); if (predator==PRESENT) flee() ; else { food = senseFood(); hungry = checkStateHunger(); }

47 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 behaviour che persiste per un qualche periodo di tempo T.

48 Un fixed-pattern action behaviour 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(); }

49 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() ; }

50 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 dei behaviour che sono attivati uno di seguito all’altro, ogni behaviour 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 behaviour.

51 Una chiamata al behaviour fuga potrebbe essere inserito fra ogni behaviour 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 behaviour che operano indipendentemente possono portare a qualche cosa che un osservatore esterno può considerare come una sequenza di azioni complesse?

52 Concurrent behaviours
Da quanto sopra si evince che i behaviour 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 behaviour possono violare o ignorare la sequenza implicita quando l’ambiente presenta stimoli conflittuali. Nel caso dell’agente genitori il behaviour fuggire da un predatore era mutuamente esclusivo con i behaviour: nutrirsi, accudire, dormire. Possono capitare cose interessanti se due o più behaviour sono rilasciati contemporaneamente quando invece questo in genere non accade.

53 Si ha che queste strane interazioni cadono nelle seguenti categorie:
Equilibrium: I behaviour 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 behaviour verrà attivato. Cancellation: I behaviour 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 con la costruzione del nido.

54 Sfortunatamente non è sempre chiaro quando questi differenti meccanismi per behaviour conflittuali vengono applicati. E’ chiaro che non c’è un solo metodo. I robotici devono fare attenzione all’interazione tra i differenti behaviour. Da qui sono scaturite, come vedremo le architetture reattive e il paradigma ibrido.

55 Perception in behaviours
Mentre Lorenz e Tinbergen forniscono una serie di idee circa i behaviour è 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.

56 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.

57 Agent acts & Modifies World Agent finds Potential Actions World Action-Perception Cycle Cognitive Perception of Activity Directs what to look for 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.

58 Relativamente a se c’è un processo conscio esplicito di elaborazione delle percezioni oppure l’estrazione di uno 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 di ricevere più percezioni, prima di continuare con la sua azione primaria, man mano che percepisce, fa dei test nel mondo. Quando un agente agisce in modo da raccogliere più percezioni prima di continuare con la sua azione primaria, si parla di percezione attiva. Parte del processo di campionamento serve a determinare la potenzialità per una azione.

59 1) non vi è nessun box che contiene ACT
Lorenz e Tinbergen pensavano 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 essi ci sono o meno. 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 azione-percezione 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 pianificare un azione ad ogni aggiornamento. Cognitive Activity Directs what to look for Perception of environment World Agent acts & Modifies Agent finds Potential Actions Action-Perception Cycle

60 Due funzioni della percezione
In entrambi i ruoli di releaser e guida per il behaviour, 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 behaviour. 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.

61 “il mondo è la migliore rappresentazione di se stesso”.
Gibson: Ecological approach Il dogma centrale dell’approccio di Gibson è: “il mondo è la migliore rappresentazione di se stesso”. Il lavoro di Gibson è particolarmente interessante perché complementa il ruolo della percezione nell’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.

62 Quindi una affordance può essere un modo più formale di definire lo stimolo esterno come 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 behaviour. La presenza di rosso ad un piccolo di rondine artica affamato rilascia il behaviour del cibo. Ma il behaviour del cibo consiste nel beccare l'oggetto rosso. Quindi in questo caso, rosso è anche il percetto che è usato per guidare l'azione, così come per rilasciarlo.

63 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 dell’IR quel tipo di papavero si distingueva dall'altra specie di papavero.

64 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 IR era presente allora il papavero era là.

65 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 ma ai pesci sì. Quello che Gibson dice di 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.

66 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.

67 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 pietra. Le pietre sono di solito dure. Io dovrei chinare la testa."

68 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.)

69 Questo pattern sfocato è noto come 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 contatto, rappresentato nella letteratura cognitiva da t, tra il sistema di visione e l’oggetto visto in movimento.

70 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é 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 essi 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!

71 I saltatori con l'asta fanno a volte piccole rettifiche su dove piantare l'asta man mano che si avvicinano alla sbarra. Questa operazione è alquanto difficile dato che il 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.

72 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 dal poter simulare su un computer le affordances e i sensori specializzati.

73 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.

74 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 in 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 per dattilografa ha solo una gamba, con un appoggio al fondo. Canestri appesi non hanno affatto gambe. Una panca non ha uno schienale.

75

76 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 un water che sembra una sedia o un secchio dell'immondizia rovesciato), il robot non è 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.

77 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 quella immagine su cui è possibile sedersi o non.

78 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 water, cesti capovolti, secchi per l'immondizia). Il programma di computer era capace di identificare correttamente superfici sedibili che erano sfuggite anche agli studenti.

79 Bisogna osservare che Stark e Bowyer erano esitanti nel fare dichiarazioni circa quello che questo ci 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.

80 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 Panda 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 .

81 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.

82 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 dicotomia di Neisser suggerisce, che la prima decisione nel progettare un behaviour è determinare se un behaviour 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.

83 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 Esso fu portato per la prima volta all'attenzione dei robotici di AI da Michael Arbib quando era all'Università di Massachusetts, e più tardi è stato usato estensivamente da Arkin e Murphy (1990) per i robot mobili, Lyons ed Iberall (1984) per la manipolazione, e Draper et al. (1989) per la visione.

84 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).

85 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.

86 L’instanziazione dello schema è l'oggetto che è costruito con quei parametri di cui si ha bisogno per adeguarlo alla situazione. Per esempio, lo schema del mangiare, potrebbe consistere in una mossa a seguito della quale 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.

87 Behaviours e Schema Theory
Nella applicazione fatta da Arbib dello schema theory verso una teoria computazionale dell'intelligenza, un behaviour è 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 behaviour.

88 uno schema percettivo ed uno schema motorio.
Essenzialmente, il concetto di schema motorio e percettivo coincide con quelli proposti dall'etologia e dalla psicologia cognitiva come segue: Un behaviour riceve input sensori e produce azioni motorie come output. Un behaviour può essere rappresentato come un schema che essenzialmente è un costrutto di programmazione a oggetti (OOP). Un behaviour è 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.

89 Un behaviour primitivo ha solo uno schema motorio ed uno percettivo.
behaviour:: 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 behaviour primitivo ha solo uno schema motorio ed uno percettivo.

90 Un behaviour composto di tre behaviour può essere pensato come:
Ricordando l'IRMs, behaviour più sofisticati possono essere costruiti ordinando in sequenza i behaviour. Nel caso di una sequenza di behaviour, il behaviour complessivo potrebbe essere rappresentato in due modi. Un modo è considerare il behaviour come composto da molti behaviour primitivi, con la logica del releasing che serve come conoscenza di quando attivare ciascuno dei behaviour primitivi. Questo probabilmente è il modo più facile di esprimere un behaviour "meta.” Un behaviour composto di tre behaviour può essere pensato come: behaviour:: Schema Data releaser1 releaser2 releaser3 Metodi IRM_logic() behaviour1() behaviour2() behaviour3()

91 In applicazioni più avanzate, l'agente può avere comunque la possibilità di scegliere quale schema percettivo o motorio utilizzare per il suo behaviour 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 behaviour a partire da componenti primitive. Trova uscita Segui muro

92 Questo modo alternativo di creare un comportamento scegliendo
tra schemi alternativi percettivi e motori può essere pensato come: Data Environmental_state Metodi choose_PS(environmental_state) perceptual_schema_1() perceptual_schema_2() motor_schema()

93 Arbib e colleghi simularono al computer modelli di behaviour ispirandosi alla visione nelle rane e nei rospi. Essi usarono lo schema theory per rappresentare il behaviour 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 behaviour 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, spingendo il rospo ad andare via.

94 Il behaviour del nutrirsi può essere modificato come uno schema comportamentale, o modalità come mostrato sotto. Sensory Input Pattern of Motor Action Releaser appearance of small moving object Toad’s legs Feeding Behavior Toad’s vision Perceptual Schema Get coordinates of small, moving object Motor Turn to coordinates

95 Quando il rospo vede una mosca, una istanza del behaviour è 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 behaviour 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.

96

97 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 induce una istanza separata del behaviour di nutrirsi. Ogni behaviour produce il vettore per il quale il rospo ha bisogno di girarsi per afferrare la mosca, senza sapere che esiste l'altro behaviour. 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.

98

99 Questo esempio fornisce alcune importanti lezioni per la robotica.
In primo luogo, conferma l'idea di una teoria computazionale, si ricordi Marr, in cui le funzionalità in un animale e quelle elaborate da un computer possono essere equivalenti. Il concetto di behaviour è 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 behaviour 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 behaviour rispondono ai principi della programmazione a oggetti.

100 Un altro aspetto interessante dello schema theory è che supporta il behaviour riflessivo.
Ricordiamo che nei behaviour 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 behaviour.

101 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 behaviour 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.

102 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 uno schema motorio per allontanarsi dalla percezione di grandi oggetti in movimento.

103 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.

104 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 behaviour 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).

105 La percezione diretta (l'affordances) riduce la complessità computazionale del percepire e permette alle azioni di esplicarsi senza memoria, inferenze, o interpretazioni. I behaviour sono indipendenti, ma l'output di ciascuno 1) può essere combinato con un altro per produrre un output risultante, (cooperazione) 2) può servire ad inibire un altro (competizione).

106 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 behaviour dominanti? Combinarli? Lasciare che i behaviour contraddittori si annullino e i behaviour alternativi emergano? Effettivamente, una delle più grandi differenze nelle architetture dei robot è come loro trattano i behaviour concomitanti.

107 Quando sono necessarie rappresentazioni della 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 behaviour? L'apprendimento sembra essere una componente fondamentale per la generazione di behaviour complessi in animali avanzati.

108 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.

109 I robot invece sono costosi e solamente un piccolo numero ne viene costruito periodicamente.
Perciò, sono i singoli robot che 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.

110 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.

111 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 in situazioni analoghe. 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. Lezione 4


Scaricare ppt "CORSO SISTEMI DI GOVERNO DEI ROBOT Lezione n.3 Animal Behavior"

Presentazioni simili


Annunci Google