Pular para o conteúdo principal
OpenAI

15 de outubro de 2019

Marco

Como montar o cubo mágico com uma mão robótica

Braço robótico estendido resolvendo um cubo mágico em sua mão, com um fundo nebuloso roxo ao fundo

Foto: Eric Haines

Carregando…

Treinamos um par de redes neurais para resolver o cubo mágico com uma mão robótica, semelhante à humana. As redes neurais são treinadas inteiramente em simulações, usando o mesmo código de aprendizagem por reforço do OpenAI Five, combinado com uma nova técnica chamada randomização automática de domínio (ADR). O sistema consegue lidar com situações que nunca viu durante o treinamento (como, por exemplo, ser cutucado por uma girafa de pelúcia). Isso demonstra que a aprendizagem por reforço não é apenas uma ferramenta para tarefas virtuais, mas pode resolver problemas do mundo físico que exigem destreza inédita.

Com nossas mãos humanas, conseguimos resolver uma grande variedade de tarefas. Nos últimos 60 anos da robótica, as tarefas difíceis que os humanos eram capazes de realizar com as próprias mãos exigiam robôs personalizados — um para cada tarefa(abre em uma nova janela). Como alternativa, tentou-se por muitas décadas utilizar hardware robótico de uso geral(abre em uma nova janela), mas com sucesso limitado devido aos altos graus de liberdade. Especificamente, o hardware que usamos não é nenhuma novidade (a mão robótica utilizada existe há 15 anos); o que é novo é novidade é a abordagem de software.

Desde maio de 2017, tentamos treinar uma mão robótica semelhante à humana para resolver o cubo mágico(abre em uma nova janela). O motivo? Acreditamos que treinar essa mão robótica para realizar tarefas complexas de manipulação vai ajudar a estabelecer um parâmetro de referência para robôs de uso geral. Em julho de 2017, resolvemos o cubo de mágico durante simulações. Mas, em julho de 2018, o robô conseguia manipular apenas um bloco. Agora, alcançamos nossa meta inicial.

Uma resolução completa do cubo mágico. Este vídeo é reproduzido em tempo real e não sofreu nenhum tipo de edição.

Resolver um cubo mágico com apenas uma das mãos é uma tarefa desafiadora, até mesmo para humanos. Até mesmo as crianças levam vários anos para adquirir a destreza necessária para isso. No entanto, nosso robô ainda não aperfeiçoou sua técnica, pois ele consegue resolver o cubo mágico em 60% das tentativas (e em apenas 20% das vezes quando usamos a dificuldade máxima de embaralhamento(abre em uma nova janela)).

Nossa abordagem

Treinamos redes neurais para resolver o cubo mágico em simulação(abre em uma nova janela), usando aprendizagem por reforço e o algoritmo de Kociemba(abre em uma nova janela) para escolher os passos da solução.A A randomização(abre em uma nova janela) de domínio(abre em uma nova janela) permite que redes treinadas apenas em simulações sejam transferidas para um robô real.

Uma colagem colorida de braços robóticos

O maior desafio que enfrentamos foi criar ambientes em simulações com diversidade suficiente para capturar a física do mundo real. A medição e a modelagem de fatores como fricção, elasticidade e dinâmica são incrivelmente difíceis para objetos tão complexos quanto cubos mágicos ou mãos robóticas. Percebemos que a randomização de domínio, por si só, era insuficiente.

Para resolver essa limitação, desenvolvemos um novo método chamado randomização automática de domínio (ADR), que gera ambientes progressivamente mais difíceis nas simulações.B Dessa maneira, eliminamos a necessidade de um modelo real preciso e podemos transferir as redes neurais aprendidas nas simulações para a aplicação no mundo real.

A ADR começa com um único ambiente não randomizado, onde uma rede neural aprende a resolver o cubo mágico. À medida que a rede neural aumenta sua eficiência na tarefa e atinge um limite de desempenho, a quantidade de randomização de domínios aumenta automaticamente. Isso torna a tarefa mais difícil, já que a rede neural precisa aprender a generalizar para ambientes mais randomizados. A rede continua aprendendo até exceder novamente o limite de desempenho. É nesse ponto que a randomização entra de novo em ação e o processo se repete.

Carregando…

Um dos parâmetros que randomizamos é o tamanho do cubo mágico (acima). A ADR começa com um tamanho fixo do cubo mágico e aumenta gradualmente o intervalo de randomização conforme o treinamento avança. Aplicamos a mesma técnica a todos os outros parâmetros, como a massa do cubo, o atrito dos dedos do robô e os materiais visuais da superfície da mão. Assim, a rede neural precisa aprender a resolver o cubo mágico sob todas essas condições de dificuldade crescente.

