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