Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Ernesto Burattini » 9.Animal Behavior - 2


Behavior riflessivi

I Behavior riflessivi 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 Behavior riflessivi possono a loro volta essere divisi in tre categorie

1.Riflessivi;
2.Tassonomici (orientamento, taxis);

3.Pattern di azioni prefissate.

Behavior riflessivi (segue)

  1. Riflessivi: la risposta dura finchè dura lo stimolo ed è proporzionale all’intensità di questo.
  2. Tassonomici (orientamento, taxis): (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.

Behavior riflessivi (segue)

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.

Behavior riflessivi (segue)

3. Pattern di azioni prefissate: 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.

Behavior riflessivi (segue)

Le precedenti categorie non sono mutuamente esclusive.

Per esempio un animale che cammina sulle rocce o attraversa una foresta con alberi che ostacolano la sua vista potrebbe persistere (Pattern di azioni prefissate) nell’orientarsi verso l’ultima direzione nella quale aveva percepito il cibo anche dopo che non lo percepisce più.

Behavior riflessivi (segue)

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 (idiotetico) di gravità, combinato con un sensore di visione (allotetico), 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.

Behavior riflessivi (segue)

Esempio dei pesci volanti Csail.mit.edu

Esempio dei pesci volanti Csail.mit.edu


Behavior riflessivi (segue)

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

Behavior riflessivi (segue)

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

Behavior riflessivi (segue)

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

Behavior riflessivi (segue)

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.

Behavior riflessivi (segue)

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.

Behavior riflessivi (segue)

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

Behavior riflessivi (segue)

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

Behavior riflessivi (segue)

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 noti pure che un behavior può essere attivato 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.

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, che attiva un behavior, è un releaser, simile ad una molla o ad una variabile booleana, che va inizializzato.

Innate releasing mechanisms (IRM) (segue)

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

Innate releasing mechanisms (IRM) (segue)

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.

Diap. 18 – Esempio Releaser in C++

Diap. 18 – Esempio Releaser in C++

Diap. 18 – Esempio Releaser in C++

Diap. 18 – Esempio Releaser in C++


Innate releasing mechanisms (IRM) (segue)

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: PRESENTE, ASSENTE.
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 percepisci_predatore(). 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.

Innate releasing mechanisms (IRM) (segue)

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.

Diap. 18 – Esempio Releaser in C++

Diap. 18 – Esempio Releaser in C++


Innate releasing mechanisms (IRM) (segue)

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 diverranno uno stimolo per il secondo behavior che verrà attivato e così via.

Innate releasing mechanisms (IRM) (segue)


Natura dei behavior

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 riportato nella slide successiva.

Natura dei behavior (segue)


Natura dei behavior (segue)

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.

Natura dei behavior (segue)


Natura dei behavior (segue)

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à ASSENTE e allora l’agente tornerà al cibo, al mangiare, accudire o dormire.

Fuggire dovrebbe essere un pattern di azione prefissata behavior che persiste per un qualche periodo di tempo T.

Realizzazione di pattern di azione prefissata behavior


Realizzazione di pattern di azione prefissata behavior (segue)

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 quella indicata in figura.


Realizzazione di pattern di azione prefissata behavior (segue)

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 behavior che 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.

Realizzazione di pattern di azione prefissata behavior (segue)

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?

Realizzazione di pattern di azione prefissata behavior (segue)

Un esempio di comportamento Preda-Predatore è stato realizzato dal nostro gruppo di ricerca, simulando il comportamento di uno scoiattolo:

Esempio di comportamento animale di fame/paura. Fonte:

Esempio di comportamento animale di fame/paura. Fonte: Youtube

Esempio di comportamento robotico di fame/paura

Esempio di comportamento robotico di fame/paura


I materiali di supporto della lezione

Robot realizzato su piattaforma Lego

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93