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

Ernesto Burattini » 11.Schema Theory


Neisser: due sistemi percettivi

Dopo quanto visto in precedenza, l’idea delle affordances dovrebbe sembrare ragionevole. Una sedia è una sedia perché permette di sedersi. Ma cosa accade quando qualcuno siede sulla nostra sedia? Sembra 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 .

Neisser: due sistemi percettivi (segue)

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. riconoscimento. Questa è la parte percettiva più recente del cervello che si collega al problem solving e alle altre attività cognitive.

Neisser: due sistemi percettivi (segue)

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.

Schema Theory

Lo Schema Theory offre un utile strumento che può essere utilizzato in termini 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.

Schema Theory (segue)

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

Schema Theory (segue)

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.

Definizione della classe Schema

Definizione della classe Schema


Schema Theory (segue)

L’instanziazione dello schema è l’oggetto che è costruito con quei parametri di cui si ha bisogno per adeguarlo alla situazione.

Per esempio, lo schema del mangiare, potrebbe consistere in una mossa a seguito della quale l’agente si dirige secondo una linea diretta verso il cibo .

Si noti che il “si dirige secondo una linea diretta” è una modalità dell’attività, ed un algoritmo riutilizzabile per il controllo del movimento.

Comunque, è solo un metodo e fino a che lo schema:

muovi_verso_il_cibo

non è istanziato, non c’è nessuna specifica meta a cui dirigersi, per esempio, il vassoio di dolciumi sulla tavola.

Lo stesso schema potrebbe essere instanziato per muoversi verso un panino.

Behavior 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 dà conto del 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.

Behavior secondo lo Schema Theory

Behavior secondo lo Schema Theory


Behavior e Schema Theory (segue)

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.

Behavior e Schema Theory (segue)

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.

Definizione della classe Behavior

Definizione della classe Behavior


Behavior e Schema Theory (segue)

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 indicato nella figura a lato.

Definizione della classe Behavior: esempio

Definizione della classe Behavior: esempio


Behavior e Schema Theory (segue)

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). (vedi filmato trova uscita)
Ma se la luce è spenta, la persona può usare il tatto (uno schema percettivo alternativo) per cercare l’uscita da una stanza buia. (vedi filmato segui muro)
In questo caso, lo specifico schema per la conoscenza è sapere quale schema percettivo adoperare per condizioni ambientali diverse.

Comportamento che usa il tatto (sonar)

Comportamento che usa il tatto (sonar)

Comportamento che usa la visione (blob camera)

Comportamento che usa la visione (blob camera)


Behavior e Schema Theory (segue)

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.

Questo modo alternativo di creare un comportamento scegliendo tra schemi alternativi percettivi e motori può essere pensato come indicato in figura.

Esempio di controllo di schemi percettivi

Esempio di controllo di schemi percettivi


Behavior e Schema Theory (segue)

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.

Behavior e Schema Theory (segue)

Il behaviour del nutrirsi può essere modificato come uno schema comportamentale, o modalità come mostrato nella figura a lato.

Behavior del sistema visivo della rana

Behavior del sistema visivo della rana


Behavior e Schema Theory (segue)

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.

Schema theory di una rana che cattura una mosca

Due istanze del behavior del sistema visivo della rana

Due istanze del behavior del sistema visivo della rana

Due istanze del behavior del sistema visivo della rana

Due istanze del behavior del sistema visivo della rana


Behavior e Schema Theory (segue)

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 e schiocca la lingua a vuoto.

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.

Schema theory di una rana che cerca di catturare due mosche


Behavior e Schema Theory (segue)

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.

Behavior e Schema Theory (segue)

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.

Behavior e Schema Theory (segue)

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.

Behavior e Schema Theory (segue)

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.

Behavior e Schema Theory (segue)

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.

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

Principi e problemi nel trasferire i suggerimenti ai Robots (segue)

  • La percezione diretta (l’affordance) 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:
    • può essere combinato con un altro per produrre un output risultante, (cooperazione);
    • può servire ad inibire un altro (competizione).

Principi e problemi nel trasferire i suggerimenti ai Robots (segue)

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.

Principi e problemi nel trasferire i suggerimenti ai Robots (segue)

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.

Principi e problemi nel trasferire i suggerimenti ai Robots (segue)

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.

Principi e problemi nel trasferire i suggerimenti ai Robots (segue)

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.

Principi e problemi nel trasferire i suggerimenti ai Robots (segue)

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.

Principi e problemi nel trasferire i suggerimenti ai Robots (segue)

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.

Test intercorso

Riprendere l’esercizio sviluppato nella prima relazione, analizzarlo e rappresentarlo in termini di behaviour astratti e primitivi utilizzando lo schema theory.

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

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