Addestrare i robot dentro Minecraft
Un algoritmo che per prove ed errori impara come comportarsi in un ambiente complesso. E potrebbe portarci verso un futuro in cui i robot non cadono salendo le scale
WHAAAT? Il venerdì casual della scienza – Il 5 e il 6 giugno a Pomona, in California, 23 robot provenienti da tutto il mondo si sono fronteggiati nella Darpa Robotics Challenge, la competizione che mette a confronto l’abilità dei migliori umanoidi in una serie di sfide. Tra loro c’era anche Walkman, il gioiellino creato dall’Istituto Italiano di Tecnologia in collaborazione con il centro E. Piaggio di Pisa, ma a portarsi a casa la vittoria (e un premio da 1,5 milioni di dollari) è stato il sud-coreano team Kaist con il robot DRC-HUBO. Tutti i partecipanti sapevano il fatto loro – d’altronde sono pensati per aiutare gli esseri umani in situazioni complicate e pericolose. Ma molti, come avranno già visto quelli di voi che conoscono la Darpa Robotics Challenge grazie a questo video, non sono riusciti a stare in piedi di fronte a compiti complessi come, per esempio, salire le scale. Per quanto riguarda DRC-HUBO, “Il suo design unico gli ha permesso di svolgere i compiti più velocemente e, cosa forse più importante, di rimanere in piedi. E sulle ruote”, scrivono su IEEE Spectrum.
Già: perché se si tratta di robot salvavita, pronti a venire in nostro soccorso nelle emergenze, reggersi in piedi e saper navigare un ambiente complesso e ricco di ostacoli è un aspetto non propriamente secondario. In aiuto arrivano i ricercatori della Brown University, che stanno lavorando a un algoritmo che fa esattamente questo: aiuta i robot a pianificare meglio le proprie azioni in queste situazioni. La cosa interessante è che lo stanno sviluppando per il mondo reale, ma in un mondo virtuale. Quello di Minecraft (per chi non sapesse cos’è , si tratta di un videogioco nel quale si costruisce il mondo in cui muoversi in modo casuale, usando dei blocchi).
Perché se per noi pianificare azioni semplici, come salire le scale, è scontato, per un robot non lo è affatto. Non sa ignorare in modo intuitivo un ostacolo di fronte a lui, come non gli è possibile sapere che per svolgere un compito non è necessario, prima, compiere altre azioni che non c’entrano nulla. L’approccio prevede quindi che prenda in considerazione tutte le possibilità che gli si presentano prima di procedere con un’azione e, in un ambiente complesso, questo è quello che gli informatici chiamano state-space explosion. Una serie di scelte talmente ampia da allibire la “mente” del robot.
“È un problema davvero difficile”, commenta Stefanie Tellex della Brown. “Vogliamo robot capaci di fare di tutto, ma a quel punto lo spazio delle possibili azioni diventa enorme. Non vogliamo limitare le capacità del robot, perciò dobbiamo capire come restringere il suo campo di ricerca”. L’algoritmo su cui lavora Tellex insieme ai suoi studenti fa proprio questo: incrementa la capacità del robot di stabilire una serie di obiettivi e azioni in un dato spazio, quelli che più probabilmente risultano utili per raggiungere un determinato scopo. I “precedenti” sui quali basare questa capacità possono essere sia forniti direttamente al robot da un operatore, sia essere appresi sul campo dall’algoritmo stesso tramite prove ed errori.
Il mondo di Minecraft a quanto pare è perfetto a questo scopo: testare la qualità dell’apprendimento da parte dell’algoritmo e la capacità di implementare le conoscenze nel pianificare delle azioni. “Esistono moltissime possibili azioni che i giocatori possono compiere. E raccogliere una buona quantità di dati per l’addestramento è non solo facile, anche poco dispendioso”, spiega Tellex. “Molto meno complesso del farlo nel mondo reale”. I ricercatori hanno iniziato costruendo piccoli mondi, di pochi blocchi, per poi rilasciarci un personaggio con un preciso compito da svolgere (per esempio cercare oro o costruire un ponte) che doveva, per riuscirci, provare varie opzioni. In questo modo avrebbe imparato per prove ed errori le priorità d’azione legate all’obiettivo, ovvero le cose più intelligenti da fare per riuscire nel suo compito.
“È in grado di imparare che, se ti trovi vicino a un fosso e devi attraversarlo, puoi posizionarci dei blocchi dentro. Altrimenti non lo devi fare”, spiega Tellex. “Se cerchi l’oro sotto alcuni blocchi, invece, devi distruggerli. Se non ti serve, non distruggerli”. Priorità che richiedono molte prove ed errori per allenare l’algoritmo ma, in base alle osservazioni raccolte finora, farlo in Minecraft è molto più rapido rispetto ad affidarsi agli algoritmi classici. E dopo il mondo virtuale, questo modello è passato a quello reale: Tellex e i colleghi hanno fatto cimentare un robot opportunamente addestrato nella preparazione dei brownies. L’algoritmo era stato già impostato con molte conoscenze “a priori”. Per esempio il fatto che le uova spesso devono essere sbattute con la frusta: se compare un cartone di uova, il robot porgerà lo sbattitore al cuoco. Perché sa che gli serve.
Tellex è molto fiduciosa che quest’idea prenderà piede: se per questo particolare studio si sono limitati a piccoli mondi in una “bozza” di Minecraft, per far apprendere l’algoritmo più rapidamente, ora è disponibile un mod vero e proprio (cioè un componente aggiuntivo del videogioco) creato con BURLAP che permette di fare lo stesso nel gioco normale. Ed è rilasciato online gratuitamente con l’approccio open source: i ricercatori sperano che altri scienziati usino l’algoritmo per sperimentare azioni in ambienti sempre più grandi, tutto Minecraft per esempio, facendo fare un balzo in avanti all’intelligenza artificiale. E non facendo più cadere i robot, soprattutto.
Leggi anche: Studiare l’evoluzione con i robot
Pubblicato con licenza Creative Commons Attribuzione-Non opere derivate 2.5 Italia.
Crediti immagine: Brown University