I robot impareranno l’uno dall’altro

I robot impareranno guardando gli altri

Velocizzare l'apprendimento dei robot facendoli imparare gli uni dagli altri: l'idea di Google. Credits: gigaom.com

Robotica – L’abilità di imparare dall’esperienza sarà molto probabilmente un punto chiave nel rendere i robot capaci di risolvere le operazioni complesse del mondo reale. Comunque, se ogni robot dovesse imparare sulla propria pelle ogni abilità, ci metterebbe troppo tempo a raggiungere una quantità accettabile di capacità e comportamenti corretti per essere considerato utile: meno di una persona, certo, ma comunque troppo per un prodotto.
Immaginate se la vostra lavatrice imparasse a lavare davvero i vestiti solo dopo 1 mese di utilizzo. La comprereste?

Possiamo superare questo problema programmandoli ad imparare ognuno dall’esperienza dell’altro?

Mentre gli algoritmi di machine learning hanno portato a grandissimi miglioramenti nel Natural Language Processing e nell’elaborazione vocale, il ragionamento simbolico di alto livello che ci permette di comunicare concetti complessi rimane irraggiungibile ai robot.
In ogni caso, anche senza apprendere il significato dell’azione, possono trasmettersi (in rete) istantaneamente le loro esperienze, e così “imparare” l’uno dall’altro, o meglio: aggiornarsi a vicenda.

Questo potrebbe essere funzionale anche per apprendere delle semplici abilità di basso livello: l’uomo e gli animali sono perfetti nel perfezionare piccoli adattamenti nei loro movimenti, uso dei sensi, riflessi, coordinazione, in un loop continuo.
I robot invece faticano ancora a perfezionare le proprie abilità di basso livello, in quanto la varietà e la complessità del mondo e dell’ambiente rendono questo processo molto lungo.
La domanda è: se permettiamo ai robot di comunicarsi queste esperienze, potrebbero acquisire in poco tempo delle buone abilità?

Google ha condotto tre esperimenti a riguardo:
Imparare abilità di movimento direttamente dalla propria esperienza, imparare i propri modelli fisici interni, e imparare delle abilità con l’aiuto dell’uomo.
In tutti gli esperimenti, i robot hanno condiviso tra loro le esperienze, in modo da poter creare un modello comune delle abilità. Partendo con abilità molto semplici come spostare oggetti, si è mostrato come possano imparare molto più velocemente e precisamente qualsiasi abilità se condividono le loro esperienze, creando un modello unico.

Robot e apprendimento model-free.

Uno dei modi più semplici per insegnare l’uno all’altro è condividere i propri successi e fallimenti, e il metodo seguito per ottenere quel risultato. L’uomo e gli animali imparano proprio facendo errori, provando sulla propria pelle. I robot impareranno allo stesso modo: senza nessun modello dell’ambiente prestabilito (model-free) agiranno comportandosi con azioni basilari (come alzare un braccio o abbassarlo) e memorizzeranno tutti i movimenti che gli forniscono dei successi, esplorandoli e cercando di migliorarli. Gli algoritmi model-free hanno dimostrato di essere il modo migliore per imparare.
Avere più processi di apprendimento in parallelo alla ricerca della soluzione più efficiente (e la condivisione dei risultati) porterà a velocizzare e migliorare questo procedimento.

In questi esperimenti google ha imposto ai robot l’obiettivo di muovere i loro bracci meccanici in punti specifici, o di aprire porte, ad esempio. Ogni robot ha una copia di una rete neurale che gli consenti di valutare se sia conveniente o no eseguire una determinata azione in un determinato momento. Quando un robot decide di agire, lo fa però con un po’ di “rumore” nell’azione, in modo da provare una via leggermente diversa da quella predefinita. In questo modo ogni robot proverà vie diverse, a volte migliori.
Ogni azione e variazione viene inviata ad un server centrale che raccoglie tutte le esperienze raccolte e le usa per migliorare iterativamente la rete neurale.
Una volta aggiornata, ognuno dei robot riceverà la nuova rete neurale. Essa sarà migliore rispetto a quella precedente, ma ogni robot agirà come sempre “sporcando” l’azione, in modo da testare vie diverse e quindi trovare nuovi risultati, alcuni migliori alcuni peggiori, e così via in un ciclo che porta in poco tempo ad un risultato perfetto.

Risultati

Nel video seguente, un robot esplora l’azione dell’aprire una porta.

Ed ecco il risultato finale, dopo molte iterazioni:

[Via Google]