L’Approccio Anticipatorio In Robotica: Un' Analisi Comparativa

984 views

Published on

L’Approccio Anticipatorio In Robotica: Un' Analisi Comparativa (Gianguglielmo Calvi, Alessandro Tutino, Giovanni Pezzulo)

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
984
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
29
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

L’Approccio Anticipatorio In Robotica: Un' Analisi Comparativa

  1. 1. L’APPROCCIO ANTICIPATORIO IN ROBOTICA: UNA ANALISI COMPARATIVA Gianguglielmo Calvi*, Alessandro Tutino°, Giovanni Pezzulo$ ° *NOZE s.r.l. °Università degli Studi di Palermo $ ISTC-CNR gianguglielmo.calvi@noze.it, giovanni.pezzulo@istc.cnr.it Introduzione Recentemente molte evidenze convergenti in psicologia e neurobiologia indicano un ruolo cruciale dei meccanismi anticipatori per un ampio settore di funzionalità cognitive, come ad esempio il controllo dell’attenzione [Balkenius e Hulth, 1999] ed il controllo motorio [Wolpert e Kawato, 1988]. Inoltre molti studi nel versante neurobiologico, psicologico e filosofico confortano decisamente l’idea che le rappresentazioni siano principalmente influenzate dalle azioni da eseguire, e profondamente correlate all’apparato motorio [Barsalou, 1999; Castelfranchi, 2005; Grush, 2004; Rizzolatti et al. 1996]. Presentiamo un'analisi comparativa di natura qualitativa di 4 differenti sistemi basati su forward ed inverse model (modelli diretti e inversi) e orientati all'anticipazione senso-motoria in differenti ambienti. Pur avendo parecchie analogie, ognuna delle architetture illustrate offre la possibilità di mettere in risalto tematiche diverse. Dallo studio dei quattro lavori emerge con chiarezza come l’approccio anticipatorio costituisca una tendenza sempre più diffusa nelle applicazioni robotiche. Ma è possibile anche notare la ricchezza e la diversificazione delle soluzioni implementative che possono essere adottate in base all’impostazione teorica di fondo e alla natura del task richiesto all’agente. Un ulteriore motivo di interesse nasce dal fatto che ciascuno dei sistemi dà l’opportunità di focalizzare l’attenzione su diverse problematiche specifiche di partenza. In particolare, il sistema (1) [Tani e Nolfi, 1999] pone principalmente la questione della segmentazione temporale: l’obiettivo è la realizzazione di un task di alto livello come risultato di una corretta successione cronologica di task parziali, eseguiti da moduli addestrati in tempo reale. Viene proposta una metodologia che conduce all’emergenza di un repertorio di moduli specializzati a più livelli di complessità; occorre allora commutare correttamente dall’uno all’altro per comporre il task iniziale desiderato. Il sistema (2) [Pezzulo et al., 2005] enfatizza i vantaggi dell’approccio anticipatorio nell’orientamento dell’attenzione, mettendo a confronto due agenti impegnati in uno stesso task di visual search: il primo implementato mediante un’architettura di tipo puramente reattivo, il secondo basato su capacità predittive derivanti dall’uso di modelli interni. Quest’ultimo mostra prestazioni migliori. Il sistema (3) [Johnson e Demiris, 2005] si concentra sul tentativo di dotare un robot di capacità di imitazione. Avvalendosi di un’architettura con modelli diretti e inversi combinati, mira all’obiettivo di rendere il robot capace di riconoscere e poi di eseguire una sequenza di operazioni manuali compiute da un dimostratore umano. Il sistema (4) [Dearden e Demiris, 2005] consente di illustrare tecniche utili all’apprendimento di modelli diretti per un robot. In questo caso si tratta di un modello diretto realizzato mediante una rete bayesiana, di cui vanno appresi struttura e parametri. Il paradigma anticipatorio. Le applicazioni robotiche, nel corso degli anni, hanno visto affermarsi con sempre maggiore diffusione il paradigma anticipatorio. Esso si basa sul principio che dotare i sistemi robotici della capacità di formulare aspettative sulle conseguenze sensoriali dei propri atti costituisca un vantaggio al momento della selezione dell’azione più opportuna nel corso dell’esecuzione
  2. 2. di un task più o meno complesso. E’ ormai comunemente accettato il dato di fatto che, dovendo scegliere quale azione compiere all’interno di un novero di possibilità, conviene “premiare” quella (o quelle) che mostrano di condurre a esiti sensoriali vicini a quelli previsti. Ciò è coerente con l’evidenza, proveniente da studi psicologici e neurologici [Wolpert e Kawato, 1988] che un comportamento è adeguato quando in virtù di esso accade esattamente ciò che ci si aspettava (il che, spesso, vuol dire ciò che ci si prefiggeva), evitando imprevisti che potrebbero configurarsi come situazioni fuori controllo, cioè, essenzialmente, indesiderate. Si pone allora l’esigenza di uno strumento utile a rendere un sistema in grado di formulare previsioni. Uno strumento simile è offerto dai modelli interni diretti. I modelli diretti, adoperati usualmente sia nella teoria del controllo sia nelle neuroscienze, sono pensabili, in astratto, come sistemi che ricevono in ingresso dati riguardanti lo stato interno corrente dell’agente e i comandi motori ricevuti, e forniscono in uscita lo stato sensoriale futuro, quindi, appunto, un’aspettativa. I modelli diretti sono sovente utilizzati in combinazione con i modelli interni inversi. I modelli inversi sono sistemi in grado di calcolare i comandi motori opportuni affinché siano ottenuti certi obiettivi, rappresentati dallo stato sensoriale voluto, noto che sia lo stato sensoriale di partenza. L’uso di modelli interni e inversi abbinati è frequente e rappresenta un tentativo di integrazione, all’interno di uno stesso sistema di controllo, di meccanismi reattivi e meccanismi deliberativi, e può agevolare l’interazione tra meccanismi di tipo top-down e meccanismi di tipo bottom-up. Quattro Sistemi A Confronto I quattro lavori che sono qui analizzati costituiscono degli esempi particolarmente significativi di applicazioni robotiche ad approccio anticipatorio, e tra di essi è possibile riscontrare più di una variante di utilizzo di modelli interni diretti e inversi. Sistema (1): Learning To Perceive the World as Articulated: An Approach for Hierarchical Learning in Sensory-Motor Systems1 [Tani e Nolfi 1988] La nozione di “modularità” è da molti anni di uso comune sia in informatica sia nelle scienze cognitive, e, prescindendo da contesti applicativi particolari, si riferisce alla possibilità di interpretare un sistema complesso come composto da più sotto-sistemi tra loro indipendenti (moduli), a ciascuno dei quali è affidato un compito specifico. La sinergia tra i diversi moduli (che singolarmente sono in grado di eseguire operazioni elementari) rende il sistema globale capace di comportamenti di alto livello. Si intuisce come, anche nel campo della robotica, sia estremamente conveniente, di fronte a task di elevata complessità, operare una modularizzazione del problema che consenta di risolvere il compito richiesto al robot spezzettandolo in sotto-compiti più semplici. In questo modo basterebbe associare ogni modulo a un comportamento elementare, e ricavare il task complessivo dalla opportuna combinazione di tali moduli comportamentali, con modalità dipendenti dal tipo di architettura del sistema. Uno dei problemi fondamentali delle applicazioni robotiche risulta essere quello della segmentazione temporale, che consiste nel trovare il modo migliore per ottenere comportamenti complessi come successione cronologica di azioni più semplici, compiute per mezzo dei moduli comportamentali. Il principio è che combinando opportunamente i moduli si ottengono sequenze diverse che danno luogo a un ampio spettro di possibili compiti di alto livello. E’ allora necessario trovare un meccanismo che consenta di effettuare una adeguata segmentazione del flusso continuo di informazioni senso-motorie provenienti dall’ambiente operativo in cui il robot è immerso. La difficoltà sta nel saper ricondurre un evento unico (il 1 Di questo lavoro esiste una revisione piuttosto recente [Tani 2004].
  3. 3. comportamento complessivo) a una cronologia di sotto-eventi discreti, distinguibili fra loro in maniera non ambigua. Ma quanto dura un sotto-evento? Quando finisce il precedente, e quando inizia il successivo? E’ una questione non banale, che evoca riflessioni di natura fenomenologica sul concetto di tempo. Una soluzione adottata di frequente è quella dei “punti di riferimento” (landmarks): il cammino del robot viene “scandito” dalla presenza di vari landmark, come svolta a un angolo, fine corsa di giunzioni, avanzamento in linea retta tra due corridoi, ecc. L’inconveniente di questo approccio è che i tipi di landmark sono definiti dal progettista, e non necessariamente risultano intrinseci alla percezione del robot. Sarebbe invece desiderabile che concetti come angoli, giunzioni o corridoi, se necessari per la corretta esecuzione del pilotaggio, venissero appresi empiricamente dal robot. Nel loro approccio Tani e Nolfi propongono uno schema di apprendimento con struttura gerarchica a due livelli (per quanto sia possibile un numero di livelli superiore), in cui si ha una auto-organizzazione dei moduli. Tale schema sfrutta le Reti Neurali Ricorrenti2 (Recurrent Neural Networks, RNN). Si basa sul principio di competizione tra moduli: ogni modulo RNN del livello inferiore riceve in ingresso dati che ragguagliano sullo stato senso- motorio del sistema all’istante attuale, e fornisce come uscita la previsione sui valori di tali dati all’istante di tempo successivo. In sostanza ogni modulo compete con gli altri nella capacità di predizione del flusso senso-motorio, in diverse fasi dell’esecuzione di un’azione. Ogni fase vede “vincente” un modulo, che sarà quindi prescelto per rappresentare il comportamento del robot in quel frangente: per esempio, un modulo RNN potrebbe vincere nel prevedere il flusso senso-motorio mentre il robot gira intorno a un angolo, un altro potrebbe prevalere durante una fase di cammino in linea retta lungo una parete, e così via. Questo verrà fatto reiteratamente nel corso di tutta l’azione, commutando da un modulo vincente a un altro dipendentemente dall’esito delle competizioni, e ottenendo infine una successione temporale di moduli, rappresentativi ognuno di un’operazione elementare: in pratica, è il susseguirsi delle commutazioni a realizzare la segmentazione dell’azione complessiva. Il metodo adottato per realizzare una corretta segmentazione consiste nella rilevazione di variazioni brusche all’interno dei dati del flusso senso-motorio: tali variazioni, infatti, possono in prima approssimazione essere spiegate proprio dall’alternarsi di diverse operazioni elementari (ad esempio cammino lungo un profilo rettilineo, svolta ad un angolo, ripresa del cammino in linea retta); tuttavia si presenta la difficoltà che alcune fasi dell’azione (una rotazione, una svolta) possono dare luogo a cambiamenti rapidi del flusso senso-motorio per tutta la durata dell’operazione, col risultato di possibili sotto-segmentazioni ripetute di un’operazione che invece si vorrebbe associare a un singolo modulo. Perciò, per considerare opportunamente l’intervallo di tempo del processo comportamentale da riconoscere come evento unico, è necessario individuare cambiamenti di notevole entità all’interno della struttura dinamica del flusso senso-motorio, e non si può semplicemente ricorrere al calcolo di differenze rilevate in istanti di tempo successivi. Entrando un po’ più nel dettaglio, è importante osservare come si sfrutti l’idea che l’addestramento in tempo reale, nel caso di sistemi a più reti (in questo caso neurali) separate, possa essere condotto in modo tale da rendere ognuna delle reti capace di specializzarsi nell’esecuzione di uno specifico task parziale, tra tutti quelli in cui può pensarsi modularizzato il task globale. 2 Una RNN è essenzialmente una rete neurale in cui alcuni nodi, al contrario di quanto accade nelle reti neurali “ordinarie”, ricevono in ingresso l’uscita proveniente da nodi appartenenti a strati successivi, introducendo così la possibilità di rilevare dinamiche dipendenti dal tempo: dunque una rete neurale in cui è presente una qualche forma di feedback.
  4. 4. . Figura 1. Architettura del sistema. (a) schema della gerarchia dell’apprendimento, (b) dettaglio del generico modulo RNN per l’apprendimento del flusso senso-motorio nel livello inferiore, (c) dettaglio del generico modulo RNN’ del livello superiore per l’apprendimento delle dinamiche di apertura delle porte Ogni modulo RNN diventa un “esperto” nel prevedere il flusso senso-motorio relativo a un ben determinato task parziale. Il processo di addestramento, dunque, si traduce nel progredire
  5. 5. della facoltà di divenire esperti del proprio compito specifico che i moduli RNN vanno acquisendo, realizzando così l’apprendimento su base empirica prima auspicato. L’architettura, mostrata in Figura 1, presenta, in ognuno dei due (o più) strati della gerarchia, un sistema di “porte” (identificate dalla lettera “g” di “gate”) che impone un peso numerico a fattore dell’uscita di ogni modulo: l’uscita complessiva dello strato sarà la media pesata dalle g delle uscite dei singoli moduli, e istante per istante il contributo dell’i-mo modulo RNN sull’uscita complessiva è inibito o esaltato a seconda della maggiore o minore apertura della rispettiva porta, ossia a seconda del maggiore o minore valore del peso i-mo. Al livello inferiore della gerarchia un valore più alto di gi t è il premio che l’i-mo modulo RNN ottiene per aver commesso un errore di previsione del flusso senso-motorio più basso rispetto agli altri moduli. Il livello superiore della gerarchia ha una struttura del tutto analoga, ma i suoi moduli RNN (indicati con RNN’), invece di avere in ingresso il flusso senso-motorio, hanno in ingresso il vettore GT = (g1T, g2T, …, gnT) ed elaborano una previsione sul vettore GT+1, dove T è il periodo di campionamento con cui vengono prelevati i valori delle gi del livello inferiore. I moduli RNN’ competono a loro volta per alti valori dei pesi g’iT, che ancora possono ricorsivamente essere inviati a un eventuale terzo livello, e così via. Si realizza in tal modo una progressiva astrazione di natura bottom-up del segnale, che al livello di astrazione più basso corrisponde al flusso senso-motorio, in ingresso allo strato inferiore della gerarchia. Il modello teorico a due strati è stato poi testato mediante simulazione di pilotaggio di un robot attraverso due stanze di topologia differente collegate da una porta. Il robot percepisce i dati relativi all’ambiente circostante mediante l’uso di sensori di range3 laser. L’architettura adoperata comprende cinque moduli RNN tanto per il livello inferiore quanto per quello superiore. Viene descritta nei particolari la fase di apprendimento e viene fatto notare come essa abbia portato lo strato inferiore del sistema a generare 4 tipi di concetti elementari significativi (svoltare a sinistra e a destra ad un angolo, superare un incrocio a “T”, seguire una parete dritta), sfruttando 4 dei 5 moduli RNN disponibili, e lo strato superiore a creare nel robot il concetto più complesso di stanza. I risultati della simulazione sono infine corredati di immagini che mostrano, fase per fase, quale modulo vince la competizione in ciascuno dei due livelli, con relativa commutazione tra un modulo e l’altro ogni volta che ciò si rende necessario. Sistema (2): Fuzzy-based Schema Mechanisms in AKIRA. [Pezzulo et al., 2005] Questo lavoro offre una sperimentazione comparativa nel dominio della ricerca visiva [Wolfe, 1996]: viene sottoposto uno stesso compito (task) di riconoscimento a due sistemi diversi, e vengono confrontati i risultati. Il task consiste nella individuazione di una “T” rossa all’interno di un’immagine in cui siano presenti, col ruolo di elementi “distrattori”, anche diverse “T” verdi e “L” rosse. Nel fare ciò sono messe a confronto due architetture: la prima basata su meccanismi di selezione dell’azione di tipo reattivo4, la seconda su meccanismi a schema di tipo anticipatorio5. Entrambe sono implementate il framework AKIRA 3 Un sensore di range è un dispositivo capace di generare immagini di range. Un’immagine di range differisce da una convenzionale immagine a gradazioni di grigio per il fatto che a ogni pixel dell’immagine di range non è associato un livello di intensità luminosa, bensì una misura della distanza tra il sensore e un punto della superficie di un oggetto presente nella scena osservata. Di tali sensori esistono molti tipi diversi, che si trovano sovente utilizzati in combinazione. 4 Il problema dell’Action Selection può essere definito in termini alquanto generici: dati certi obiettivi e un insieme di azioni possibili, l’agente deve stabilire la prossima azione da compiere. Tuttavia a tale problema si sono spesso date risposte implementative basate su soluzioni ad approccio essenzialmente reattivo. 5 Sebbene i principi della teoria degli schemi siano di per sé compatibili con diverse possibili architetture, particolarmente efficace ne risulta l’utilizzo in associazione a strategie anticipative. Avvalendosi delle capacità predittive discendenti dall’uso di modelli interni, infatti, i meccanismi a schema possono essere interpretati come
  6. 6. (http://www.akira-project.org/). Dei due metodi sono prima di tutto discusse le differenze concettuali: nei meccanismi reattivi la scelta del modulo comportamentale da attivare in un certo momento dipende unicamente dal verificarsi di certe pre-condizioni (sensoriali) cui sono associati, come conseguenze, certi comportamenti; nel caso di schema anticipatorio, invece, le pre-condizioni determinano solo la scelta iniziale, mentre è il successo della previsione che determina se uno schema (ovvero, un modulo comportamentale che include due modelli interni, un modello diretto ed un modello inverso) continua a essere usato o viene sostituito. I modelli interni degli schemi sono infatti in grado di generare previsioni che vengono messe a confronto con i dati percettivi correnti: viene “premiato” lo schema che denota una migliore attitudine predittiva, in maniera simile a come accade in [Wolpert e Kawato, 1998] ma con un sistema di assegnazione delle priorità parallelo ed asincrono. Se, nel corso della simulazione, viene rilevato uno scarto significativo tra le previsioni dello schema attualmente in azione e i dati sensoriali, lo schema viene abbandonato, e ne viene attivato uno nuovo, capace di generare previsioni più precise (piu’ precisamente, il controllo motorio dipende dalla somma dei comandi di diversi schemi; quello che viene modulato dunque e’ il peso dei vari comandi). La ratio che sottende tale procedimento si fonda sulla constatazione che se un modulo viene scelto sulla base di un errato stimolo sensoriale (ad esempio visivo), la previsione elaborata da tale modulo si discosterà dalle effettive conseguenze del comportamento che esso prescrive, rivelando così l’inadeguatezza dello schema attualmente in azione rispetto alle reali condizioni in cui l’agente si trova a operare (si supponga di essere nel caso di un braccio robot che deve manipolare un oggetto tra diversi oggetti visibili: se un’informazione visiva erronea induce a scegliere il modulo “afferra bottiglia piena” e invece viene afferrata una bottiglia vuota, le previsioni generate dal modello interno diretto dello schema scelto non saranno rispondenti alle percezioni reali, per esempio perché ci si aspetterebbe sul braccio un peso maggiore di quello effettivo. In tale situazione si manifesterebbe la necessità di cedere il “controllo dell’azione” a un modulo adatto a gestire la manipolazione di oggetti più leggeri, come appunto una forchetta). Un meccanismo di questo tipo dota il sistema di una sorta di duplice abilità: preventiva e correttiva. Preventiva, perché il modello diretto di uno schema, con le sue computazioni, fornisce una versione virtuale del comportamento che indica. Pertanto le valutazioni su quale sia il modulo da premiare, al quale cioè affidare il controllo dell’azione, possono essere fatte confrontando i comportamenti simulati proposti dai vari moduli, e scegliendo quello idoneo prima di dare concreta esecuzione a qualsiasi azione. Correttiva, perché se un modulo viene scelto per errore, come nell’esempio della racchetta e della forchetta, al passo successivo, grazie allo scarto tra dati osservati e dati previsti, l’errore può essere “scovato”, e vi si può porre rimedio cedendo il controllo a uno schema più appropriato. Questa capacità di recupero da una situazione di errore costituisce un vantaggio dell’approccio anticipatorio rispetto ai meccanismi reattivi. Inoltre il sistema nell’operare il controllo motorio parallelamente categorizza l’oggetto; in questo senso, la concettualizzazione di un oggetto o di un evento dipende dalle interazioni (attuali o possibili) che si hanno con esso. Come precedentemente osservato, il sistema in esame (sia nel caso reattivo che nel caso anticipatorio) non delega il controllo dell’azione ad un solo modulo, ma a più moduli in parallelo, responsabili di comandi che andranno poi fusi in maniera pesata, ad esempio tramite tecniche fuzzy. La prima architettura testata sul task di riconoscimento della “T” rossa è quella basata sull’approccio reattivo. Dell’intera immagine, contenente obiettivo e distrattori, si assume che istante per istante sia visibile solo una porzione: quella illuminata da una fovea mobile. Tale porzione consta di tre settori circolari concentrici, aventi, dall’interno all’esterno, rispettivamente buona, media e bassa risoluzione, in analogia con la fovea umana. Per sistemi di regole a tre componenti: stimolo-risposta-aspettativa (laddove i meccanismi reattivi contemplano l’attuazione di regole semplicemente di tipo stimolo-risposta).
  7. 7. eseguire il compito di ricerca richiesto ci si avvale di una struttura a cinque strati, dove ogni strato è dedicato a un sotto-problema del task complessivo, ciascuno di diversa complessità, ed è perciò popolato da moduli specializzati: il primo strato contiene moduli preposti alla discriminazione tra punti pieni e vuoti nell’immagine, con una concentrazione di moduli decrescente via via che si procede verso l’esterno della veduta (porzione illuminata dalla fovea in quel momento); il secondo strato contiene moduli capaci di distinguere il colore (verde o rosso) dei punti pieni segnalati dai moduli del primo strato; il terzo strato contiene moduli in grado di individuare linee, vale a dire sequenze di punti allineati aventi lo stesso colore; il quarto strato contiene moduli adibiti al riconoscimento di lettere, che svolgono quindi la funzione di più alto livello di discernere tra assemblaggi di linee che formano una “L” e quelli che formano una “T”, qualunque sia l’orientamento di tali lettere (quindi anche ruotate o capovolte); il quinto strato è costituito da un singolo modulo, rappresentante la fovea mobile, responsabile quindi della sequenza dei movimenti che spostano la veduta all’interno dell’immagine. In aggiunta, al di fuori della gerarchia degli strati, è presente un modulo-goal, che rappresenta il task da eseguire, come ad esempio trovare la “T” rossa. Figura 2. I moduli nei 5 strati nell’architettura per il visual search. Nella figura sono evidenziati i legami energetici che sono alla base dell’architettura di AKIRA (linee scure) e permettono di scambiare attivazione. Sono inoltre evidenziate le relazioni fra moduli dei differenti strati (linee tratteggiate): solo i moduli dello strato1 hanno accesso all’informazione visiva, mentre gli altri sfruttano come informazione il livello di attivazione dei moduli dei livelli inferiori. Ad esempio, un modulo di livello 3 “riconosci_linea” impara a riconoscere (ed a prevedere) che durante il movimento in linea retta una serie di moduli di livello 2 “riconosci_rosso” mantengono un alto livello di attivazione: cio’ significa che c’e’ una linea nel campo visivo. La simulazione sfrutta una caratteristica di AKIRA che e’ quella di assegnare risorse computazionali (energia) variabili ai moduli, in modo che i moduli piu’ attivi possano operare piu’ spesso e con maggiore priorita’. In questo senso i moduli possono essere visti come nodi in una rete connessionista; a differenza della maggior parte dei sistemi connessionisti, pero’, i moduli possono incorporare procedure piu’ o meno complesse (e non sono semplici unita’ numeriche come le reti neurali) ed agiscono in maniera asincrona. La simulazione dunque inizia attivando il modulo-goal, che diffonde la sua attivazione, sotto forma di risorse computazionali (energia), ai moduli in grado di riconoscere una “T” e a quelli in grado di riconoscere il rosso. A questo punto, grazie alla rete di link fra i moduli dei diversi strati, si innesca un processo di attivazione reciproca che si traduce in istruzioni in tempo reale alla fovea mobile, la quale percorrerà un cammino che si fermerà nel momento del raggiungimento e del riconoscimento della “T” rossa. Un aspetto interessante da mettere in luce è che la traiettoria descritta dal riflettore in cerca della “T” rossa, passo dopo passo, è il frutto di una successione di movimenti ciascuno dei quali non è il risultato di un singolo comando proveniente da un unico modulo, bensì di una computazione che tiene conto di più contributi concorrenti. Infatti, nel corso della simulazione, al variare dello scenario, i comandi inviati al modulo del quinto strato avranno origine in generale da più moduli degli strati inferiori. Ogni modulo, in un certo istante, non ha un valore di attivazione crisp
  8. 8. (attivo/inattivo), ma fuzzy (può essere più o meno attivo). Questo ha come conseguenza che ogni modulo cerca di indurre la fovea, con un’energia dipendente dal grado di attivazione corrente, a compiere un certo spostamento. Allora la fovea si troverà a dover rispondere a più indicazioni di movimento contemporanee, alcune delle quali magari contrapposte. Ognuna di queste prescrizioni avrà un peso diverso, a seconda dell’energia con cui il suo modulo la inoltra. Un sistema di regole fuzzy dovrà allora conciliare in tempo reale i diversi input per generare di volta in volta lo spostamento risultante. Tale sistema di regole implementa le modalità di selezione dell’azione secondo un’impostazione essenzialmente reattiva. Infatti, malgrado il meccanismo con cui sia la fovea sia i moduli degli strati più bassi stabiliscono cosa fare al passo successivo sia debolmente connesso all’idea di previsione (vengono formulate congetture sui punti in cui è presumibile che sia conveniente spostarsi), l’architettura è costruita in definitiva su regole di tipo IF-THEN, senza alcuna esplicita rappresentazione anticipatoria. Per testare invece la simulazione adottando una strategia anticipatoria in senso stretto, si sfruttano schemi dotati di semplici modelli diretti, realizzati tramite una Fuzzy Cognitive Map [Kosko, 1992]. Ciò che ne deriva, come ci si aspetta dalla precedente esposizione teorica, è un sistema che produce esplicite aspettative circa le percezioni sensoriali future, tale da premiare gli schemi che hanno successo nella previsione, piuttosto che nell’azione, secondo il principio che uno schema che prevede meglio è più appropriato ad assumere il controllo delle operazioni. Per rendersi conto più chiaramente di come funzioni, a grandi linee, tale criterio, si può osservare la Figura 3. Figura 3. Se uno schema “Riconoscitore_di_T” e uno “Riconoscitore_di_L” trovano ora il riflettore, che proviene dal punto (3,1), nel punto (0,1), riconoscono una linea e cercano entrambi di guidare il riflettore al prossimo passo. Supponendo che il Riconoscitore_di_T sia più attivo, il suo comando sarà quello selezionato, e il riflettore si muoverà nel punto (0,0). A questo punto, se il criterio fosse quello del successo nell’azione, si dovrebbe concludere che falliscono entrambi i riconoscitori di lettera, perché il punto (0,0) vuoto esclude, è vero, la “T”, ma non individua una “L”. Se il criterio è invece quello del successo nella previsione, il Riconoscitore_di_L sarà premiato e otterrà il controllo dell’azione, perché il suo modello diretto prevede che, affinché la lettera sia una “L”, il punto (0,0) debba essere vuoto. Come si vede, se la competizione tra il Riconoscitore_di_L e il Riconoscitore_di_T avviene valutando l’esito di ciò che accade spostando (virtualmente o concretamente) il riflettore nel punto vuoto (0,0), il controllo dell’azione passa al Riconoscitore_di_L, poiché il suo modello diretto ha formulato appunto un’aspettativa di pixel vuoto in (0,0). Ciò è corretto, in quanto la lettera è in effetti una “L” capovolta. Le considerazioni finali del documento mettono in rilievo come l’approccio anticipatorio renda la simulazione più veloce e più accurata rispetto a quello reattivo, sottolineando dunque l’utilità di rappresentazioni munite di proprietà
  9. 9. anticipatorie, in contrapposizione allo slogan reattivista “intelligenza senza rappresentazione” [Brooks, 1991]. Sistema (3): Hierarchies of Coupled Inverse and Forward Models for Abstraction in Robot Action Planning, Recognition and Imitation [Johnson e Demiris, 2005] Questo lavoro si propone di mettere alla prova un robot in grado di manipolare oggetti in compiti di riconoscimento e imitazione di azioni eseguite da un dimostratore umano. L’architettura presentata utilizza un sistema di modelli interni (diretti e inversi) abbinati multipli. Attraverso una struttura gerarchica a più livelli il robot viene dotato di capacità di astrazione motoria. Negli ultimi anni numerose ricerche nel campo delle neuroscienze hanno mostrato come il sistema motorio umano sia coinvolto anche nel processo di codifica delle azioni osservate. Sono emersi e si sono affermati concetti come “neuroni a specchio” (mirror neurons), risonanza motoria ecc., che hanno validato la teoria secondo cui, in un processo di imitazione, è possibile individuare l’attivazione dei medesimi “circuiti cerebrali” sia al momento dell’osservazione di un’azione da parte altrui, sia al momento successivo in cui quella stessa azione viene eseguita. Ciò ha portato al tentativo di creare modelli artificiali che riescano a riprodurre in robotica, mutuandoli in qualche modo dalla biologia, dei meccanismi che consentano il riconoscimento e l’imitazione di un’azione osservata. Gli esperimenti condotti con questo intento hanno evidenziato come, affinché un robot possa riconoscere le azioni eseguite da un umano, sia necessario che il robot possieda la capacità di interpretare astrattamente i movimenti osservati. In mancanza di questa facoltà il riconoscimento diventa impossibile per via delle differenze morfologiche tra modello umano e robot (sebbene sia possibile ridurre l’incidenza di tale problema tramite l’uso di robot umanoidi), e della notevole disparità tra le dimensioni dello spazio di azione umano e quelle dello spazio di azione del robot. Risulta allora chiara la natura di alto livello cognitivo della facoltà di imitazione: imparare a riprodurre azioni tramite l’osservazione della loro esecuzione da parte di altri, nel momento in cui ciò richiede la capacità di mettersi nei panni dell’esecutore, riuscendo a leggerne le intenzioni e a capirne gli obiettivi, significa appunto saper interpretare in termini astratti le azioni che egli compie. Tale prerogativa è perciò sintomo di elevata intelligenza, tanto che in ambito biologico difficilmente è possibile riscontrarla in specie diverse da quella umana (ma il dibattito sulla reale natura del concetto di “imitazione” in quanto forma di apprendimento basata su osservazioni è ben vivo nelle scienze cognitive). In questo documento le capacità di astrazione sono conferite al robot implementandone il sistema motorio per mezzo di una gerarchia a più livelli di complessità, dove in ogni livello è presente un sistema di modelli interni abbinati. La figura 4 dà un’idea di come sia costruita tale gerarchia nel caso di K livelli.
  10. 10. Figura. 4. Una gerarchia a K livelli di modelli inversi e diretti abbinati. La stessa architettura è usata sia per il riconoscimento sia per l’esecuzione di azioni. Il livello più basso contiene un insieme di modelli inversi primitivi indicati come I p . Il modello diretto chiamato ad elaborarne i comandi motori sta nel blocco Fkinematics . S t,r è lo $ stato del robot all’istante t, mentre S t è lo stato previsto all’istante t. Il blocco D in ogni livello rappresenta un ritardo di tempo, usato per sincronizzare la previsione con lo stato corrente, in modo da rendere il confronto consistente. Il livello inferiore della gerarchia contiene un insieme di modelli inversi primitivi I p , che generano comandi motori M t a ogni istante di tempo. I comandi motori attivano direttamente le unità motorie del robot. Il modello diretto di questo livello rappresenta il comportamento cinematico del robot, e fornisce pertanto previsioni sulla traiettoria che risulta dall’esecuzione dei comandi motori. I modelli inversi dei livelli superiori, sulla base dello stato attuale del robot e dello stato desiderato, generano azioni, che sono mandate ai livelli più bassi della gerarchia per essere sottoposte a ulteriori interpretazioni ed elaborazioni. Le azioni associate ai modelli inversi dei livelli superiori sono in pratica una rappresentazione più astratta del comportamento motorio effettivo del robot. Infatti, mentre al livello più basso della gerarchia i modelli inversi primitivi generano azioni immediatamente traducibili in comandi motori, ai livelli più alti i modelli inversi generano azioni rappresentabili in forma simbolica da grafi di azione e parametri obiettivo. Tali azioni non possono comandare direttamente le unità motorie del robot, in quanto costituiscono una codifica a più elevato grado di complessità dei movimenti che il robot dovrà compiere. Perciò è necessaria una loro traduzione in azioni più elementari associate a modelli inversi del livello inferiore, che a loro volta genereranno grafi di azione e parametri obiettivo da inviare al livello più in basso e così via, scendendo sempre di complessità, per abilitare infine, al livello dei modelli primitivi, l’esecuzione vera e propria dei movimenti. Per esempio, due modelli inversi di un livello superiore potrebbero essere associati alle azioni “afferrare oggetto” e “posare oggetto”, mentre al livello inferiore
  11. 11. potrebbero esserci modelli inversi associati ad azioni come “aprire pinza”, “chiudere pinza”, o “muoversi in avanti”. Il grafo di azione schematizza il modo in cui l’azione del livello superiore debba essere interpretata come opportuna combinazione di azioni del livello inferiore. Ogni nodo del grafo rappresenta un modello inverso, e il modo in cui i rami collegano i nodi, ossia il modo in cui il grafo viene attraversato (sfruttando due nodi ausiliari di inizio e fine dell’azione, unici a non corrispondere a modelli inversi) indica la successione con cui le azioni del livello inferiore coinvolte devono essere eseguite per dar luogo all’azione più complessa imposta dal livello superiore. Matematicamente il grafo è gestito mediante una matrice di adiacenza indicata con y. Tale matrice y costituisce parte del segnale efferente dal modello inverso di un livello, segnale che è inviato in ingresso al livello inferiore: è ai modelli inversi di questo livello sottostante che si riferiscono i nodi del grafo, ovvero, in modo equivalente, le righe e le colonne di y. Pertanto la matrice ha dimensioni (N+2) × (N+2), dove N è il numero di modelli inversi del livello inferiore (le due righe e le due colonne in più sono dovute ai nodi ausiliari), e i suoi elementi hanno valore binario: l’elemento y i, j vale 1 se nel grafo è presente un ramo che parte dal nodo j-mo ed entra nel nodo i-mo, vale zero se tale ramo è assente. Un esempio di possibile grafo di azione con relativa matrice di adiacenza è mostrato in figura 5. Figura. 5. (A) Un esempio di grafo di azione. ‘S’ (start) ed ‘E’ (end) sono rispettivamente i nodi ausiliari di inizio e fine. (B) Corrispondenza tra i nodi del grafo e i modelli inversi cui sono associati, identificati dalle azioni che essi generano. (C) Matrice di adiacenza y . Le azioni incarnate dai modelli inversi di questo livello, da eseguire secondo le indicazioni del grafo (ossia della matrice) sono una traduzione di un segnale efferente dal livello superiore, che potrebbe essere per esempio associato al modello inverso “afferrare oggetto”, azione di complessità maggiore. Il grafo va percorso secondo una priorità che prevede l’attraversamento prima in verticale e poi in orizzontale, il che significa che, in questo caso, i nodi 1, 2 e 3 sono eseguiti in parallelo, tutti prima di 4. Il segnale efferente che dai livelli superiori viene inviato ai modelli inversi dei modelli inferiori contiene anche un vettore, chiamato λ , di parametri che specificano gli obiettivi che ciascuno degli N modelli inversi del livello sottostante è chiamato a soddisfare. E’ perciò questo vettore che codifica lo stato desiderato che i modelli inversi devono raggiungere tramite le loro azioni. Il segnale efferente dal modello inverso di un certo livello, espresso mediante la coppia { y , λ }, va in ingresso anche al modello diretto dello stesso livello che dovrà calcolare le conseguenze dell’azione indicata dal segnale. La combinazione di un modello diretto con un modello inverso può, in generale, essere pensata come un sistema di controllo in cui il modello inverso gioca il ruolo di controllore, e al modello diretto spetta il compito di elaborare una previsione sullo stato futuro del sistema. Nell’architettura in esame il modello diretto di ogni livello fornisce in uscita le sue previsioni sotto forma di uno stato $ stimato S t . Più nel particolare: tenendo conto delle azioni indicate dal modello inverso dello
  12. 12. stesso livello e di ulteriori ingressi, costituiti dallo stato attuale del robot S t,r e dagli stati interni S t,i dei modelli inversi del livello inferiore6, il modello diretto produce in uscita la $ stima S t , che rappresenta in forma simbolica, livello per livello, il modo in cui lo stato del sistema cambierebbe se le azioni imposte dal modello inverso, una volta interpretate, come si è detto, al livello inferiore, divenissero operative. In tal modo può avere luogo la simulazione. I processi di simulazione si avvalgono di due cicli di retroazione: uno interno e uno esterno. Il ciclo interno è adoperato per individuare il modo migliore per codificare le azioni in corso in ciascun livello della gerarchia. Ogni modello inverso genera diverse ipotesi di azione che possono soddisfare i parametri obiettivo per esso specificati. Le ipotesi di azione vengono testate sul modello diretto, che ne ricava stati previsti, rispediti indietro al modello inverso. Il modello inverso può a questo punto usare gli stati previsti in sostituzione dello stato attuale, creando un processo di simulazione, durante il quale, tramite il confronto con i parametri obiettivo, il modello inverso può convergere a una o più soluzioni. A ogni livello della gerarchia il modello o i modelli che trovano soluzioni diventano esecutivi, in parallelo. Nel caso di più soluzioni per un modello inverso, viene scelta la codifica che prevale in una competizione di tipo winner-takes-all, basata sul criterio della minima profondità del grafo di azione associato a tale codifica. Il ciclo esterno viene usato per controllare il comportamento del sistema mediante la quantità $ Pe , errore di predizione: il modello diretto produce lo stato previsto S t , che, previo passaggio attraverso il blocco ritardatore D, viene confrontato con lo stato effettivo del sistema, calcolando l’errore di previsione Pe , che è un indice scalare di quanto siano distanti, istante per istante, i vettori “stato stimato” e “stato effettivo”. A seconda delle situazioni, lo stato corrente effettivo su cui è basato il calcolo di Pe può essere quello dell’agente stesso oppure quello dell’attore osservato. La quantità Pe , infatti, riportata in ingresso al blocco dei modelli inversi, può essere usata sia in fase di esecuzione di un task, per orientare le correzioni ai comandi in corso di svolgimento, sia in fase di riconoscimento di un’operazione effettuata da un dimostratore umano. In entrambi i casi si sfruttano la medesima architettura, già illustrata in Figura 4.3, e la stessa definizione matematica per l’errore di predizione: n $ Pe = ∑j=1 S t,j − S t,j . Si effettua cioè la somma delle differenze, in valore assoluto, tra le componenti dei due vettori, assumendo di aver codificato le conoscenze disponibili sugli stati del sistema tramite n informazioni discrete, espresse ognuna dal valore della componente j-ma dei vettori. Durante la procedura di riconoscimento l’hardware motorio del robot è disabilitato, e lo stato del sistema, fornito come input a tutti i livelli della gerarchia in ogni istante di tempo, non è 6 Tra i parametri che ragguagliano, istante per istante, sulla situazione operativa di un modello inverso, figurano quattro stati binari, ciascuno associato a una condizione di generazione o meno di uscita da parte del modello inverso. Questi quattro stati sono: esecutivo, se il modello inverso sta producendo un’azione tuttora in corso; completo, se il modello inverso valuta che gli obiettivi per esso specificati siano sufficientemente vicini, così da non rendersi necessaria alcuna azione; inadatto, se il modello inverso è inutilizzabile per compiere l’azione richiesta, a causa di una incompatibilità con il contesto attuale in cui opera (per esempio, l’azione “posare oggetto sul tavolo” non può essere eseguita se non c’è alcun oggetto); non applicabile, quando l’impedimento che non permette al robot di eseguire l’azione non ha origine dal contesto, bensì dalla impossibilità di soddisfare i parametri obiettivo (per esempio, “posare oggetto sul tavolo” quando la locazione dove va posato l’oggetto è ostruita).
  13. 13. più quello del robot stesso, bensì quello percepito dall’osservazione del dimostratore. Tra i vari modelli inversi di uno stesso livello avviene una competizione: basandosi sul valore di Pe relativo a ciascun modello, istante per istante viene aggiornata la “confidenza” Ct, quantità che misura il grado di fiducia che l’azione associata a quel modello possa effettivamente collimare con quella osservata. A ogni istante di tempo i modelli inversi con Pe più alto vengono puniti con una Ct più bassa, mentre quelli con Pe più basso vengono premiati con un aumento della loro Ct. In ogni istante l’azione con la confidenza più alta è scelta (anche qui vige un meccanismo winner-takes-all) come azione riconosciuta. Il sistema svolge dunque un task di “imitazione” nel momento in cui è in grado di portare a termine in modo adeguato la procedura di riconoscimento e, successivamente, di esecuzione delle azioni percepite osservando il dimostratore. In sintesi, l’esperimento analizzato è incentrato sul riconoscimento e l’imitazione di un task di manipolazione di un oggetto (nello specifico una tinozza) da parte di un robot-pinza. Per lo scenario in questione l’architettura è implementata tramite una gerarchia a due livelli, in cui i modelli inversi del livello inferiore (primitivi) sono sei, associati alle azioni “aprire pinza”, “chiudere pinza”, “avvicinarsi all’oggetto”, “allontanarsi dall’oggetto”, “avvicinare l’oggetto al tavolo” e “allontanare l’oggetto dal tavolo”. Il livello superiore contiene invece due modelli inversi, associati alle azioni più astratte “afferrare oggetto” e “posare oggetto”. Vengono infine illustrati i risultati: l’imitazione è effettuata correttamente, e due grafici, relativi al variare nel tempo della confidenza Ct per i modelli inversi di entrambi i livelli, indicano la successione temporale del riconoscimento delle azioni osservate durante la dimostrazione. Viene tuttavia segnalato il problema, sempre con riferimento alla fase di riconoscimento, di possibili errori dovuti a una esecuzione delle azioni troppo rapida o troppo lenta da parte del dimostratore umano. Sistema (4): Learning Forward Models for Robots 7 [Dearden e Demiris, 2005] Questo lavoro focalizza la sua attenzione sull’aspetto dell’apprendimento, illustrando tecniche che consentono a un robot di costruire autonomamente modelli diretti del proprio sistema motorio, rappresentati in forma di reti bayesiane. La capacità di apprendimento è di importanza fondamentale per consentire ad un robot di adattare il proprio comportamento a diverse situazioni operative e a diversi task. Praticamente la totalità degli ambienti in cui viene immerso un robot hanno caratteristiche mutevoli o che comunque non possono essere modellizzate preliminarmente. Anche nei casi in cui si assumesse l’ambiente completamente noto, fornire al robot tutte le informazioni occorrenti per agire al suo interno potrebbe essere al di là delle possibilità o dei desideri del programmatore. Un robot basato sull’elaborazione mediante modelli diretti dei comandi motori, perciò, per esibire comportamenti realmente autonomi, deve essere in grado di apprendere i propri modelli diretti dinamicamente, in base al contesto operativo. Tali modelli diretti potranno poi essere adoperati per formulare previsioni su come le azioni eseguite inducano cambiamenti sullo stato del robot. 7 Degli stessi autori esiste uno studio analogo, altrettanto recente: “From motor babbling to hierarchical learning by imitation: a robot developmental pathway”. In esso il tema dell’apprendimento viene affrontato confrontandone due possibili forme: l’apprendimento “asociale”, ossia quello realizzato dal robot tramite esplorazione dell’ambiente ed elaborazione dei dati che ne riesce a trarre (come nel presente lavoro), e l’apprendimento “sociale”, ottenuto sfruttando le tecniche di imitazione. Architetture di tipo gerarchico basate su modelli inversi e diretti abbinati, denominate HAMMER (Hierarchical, Attentive, Multiple Models for Execution and Recognition) sono proposte come soluzioni per tentare di combinare i vantaggi di entrambe le risorse di apprendimento.
  14. 14. Questo documento esamina il problema dell’apprendimento di modelli diretti in condizioni di assenza di conoscenza tanto delle caratteristiche dell’ambiente quanto della struttura del sistema motorio del robot. Viene presentato un sistema che, tramite un procedimento di clusterizzazione di immagini a basso livello, individua gli elementi mobili dello scenario. Il robot invia al suo sistema motorio comandi a successione casuale, e riceve in risposta dal suo sistema visivo informazioni sulle conseguenze delle azioni effettuate. Attraverso questa sorta di ciclo di retroazione in cui è inserito il flusso di dati è possibile imparare la struttura e i parametri di una rete bayesiana, che costituisce il modello diretto del robot. Infatti, per rappresentare la relazione di causa-effetto tra i comandi motori e lo stato del robot che ne deriva, che un modello diretto è chiamato a esprimere, una struttura che si presta bene è quella offerta da una rete bayesiana a tre strati, in cui i nodi sono associati ai comandi motori (primo strato, nodi “radice”, indicati con M), allo stato del robot (strato intermedio, indicati con S) e alle osservazioni di tale stato (terzo strato, nodi “foglia”, indicati con O). I nodi del primo e del terzo strato sono raffigurati con un quadrato, a indicare che si tratta di variabili casuali il cui valore è direttamente osservabile in ogni momento. Viceversa, i nodi dello strato intermedio sono raffigurati con un cerchio, a indicare che si tratta di variabili “nascoste”, poiché la conoscenza che il robot possiede del valore di tali variabili gli proviene, in ogni istante di tempo, unicamente dalle informazioni affette da rumore contenute nelle osservazioni O[t]. I rami rappresentano ovviamente le dipendenze tra nodi figli e nodi genitori. In figura 6 è rappresentato lo schema della rete bayesiana da apprendere. Il parametro “d”, che compare nelle M[t-d], rappresenta il ritardo tra l’invio di un comando motorio e il conseguente cambiamento che esso induce nello stato del robot. La ragnatela di rami contrassegnati con il punto interrogativo sta a indicare la struttura, ancora da apprendere, delle dipendenze effettivamente esistenti tra le variabili in gioco. Figura 6: lo schema della rete bayesiana che dovrà rappresentare il modello diretto del robot. La procedura di apprendimento dovrà determinare struttura e parametri di tale rete. Per prima cosa è necessario determinare il numero delle variabili di stato e stabilire cosa esse rappresentino di preciso. Questo viene fatto utilizzando le informazioni fornite al robot dal suo sistema visivo, che è in grado di “tracciare” gli oggetti in movimento senza alcuna informazione iniziale circa il numero o le proprietà di tali oggetti. Le informazioni provenienti dal sistema visivo sono però sotto forma di pixel mobili. Occorre quindi un processo di elaborazione che raggruppi opportunamente regioni dell’immagine che abbiano analoghe caratteristiche di posizione e di movimento (clusterizzazione), attribuendo poi a ciascuna di tali regioni il significato, a più alto livello semantico, di “oggetto”. Per tracciare i pixel viene adoperato l’algoritmo di Lucas-Kanade, per la clusterizzazione vera e propria si fa ricorso all’algoritmo k-means. Esso presenta, però, lo svantaggio di richiedere la conoscenza anticipata del numero k di clusters: si pone rimedio al problema inserendo l’algoritmo k- means all’interno di più sofisticate tecniche basate sulla clusterizzazione fuzzy, che
  15. 15. permettono di svincolarsi dalla necessità di conoscere a priori il valore di k. I clusters così individuati costituiscono gli oggetti in movimento dello scenario, mentre le loro posizioni, dimensioni e velocità possono essere usate come osservazioni. La figura 7 mostra come il robot, attraverso la sua telecamera, visualizzi le pinze in movimento, clusterizzate come oggetti. Figura 7: il sistema visivo del robot ha individuato correttamente due oggetti in movimento, che sono identificati raggruppando i sotto-clusters dello stesso colore. Si giunge così alla determinazione di due oggetti corrispondenti alle due pinze del robot, ciascuno associato a un nodo dello strato intermedio della rete bayesiana: a formare lo stato del sistema saranno pertanto le due variabili S1[t] e S 2 [t] . Le osservazioni costituiranno invece le variabili O[t] del terzo strato delle rete. Sia le S sia le O vengono considerate variabili casuali con distribuzione gaussiana. Completata questa fase, la rete bayesiana viene sottoposta a una procedura di addestramento che ne definisca tutti gli elementi ancora non precisati, in modo da rendere tale rete adeguata al ruolo di modello diretto per il movimento delle pinze del robot. Vanno ancora apprese, infatti, parti fondamentali della struttura. In particolare, non è ancora noto il ritardo “d” tra l’invio del comando motorio e il cambiamento di stato delle pinze. Inoltre va stabilito quale delle possibili osservazioni (velocità, dimensioni, posizione) estratte dal sistema visivo sia preferibile inserire nel modello diretto come nodo O figlio di un nodo S, ossia da quale informazione misurabile sia più corretto dedurre lo stato degli oggetti. Per far funzionare la procedura di addestramento è necessario disporre di una collezione di dati relativi ai valori osservati dei nodi M e O (variabili osservabili della rete). Bisognerà dunque generare una sequenza di comandi motori e rilevare, considerati i rispettivi ritardi, i valori delle osservazioni. Si tratta, in sostanza, di effettuare un esperimento attraverso il quale il robot acquisisca e utilizzi opportunamente le informazioni necessarie per mettere a punto l’apprendimento del modello diretto. Nell’esempio in esame l’esperimento condotto si limita al caso di un solo grado di libertà. C’è quindi un solo tipo di comando motorio, relativo a tre possibili operazioni sulle pinze del robot: aprirle, chiuderle, fermarle. Date tutte queste premesse, lo schema di partenza della rete bayesiana visto in figura 5 si può ora ricondurre a quello di figura 8, in cui il numero di nodi S è ben definito e pari a due, mentre i nodi M sono privi di pedice (esiste un solo tipo di comando motorio) ma in numero indefinito per via del ritardo “d”, ancora non noto.
  16. 16. Figura 8. Schema della rete bayesiana sottoposta effettivamente alla procedura di addestramento. Il sistema visivo del robot ha individuato due oggetti, ossia le proprie pinze, che sono associati ai nodi di stato S1[t] e S2 [t] . Per definire la struttura devono essere ancora appresi il ritardo “d” che intercorre tra azione ed effetto e quale osservazione (tra velocità, posizione e dimensione) debba essere attribuita al cambiamento di stato di ciascun oggetto. Inoltre vanno anche appresi i parametri che specificano la rete bayesiana, ossia valori medi e varianze delle distribuzioni, supposte gaussiane, dei nodi relativi a stato e osservazioni. L’esperimento si basa sulla reiterazione di alcuni passi procedurali: viene scelto il valore del comando motorio, viene inviato tale comando al sistema motorio del robot (che agisce sulle pinze), vengono rilevate le osservazioni dal sistema visivo, viene adoperato l’insieme dei dati raccolti all’interno dell’algoritmo di apprendimento, si ricomincia daccapo con un nuovo comando motorio. Per l’esecuzione dell’esperimento ci vuole dunque un criterio che decida, a ogni iterazione, quale valore del comando motorio debba essere scelto. In realtà ciò che si fa è lasciare che il robot scelga i comandi secondo una successione casuale, regolata, per le transizioni da un valore a un altro fra i tre possibili, da una catena di Markov. Ciò equivale a riprodurre nel robot meccanismi di apprendimento empirici analoghi a quelli di un infante. Si parla in tal caso di “motor babbling”, balbettio motorio: in pratica, il robot procede a tentoni, e così facendo, pur privo di informazioni iniziali sulla natura dei comandi motori o sull’aspetto delle pinze, impara. Tra i vari passi dell’esperimento (che si ripetono ciclicamente), uno è quello del vero e proprio algoritmo di apprendimento. Per apprendere la struttura e i parametri che occorrono per rendere la rete bayesiana definita in tutti i suoi aspetti e idonea a rappresentare il modello diretto del movimento delle pinze, è necessario eseguire una ricerca sullo spazio delle possibili strutture, al variare del ritardo e delle osservazioni, con lo scopo di trovare quella che, per i dati disponibili, massimizza la funzione di log-verosimiglianza del modello, log (P(M, O | G)), dove M e O sono i dati forniti dall’esperimento e G rappresenta il grafo della struttura del modello. Contestualmente vengono appresi i parametri della rete bayesiana per ogni modello candidato, mediante un algoritmo di tipo EM (expectation maximization). L’esito di tutto il procedimento è mostrato in figura 9: il ritardo appreso è pari a 11 intervalli di tempo, e la migliore osservazione risulta essere la velocità delle pinze.
  17. 17. Figura 9: la rete bayesiana del modello diretto per il movimento delle pinze del robot, ad apprendimento ultimato. Una volta che la rete bayesiana è stata finalmente appresa, può essere usata come modello diretto per formulare una previsione sulle conseguenze dei comandi motori. Si inferisce cioè il modello per calcolare la probabilità condizionata della velocità delle pinze in movimento, dato un certo valore “m” per il comando motorio. Ciò equivale a interrogare la rete bayesiana, sottoponendole una query del tipo P(VEL[t]|M[t-11]=m). Le capacità predittive di tale modello vengono infine saggiate sperimentalmente, confrontando gli andamenti delle velocità previste con quelli delle velocità effettive osservate. La previsione risulta essere molto accurata. Inoltre, poiché è possibile interrogare la rete bayesiana anche con query, per esempio, del tipo P(M[t-11]|VEL[t]=v), la stessa rete bayesiana può essere adoperata anche come modello inverso, consentendo stavolta di calcolare la probabilità condizionata relativa ai comandi motori, data una certa osservazione. Questa opportunità viene sfruttata sottoponendo al modello inverso del robot un task di imitazione: sostituendo le osservazioni dei propri movimenti con le osservazioni dei movimenti delle mani di un dimostratore umano, il robot è in grado di riprodurre i comandi motori che con maggiore probabilità possano ricreare sulle sue pinze il movimento umano osservato. Analisi Comparativa Buona parte delle soluzioni teoriche e tecniche incontrate finora è comune ai quattro lavori descritti (ai quali ci si riferirà mediante gli indici (1), (2), (3) e (4) cui sono stati associati). E’ perciò interessante osservare le peculiarità di ciascuno di essi, mettendone in rilievo le analogie e le differenze più significative. L’unità operativa fondamentale che spesso fornisce una risposta al problema della modularizzazione è lo schema. L’uso di modelli diretti, poi, dota gli schemi di facoltà predittive, e questa abilità è stata sfruttata nella seconda simulazione di (2), che era basata su una esplicita rappresentazione dell’aspettativa mediante schemi S-R-E (stimolo-risposta- aspettativa). Gli schemi di questo tipo possono essere considerati una sorta di estensione dei moduli comportamentali a due componenti (stimolo-risposta), che codificano un approccio essenzialmente reattivo. In (1) e nella prima simulazione di (2) si ha proprio a che fare con situazioni di questo genere: malgrado in quei casi la funzione previsionale sia contemplata (in (1) è anzi decisiva), non c’è una rappresentazione in senso stretto delle aspettative, che è invece possibile ottenere mediante schemi S-R-E.
  18. 18. In forma più o meno esplicita è possibile osservare il frequente ricorso a una organizzazione gerarchica del sistema: in (1) i moduli elementari formano azioni via via più complesse, dando luogo così a una composizione di tipo bottom-up; in (3) le azioni stabilite dai modelli inversi di ogni livello vanno tradotte in successioni di sotto-azioni più semplici di livello inferiore, fino ad azioni primitive direttamente eseguibili cinematicamente, seguendo dunque un approccio top-down. L’approccio anticipatorio può essere considerato un aspetto comune a tutte le strutture analizzate: si può ritrovare, sia pure con notevoli differenze applicative, in (1), (2), (3) e (4): le caratteristiche anticipatorie della prima simulazione di (2) sono meno accentuate rispetto agli altri casi, essendo assente l’idea di rappresentazione dell’aspettativa; in (4) lo scopo della previsione è pervenire a una soddisfacente capacità di controllo dei propri comandi motori, laddove nel secondo modello di (2), e in (3) l’aspettativa è parte integrante del processo decisionale di selezione dell’azione da compiere. Quella di dotare i modelli di facoltà predittive è una tendenza che nel corso degli anni si va consolidando. L’uso modelli interni è fortemente collegato proprio alla diffusione del paradigma anticipatorio. I modelli diretti, abbinati o meno ai modelli inversi, sono gli strumenti tipicamente adottati per attrezzare un sistema di capacità predittive, mediante le quali si possono valutare le conseguenze virtuali di un’azione e pilotare in base a esse le scelte reali. Nel secondo esperimento di (2) ciò è realizzato esplicitamente; ma anche in ogni livello del modello (3), per quanto la cosa non sia altrettanto palese, la tecnica è analoga. In (4), poi, c’è l’interessante particolarità dell’addestramento di un modello diretto che, grazie alle proprietà delle reti bayesiane, può essere impiegato anche nel ruolo di modello inverso. L’apprendimento rimane una delle questioni più complesse. Si è visto come anche modelli con struttura e scopi operativi molto diversi possano presentare evidenti analogie. Tuttavia la specificità di ogni sistema si traduce molto spesso in strategie di apprendimento mirate e non facilmente replicabili in altri contesti. Per rendersi conto di ciò è sufficiente dare un’occhiata alla varietà delle modalità e degli obiettivi di alcune delle procedure di addestramento incontrate in questa sezione: per esempio, in (1) si utilizza un addestramento volto a specializzare in tempo reale i vari moduli, in modo da abilitarli alla rappresentazione di un certo task parziale, ottenendo così l’emersione di un repertorio di azioni non “preconfezionate”; in (4) si adopera una sequenza di passi procedurali molto particolare, in cui l’algoritmo di addestramento, guidato mediante la tecnica empirica del motor babbling, consente di calcolare la struttura di grafo che meglio spiega (massimizzando la funzione di verosimiglianza del modello) un determinato set di dati sperimentali: in tal modo si determinano struttura e parametri della BN che dovrà interpretare il ruolo di modello diretto (o, volendo, inverso). Un problema fortemente correlato riguarda l’astrazione, ovvero la capacità del sistema di costruire gerarchie di rappresentazione sempre piu’ complesse. Si può in conclusione affermare che le metodologie di apprendimento e di astrazione, non di rado, costituiscono uno dei tratti maggiormente distintivi degli studi di Robotica Cognitiva. Lo strumento di modellizzazione ed elaborazione principale adoperato per gli agenti è invece un elemento in cui si trova grande varietà di scelte, che consentono di valutare le potenzialità e le limitazioni dei diversi strumenti a disposizione. A questo proposito si può notare come le FCM, ormai diffuse da tempo in altri settori applicativi, abbiano trovato finora poche opportunità di utilizzo in Robotica. A tal proposito un’eccezione è costituita dal modello ad approccio anticipatorio di (2). In (1) lo strumento cardine è la RNN, in (4) la BN.
  19. 19. Conclusioni L’approccio anticipatorio, motivato fortemente da evidenze neurobiologiche e psicologiche [Barsalou, 1999; Castelfranchi, 2005; Grush, 2004; Rizzolatti et al. 1996], rappresenta una frontiera di grande interesse nella robotica cognitiva. Dopo un periodo dominato dalle critiche all’uso delle rappresentazioni interne [Brooks, 1991] in robotica, infatti, concepire le rappresentazioni come eminentemente anticipatorie ed orientate all’azione permette sia di evitare una serie di problemi “classici” come quello del symbol grounding [Harnad, 1990], sia di svolgere in maniera efficace e con un unico paradigma una serie di compiti legati al controllo dell’azione e dell’attenzione che vanno dal controllo “fine” dei movimenti (compito tipico in teoria del controllo, dove sistemi anticipatori come i filtri di Kalman sono molto utilizzati) fino a compiti cognitivamente piu’ complessi come la pianificazione o l’imitazione. Nei sistemi che abbiamo qui analizzato sono mostrati una serie di usi dell’anticipazione; il panorama non e’ ad ogni modo esaustivo, in quanto l’anticipazione sembra essere alla base di un gran numero di funzionalita’ cognitive, le quali in molti casi si innestano le une sulle altre. Riferimenti bibliografici Balkenius, C., Hulth N. (1999) Attention as Selection-for-Action: a Scheme for Active Perception Proceedinsg of EuRobot-1999. Zurich. Barsalou, L. W. (1999) Perceptual symbol systems. Behavioral and Brain Sciences 22 (4): 577-660 Brooks, R.A. (1991) Intelligence without representation. Artificial Intelligence, 139-159 Castelfranchi, C. (2005) Mind as an Anticipatory Device: For a Theory of Expectations. Proceedings of BVAI 2005, 258-276 Dearden, A. & Demiris, Y. (2005) Learning Forward Models for Robotics. Proceedings of IJCAI-2005, 1440-1445 Grush, R. (2004) The emulation theory of representation: Motor control, imagery, and perception. Behavioral and Brain Sciences, 27 (3): 377-396. Harnad, S. (1990) The Symbol Grounding Problem Physica D: Nonlinear Phenomena, 42, 335-346 Johnson, M. & Demiris, Y. (2005) Hierarchies of Coupled Inverse and Forward Models for Abstraction in Robot Action Planning, Recognition and Imitation Proceedings of the AISB 2005 Symposium on Imitation in Animals and Artifacts, pag. 69-76 Kosko, B. (1992) Neural Networks and Fuzzy System Prentice Hall International Pezzulo, G., Calvi, G., Lalia, D. & Ognibene, D. (2005) Fuzzy-based Schema Mechanisms in AKIRA. in Mohammadian, M. (ed.) Proceedings of CIMCA'2005 Rizzolatti, G., Fadiga, L., Gallese, V. & Fogassi, L. (1996) Premotor cortex and the recognition of motor actions. Cognitive Brain Research, 3 Tani J. (2004) The dynamical systems accounts for phenomenology of immanent time: An interpretation from a robotics synthetic study. Journal of Consciousness Studies, 11. Tani, J. & Nolfi, S. (1998). Learning to Perceive the World as Articulated: An Approach for Hierarchical Learning in Sensory-Motor Systems. Proceedings of the Fifth International Conference on Simulation of Adaptive Behavior. Cambridge, MA: MIT Press. Wolfe, J.M. (1996) Visual search. In Pashler, H. (ed.) Attention, London, UK: University College London Press. Wolpert, D. M., Kawato, M. (1998) Multiple paired forward and inverse models for motor control. Neural Networks 11(7-8):1317-1329

×