Trial-and-error: nuovo approccio nella Robotica.

0

Un nuovo approccio al deep learning per applicazioni nella robotica.

Simulare il funzionamento di un cervello umano è risultato un modo efficiente o comunque funzionale per creare un sistema che possa “apprendere”. Perché allora non simulare anche il sistema di apprendimento umano senza limitarsi alla struttura del cervello?
E’ quello che stanno provando a fare alcuni ricercatori di UC Berkeley che hanno sviluppato una serie di algoritmi che permettono a robot di sviluppare movimenti motori attraverso la reiterazione di tentativi (trial-and-error).

Mentre in un comune sistema di reti neurali viene fornito un training set sul quale addestrare la rete, in questo approccio viene fornito solo il risultato finale richiesto ed una misura che indica quanto il risultato della rete sia distante, di volta in volta, dal risultato finale (funzione di costo). La rete, che in questo caso coordina un sistema di motori atti a muovere un braccio robotico, lavora attraverso trial-and-error cercando di portare questa funzione di costo a 0.

A cosa serve tutto questo? Serve a permettere di creare un sistema flessibile che possa portare a termine nuovi compiti senza dover essere riprogrammato o fornito di dataset esplicativi di volta in volta. Cosa può arrivare a fare? Nell’esperimento riesce ad appendere un abito, avvitare un oggetto o rimuovere un chiodo, ma scalando il sistema, in linea del tutto teorica, potrebbe anche arrivare a compiere un’operazione a cuore aperto.

Vediamo come è stato strutturato questo sistema di apprendimento basato su trial-and-error.

Il “sistema” comprende due elementi: “osservazione” e “serie di movimenti”. Il robot è dotato di una telecamera che fissa l’oggetto all’interno di punti di riferimento e di un braccio robotico che interagisce con gli oggetti all’interno del suo campo visivo.

L’immagine di inRobot1put è la foto a colori dello stadio al momento 0 dell’esperimento (RGB image) che potrebbe essere una lampadina non avvitata al suo posto. Teniamo a mente che al robot è stata fornita un’immagine di soluzione, lo stadio finale che il robot dovrà raggiungere. La prima immagine passa attraverso tre strati convoluzionali (convolutional layers: conv1, conv2 e conv3). L’ultimo strato converte, attraverso una funzione spaziale softmax che genera una serie di output che sono funzione di distribuzione che descrivono la disposizione su un piano a 2 dimensioni delle caratteristiche dell’oggetto che sono emerse dalle applicazioni dei vari filtri negli stadi precedenti (angoli, lati, fori ecc).

Il passo successivo è la creazione di una “mappa” che descrive le posizioni attese sul piano 2D attraverso delle coordinate. Questo lungo processo serve a creare un sistema che possa confrontare diverse immagini contenenti gli stessi elementi al fine di generare quella funzione di costo di cui abbiamo parlato.

Gli strati interconnessi (fully connRobot2ected ReLU) ricevono queste coordinate e hanno la funzione di tradurre la rappresentazione 2D così ricevuta in una rappresantazione 3D in modo da poter definire i movimenti dei vari motori che compongono il braccio robotico.

Il sistema viene addestrato imponendo una serie di movimenti randomici dell’oggetto al fine di creare una funzione di regressione delle disposizioni dell’oggetto. Noi umani facciamo lo stesso in situazioni come il gioco delle freccette: può essere utile fare alcuni lanci di prova prima di iniziare la partita al fine di creare una memoria muscolare che colleghi il movimento dei nostri muscoli (e quindi del braccio) con la posizione finale della freccetta in termini di distanza dal centro (i punti che abbiamo ottenuto)

Il sistema percorrerà quindi la funzione tentativo dopo tentativo finché non troverà la posizione che azzera la funzione di costo, quella posizione cioè che ricalca perfettamente l’immagine di soluzione fornita (la freccetta che colpisce il centro del bersaglio).

Il robot sarà ovviamente in grado di riprodurre quel movimento fintanto che i punti di riferimento forniti e l’immagine dello stadio 0 non vengano alterate tanto da modificare il tipo di caratteristiche emergenti dall’elaborazione dell’immagine. Un cambio di sfondo, di posizione iniziale o di colori potrebbe compromettere radicalmente il funzionamento del sistema.

Il progetto è ancora nel pieno del suo sviluppo ma sono comunque incredibili i traguardi raggiunti sino ad ora.

references:

  1. http://rll.berkeley.edu/deeplearningrobotics/
  2. http://arxiv.org/pdf/1504.00702v1.pdf
Share.

About Author

Studio Business Administration ma sono appassionato di Big Data e AI. Quello che faccio: Coworking, TEDx e Wearable. Quello che sono: uno studente di Economia con il rimpianto di non essersi iscritto ad Informatica. Quello che voglio: vedere oltre.

Leave A Reply