Met behulp van zelflerende algoritmes is het onderzoekers van OpenAI gelukt om een robot met behulp van een enkele mensachtige hand een Rubik-kubus op te laten lossen in vier minuten. Daarmee haalt de robot geen snelheidsrecord, maar is wel een interessante nieuwe methode om robots taken aan te leren gebruikt.
De onderzoekers van OpenAI trainden de robothand volledig in een simulatieomgeving, waarbij de moeilijke taak van het met één hand manipuleren van een object, iets dat heel veel training vergt, veel sneller geleerd kan worden. Dit betekent dus dat deze manier van leren, namelijk de combinatie van leren door ‘vallen en opstaan’ en een techniek genaamd Automatic Domain Randomization, situaties vanuit een virtuele, gesimuleerde wereld snel kan vertalen naar de echte wereld waar een grote mate van handigheid bij nodig is.
Ditzelfde trainingsproces zou ook gekund hebben door alle fouten door de echte robothand te laten maken, maar in eerste instantie zouden er zoveel fouten optreden tijdens het trainingsproces, dat het heel erg lang zou duren voordat de hand werkelijk de puzzel zou kunnen oplossen. Dat proces is dus sterk versneld door gebruik te maken van de simulatie. Om de simulatie zo realistisch mogelijk te maken, voegden de onderzoekers zoveel mogelijk willekeur (randomness) toe aan de simulatie. Op die manier kon het systeem toch goed leren, ook als de simulatie de werkelijkheid niet perfect benaderde (iets wat de simulatie ook niet deed).
OpenAI heeft ook een voorpublicatie van de onderzoekspaper gepubliceerd (Solving Rubik’s Cube with a Robot Hand) over het onderzoek waarin ze hun systeem van eerst simuleren, dan door een robot laten uitvoeren, ook een naam geven, namelijk: sim2real.
Oude hand
De gebruikte robothand in het onderzoek is niet nieuw en al minstens vijftien jaar verkrijgbaar. In dit onderzoek gaat het dan ook echt om het nieuwe gebruik van software, wat een nieuwe benadering is van robots laten leren. Normaal zou je namelijk voor een dergelijk systeem een speciale robot bouwen die precies dat heel goed kan, terwijl de hand, in dit geval natuurlijk een versimpelde versie van de zeer breed inzetbare mensenhand, voor heel veel verschillende handelingen geschikt is. De onderzoekers zien hierin een belangrijke stap in het gebruik van zogenaamde ‘general purpose’ robots, ofwel robots die voor veel verschillende taken ingezet kunnen worden.
Het oplossen van de Rubiks-kubus kon OpenAI al in juli 2017, maar het balanceren van een enkel blok ter grootte van een Rubiks-kubus door de fysieke robothand kon pas vanaf juli 2018. Het uiteindelijke doel, het oplossen van de puzzel met een robothand, is dus nu pas gelukt.
De echte wereld heeft veel uitdagingen voor een robot, schrijven de onderzoekers in een blog, zoals wrijving, elasticiteit en dynamiek is heel lastig te meten, zeker voor een complex object als de Rubiks-kubus in combinatie met een robothand. Daardoor bleek dat kunstmatige intelligentie met alleen randomiseren niet voldoende was, waardoor de onderzoekers de automatic domain randomization ontwikkelden. Dit adr-systeem genereert een constante stroom aan lastigere omgevingen voor de simulatie, waardoor een heel exact model van de werkelijkheid niet meer nodig is.
Adr begint met een enkele, niet-gerandomiseerde omgeving, waarin een neuraal netwerk de puzzel moet oplossen. Als het netwerk beter wordt in het oplossen van de taak, bereikt het systeem op den duur een grenswaarde waarna de willekeurigheid van de omgeving steeds verder wordt vergroot. Daardoor wordt de taak moeilijker, waarna een volgende grenswaarde bereikt wordt, enzovoort. Een van de manieren om de taak moeilijker te maken, is bijvoorbeeld het vergroten van de kubus in de simulatie.
Ook andere moeilijkheden werden in de simulatie toegepast en later ook in de echte wereld, zoals het vastbinden van enkele van de vingers, een rubber handschoen en het ‘irriteren’ van de hand met een pluchen speelgoedgiraffe.
Het uiteindelijke doel van dit project is het behalen van menselijke handigheid voor robots die voor algemeen nut ingezet moeten kunnen worden.