OpenAI, the research company that conducts artificial intelligence research was able to train a pair of neural networks to solve the Rubik's Cube using a robotic hand.
In a blog post announcing the achievement, OpenAI said the neural networks were trained in simulation, relying on the OpenAIFive code paired with Automatic Domain Randomization, which is a new technique the firm developed.
OpenAI had been at it since the spring of 2017
"Human hands let us solve a wide variety of tasks. For the past 60 years of robotics, hard tasks which humans accomplish with their fixed pair of hands have required designing a custom robot for each task. As an alternative, people have spent many decades trying to use general-purpose robotic hardware, but with limited success due to their high degrees of freedom.," wrote OpenAI. "In particular, the hardware we use here is not new—the robot hand we use has been around for the last 15 years—but the software approach is."
OpenAI has been trying since the spring of 2017 to train a human-like robotic hand to solve the Rubik's Cube, betting that training a robotic hand to solve something as complex as the Rubik's Cube will pave the way to train a general-purpose robot. The firm was able to solve it in simulation in July of 2017 but as of July of last year, the robotic hand could only move on block.
Now, however, they have finally reached their goal.
"Solving a Rubik’s Cube one-handed is a challenging task even for humans, and it takes children several years to gain the dexterity required to master it. Our robot still hasn’t perfected its technique though, as it solves the Rubik’s Cube 60% of the time (and only 20% of the time for a maximally difficult scramble)," wrote OpenAI in the blog post.
OpenAI melded old with new to train the robotic hand in simulation
So how did OpenAI do it?
The company said they trained the neural networks using reinforcement learning and Kociemba's algorithm while domain randomization enabled the networks to train in simulation and then transfer it to the robotic hand.
To overcome the challenge of creating environments that were diverse enough in simulation to capture the real worl it used its new ADR method. With it, progressively more difficult environments are continuously developed in simulation. That enabled the transfer of neural networks learned in simulation to the robotic hand in the real world.
"Using ADR, we are able to train neural networks in a simulation that can solve the Rubik’s Cube on the real robot hand. This is because ADR exposes the network to an endless variety of randomized simulations. It is this exposure to complexity during training that prepares the network to transfer from simulation to the real world since it has to learn to quickly identify and adjust to whatever physical world it is confronted with."