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:
• 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.
3
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 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,
4
W.H. Freeman, San Francisco
•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 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 “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
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, 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à.
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 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.
10
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.
11
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.
12
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.
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.
14
.
Filmato genghis short
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 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 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.
SENSOR
INPUT
BEHAVIOR
PATTERN
OF MOTOR
ACTION
17
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.
18
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
19
robot, collegare insieme behaviour diversi etc.)
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.
20
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
21
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.
22
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.
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 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.
28
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.
29
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).
30
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.
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 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
32
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.
33
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.
34
Da queste osservazioni sugli animali si vede come anche un robot
potrebbe acquisire uno o più behaviour o venendo preprogrammato (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.
35
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.
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 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.
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 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
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 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() ;
}
40
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
41
stimolo per il secondo behaviour che 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 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:
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 behaviour 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 behaviour che
persiste per un qualche periodo di tempo T.
47
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();
}
}
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 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.
50
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?
51
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.
52
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
53
con la costruzione del nido.
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.
54
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.
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
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 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.
58
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.
Agent acts &
Agent
Modifies
Action-Perception Cycle
World
Cognitive
World
finds
Potential Actions
Perception of
environment
Activity
Directs what
Comunque si noti che:
to look for
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
59
aggiornamento.
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.
60
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.
61
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.
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 dell’IR 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 IR 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 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.
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 pietra. Le
pietre 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
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.
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é 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!
70
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.
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 dal 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 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
74
schienale.
75
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.
76
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.
77
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.
78
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.
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 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 .
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 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.
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 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.
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.
85
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
86
panino.
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.
Releaser
Sensory
Input
BEHAVIOR
Schema
percettivo
Schema
motorio
Pattern
of Motor
Action
87
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.
88
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.
89
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
Metodi
releaser1
releaser2
releaser3
IRM_logic()
behaviour1()
behaviour2()
behaviour3()
90
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
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 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.
93
Il behaviour 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 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.
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 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à
97
indietro.
98
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.
99
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.
100
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.
101
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.
102
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.
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 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).
104
•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).
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 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.
106
•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.
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ò, 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.
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 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
111
Scarica

ppt