Carregando…

A randomização de domínios exigiu uma especificação manual dos intervalos de randomização, o que não é fácil: o excesso de randomização dificulta a aprendizagem, enquanto a randomização insuficiente prejudica a transferência para o robô real. Para resolver isso, a ADR amplia automaticamente os intervalos de randomização ao longo do tempo, sem intervenção humana. A ADR também elimina a necessidade de conhecimento de domínio e facilita a aplicação de nossos métodos a novas tarefas. Além disso, ao contrário da randomização manual de domínios, a ADR mantém a tarefa sempre desafiadora, evitando a convergência do treinamento.

Comparamos a ADR com a randomização manual de domínios na tarefa de virar o bloco, onde já tínhamos uma referência bastante sólida. No início, o desempenho da ADR em termos de número de soluções do robô real é inferior. Porém, conforme ela aumenta a entropia — que é uma medida da complexidade do ambiente —, o desempenho de transferência acaba dobrando em relação à referência, sem ajustes humanos.

Análise

Teste de robustez

Usando a ADR, conseguimos treinar redes neurais em simulações capazes de resolver o cubo mágico usando a mão robótica real. Isso ocorre porque a ADR expõe a rede a uma diversidade infinita de simulações randomizadas. É essa exposição à complexidade durante o treinamento que prepara a rede para a transferência das simulações para o mundo real, já que ela tem que aprender a identificar e ajustar-se rapidamente a qualquer mundo físico com que se depare.

Carregando…

Para testar os limites do nosso método, experimentamos diversas perturbações enquanto a mão resolvia o cubo mágico. Além de testar a robustez da nossa rede de controle, essas perturbações testavam nossa rede de visão, que usamos para estimar a posição e a orientação do cubo.

Constatamos que nosso sistema treinado com ADR é surpreendentemente resiliente a perturbações, mesmo que nunca tenha sido treinado com elas: afinal, o robô consegue realizar com sucesso a maioria dos giros e rotações de face mesmo submetido a todas as perturbações testadas. Contudo, ele não apresenta o melhor desempenho nesses casos.

Meta-aprendizagem emergente

Acreditamos que a meta-aprendizagem(abre em uma nova janela), ou "aprender a aprender", é um pré-requisito importante para a criação de sistemas de uso geral, pois permite que eles se adaptem rapidamente às condições de seus ambientes. A hipótese por trás da ADR é que redes aumentadas por memória, combinadas com um ambiente suficientemente randomizado, levam à meta-aprendizagem emergente, onde a rede implementa um algoritmo de aprendizagem que permite a si mesma adaptar rapidamente seu comportamento ao ambiente em que é implantada.C

Para testar isso de forma sistemática, medimos o tempo até o sucesso por giro do cubo (girando o cubo de forma que uma cor diferente fique voltada para cima) em nossa rede neural sob diferentes perturbações, por exemplo: redefinir a memória da rede, redefinir a dinâmica ou quebrar uma articulação. Realizamos esses experimentos em simulações, o que nos permitiu calcular a média de desempenho ao longo de 10.000 tentativas em um ambiente controlado.

Carregando…

No início, conforme a rede neural consegue acertar mais giros, cada tempo sucessivo até o acerto diminui, pois a rede aprende a se adaptar. Quando aplicamos perturbações (linhas cinzas verticais no gráfico acima), notamos um pico no tempo até o acerto. Isso ocorre porque a estratégia empregada pela rede não funciona no ambiente alterado. A rede então reaprende sobre o novo ambiente e, novamente, o tempo até o acerto diminui até alcançar a referência anterior.

Também medimos a probabilidade de falha e realizamos os mesmos experimentos para rotações de face (girando a face superior 90 graus no sentido horário ou anti-horário), encontrando o mesmo padrão de adaptação.D

Compreensão de nossas redes neurais

Ao visualizar nossas redes, podemos compreender o que elas armazenam na memória. Isso se torna cada vez mais importante conforme a complexidade das redes aumenta.

Carregando…

A memória da nossa rede neural é exibida acima. Usamos um elemento básico da caixa de ferramentas de interpretabilidade(abre em uma nova janela), a fatoração de matriz não negativa, para condensar esse vetor de alta dimensionalidade em seis grupos e atribuir uma cor única a cada um. Em seguida, mostramos a cor do grupo dominante em cada etapa.

Constatamos que cada grupo de memória tem um comportamento semanticamente significativo associado a ele. Por exemplo, considerando apenas o grupo dominante da memória da rede, podemos afirmar se ela vai girar o cubo ou girar o topo no sentido horário antes que isso aconteça.

Desafios

Resolver o cubo mágico com uma mão robótica continua sendo bem difícil. No momento, nosso método resolve o cubo mágico em 20% das vezes quando aplicamos a dificuldade máxima de embaralhamento(abre em uma nova janela), que exige 26 rotações de face para a solução. Para embaralhamentos mais simples, que exigem 15 rotações para a solução, a taxa de sucesso é de 60%. Quando o cubo mágico cai no chão ou um tempo limite é atingido, consideramos que a tentativa falhou. Por outro lado, nossa rede é capaz de resolver o cubo mágico a partir de qualquer condição inicial. Portanto, se o cubo cair, podemos recolocá-lo na mão e seguir em frente.

Geralmente, notamos que nossa rede neural é muito mais propensa a falhas durante os primeiros giros do cubo e rotações de face. Isso ocorre porque, durante as primeiras rotações e giros, a rede neural precisa equilibrar a resolução do cubo mágico com a adaptação ao mundo físico.

Bastidores: protótipos do cubo mágico

Para acompanhar nosso progresso e possibilitar a resolução do problema, projetamos e criamos versões personalizadas de cubos como etapas intermediárias para conseguirmos, enfim, resolver um cubo de mágico normal.E

Protótipos de cubos mágicos da OpenAI Robotics

Protótipos do cubo mágico, da esquerda para a direita: cubo trancado, cubo com faces, cubo completo, cubo de Gilker(abre em uma nova janela) e cubo mágico normal.

Protótipo

Posição + orientação

Graus de liberdade internos (sensor)

Cubo trancado

Visão

0 (sem sensor)

Cubo com faces

PhaseSpace

2 (PhaseSpace)

Cubo completo

PhaseSpace

6 (PhaseSpace)

Cubo de Gilker

Visão

6 (sensores integrados)

Cubo mágico normal

Visão

6 (visão)

Próximos passos

Acreditamos que a destreza em nível humano é um requisito para a criação de robôs de uso geral e estamos muito animados com nossos avanços nessa direção.

Se você quer ajudar a criar sistemas de IA cada vez mais gerais, robóticos ou virtuais, estamos contratando!

Notas de rodapé

  1. A

    Nosso foco são problemas que hoje as máquinas têm dificuldade para dominar, como percepção e manipulação hábil. Por isso, treinamos nossas redes neurais para alcançar as rotações de face e os giros do necessários cubo, conforme gerados pelo algoritmo de Kociemba.

  2. B

    Nosso trabalho tem forte relação com o POET(abre em uma nova janela), que gera automaticamente ambientes 2D. No entanto, nosso trabalho aprende uma política conjunta sobre todos os ambientes, que se transfere para qualquer ambiente recém-gerado.

  3. C

    Em termos mais concretos, nossa hipótese é de que uma rede neural com capacidade finita treinada em ambientes com complexidade ilimitada vai forçar a rede a aprender um algoritmo de aprendizagem de propósito especial, já que ela não pode memorizar soluções para cada ambiente individual e não existe uma única política robusta que funcione em todas as randomizações.

  4. D

    Consulte nosso artigo(abre em uma nova janela) para ver todos os resultados.

  5. E

    A única modificação que fizemos foi cortar uma pequena parte do adesivo colorido de cada cubinho central. Isso foi necessário para quebrar a simetria rotacional(abre em uma nova janela).

Autores

OpenAI, Ilge Akkaya, Marcin Andrychowicz, Maciek Chociej, Mateusz Litwin, Bob McGrew, Arthur Petron, Alex Paino, Matthias Plappert, Glenn Powell, Raphael Ribas, Jonas Schneider, Nikolas Tezak, Jerry Tworek, Peter Welinder, Lilian Weng, Qiming Yuan, Wojciech Zaremba, Lei Zhang

Agradecimentos

Agradecemos às seguintes pessoas pelo feedback sobre os rascunhos desta publicação e do artigo: Josh Achiam, Greg Brockman, Nick Cammarata, Jack Clark, Jeff Clune, Ruben D’Sa, Harri Edwards, David Farhi, Ken Goldberg, Leslie P. Kaelbling, Hyeonwoo Noh, Lerrel Pinto, John Schulman, Ilya Sutskever e Tao Xu.

Vídeo: Peter Jordan (direção), Yvette Solis (produção) e Brooke Chan (produção)

Edição: Ashley Pilipiszyn

Design: Justin Jay Wang e Ben Barry

Fotografia: Eric Haines