Сборка кубика Рубика роборукой

Читать научную статьюСмотреть все видео
Outstretched robot arm solving a Rubik's cube in its palm in front of a cloudy purple background

Фото: Эрик Хайнс (Eric Haines)

Мы обучили пару нейронных сетей собирать кубик Рубика с помощью человекоподобной роборуки. Нейросети обучаются полностью в симуляции, используя тот же код обучения с подкреплением, что и OpenAI Five, в сочетании с новым методом под названием «Автоматическая рандомизация доменов» (Automatic Domain Randomization, ADR). Система способна справляться с ситуациями, с которыми она никогда не сталкивалась во время обучения, например, когда ее тыкают плюшевым жирафом. Это показывает, что обучение с подкреплением — не просто инструмент для виртуальных задач, оно способно решать проблемы реального мира, требующие беспрецедентной ловкости.

Человеческие руки позволяют нам решать самые разные задачи. За последние 60 лет в робототехнике для выполнения сложных задач, с которыми люди справляются с помощью своей пары рук, требовалось разрабатывать специального робота для каждой отдельной задачи. В качестве альтернативы исследователи многие десятилетия пытались использовать робототехническое аппаратное обеспечение общего назначения, но с ограниченным успехом из-за его высокой степени свободы. В частности, железо, которое мы используем здесь, не ново — роборука, с которой мы работаем, существует уже последние 15 лет, —, а вот программный подход нов.

С мая 2017 года мы пытаемся научить человекоподобную роборуку собирать кубик Рубика. Мы поставили перед собой эту цель, потому что верим: успешное обучение такой роборуки сложным манипуляциям закладывает основу для создания роботов общего назначения. Мы решили кубик Рубика в симуляции в июле 2017 года. Но к июля 2018 года мы могли лишь манипулировать блоком на роботе. Теперь мы достигли нашей первоначальной цели.

Полная сборка кубика Рубика. Это видео воспроизводится в реальном времени и никоим образом не редактировалось.

Сборка кубика Рубика одной рукой — сложнейшая задача даже для людей, и детям требуется несколько лет, чтобы развить необходимую для этого ловкость. Тем не менее наш робот еще не до конца отточил свою технику, так как он успешно собирает кубик Рубика в 60% случаев (и лишь в 20% случаев для максимально сложного перемешивания).

Наш подход

Мы обучаем нейронные сети сборке кубика Рубика в симуляции, используя обучение с подкреплением и алгоритм Коцембы для подбора шагов решения.AРандомизациядоменов позволяет сетям, обученным исключительно в симуляции, успешно переноситься на реального робота.

A colorful collage of robotic arms

Самой большой сложностью, с которой мы столкнулись, было создание в симуляции среды, достаточно разнообразной, чтобы отразить физику реального мира. Такие факторы, как трение, упругость и динамика, невероятно сложно измерить и смоделировать для таких сложных объектов, как кубики Рубика или роборуки, и мы выяснили, что одной лишь рандомизации доменов недостаточно.

Чтобы преодолеть это, мы разработали новый метод под названием Автоматическая рандомизация доменов (ADR), который бесконечно генерирует в симуляции все более и более сложные среды.B Это избавляет нас от необходимости иметь точную модель реального мира и позволяет применять нейросети, обученные в симуляции, к реальному миру.

ADR начинается с единственной нерандомизированной среды, в которой нейросеть учится собирать кубик Рубика. По мере того как нейросеть начинает лучше справляться с задачей и достигает определенного порога производительности, степень рандомизации доменов автоматически увеличивается. Это усложняет задачу, поскольку теперь нейросеть должна научиться обобщать знания для более рандомизированных сред. Сеть продолжает обучение до тех пор, пока снова не превысит порог производительности, после чего включается новая порция рандомизации, и процесс повторяется.

Один из параметров, который мы рандомизируем, — это размер кубика Рубика (выше). ADR начинается с фиксированного размера кубика и постепенно увеличивает диапазон рандомизации по мере продвижения обучения. Мы применяем ту же технику ко всем остальным параметрам, таким как масса кубика, трение пальцев робота и визуальные материалы поверхности руки. Таким образом, нейросеть должна научиться собирать кубик Рубика в любых из этих все более сложных условий.

Рандомизация доменов требовала от нас ручного задания диапазонов рандомизации, что сложно, поскольку слишком сильная рандомизация затрудняет обучение, а слишком слабая — препятствует переносу на реального робота. ADR решает эту проблему, автоматически расширяя диапазоны рандомизации со временем без вмешательства человека. ADR устраняет необходимость в предметных знаниях и упрощает применение наших методов к новым задачам. В отличие от ручной рандомизации доменов, ADR также поддерживает постоянную сложность задачи, при которой обучение никогда не сходится к заучиванию.

Мы сравнили ADR с ручной рандомизацией доменов на задаче переворачивания блока, где у нас уже была сильная базовая модель. В начале ADR показывает худшие результаты по количеству успешных попыток на реальном роботе. Но по мере того, как ADR увеличивает энтропию (меру сложности среды), эффективность переноса в конечном итоге удваивается по сравнению с базовой моделью — и все это без ручной настройки.

Анализ

Тестирование на надежность

Используя ADR, мы можем обучать нейронные сети в симуляции так, чтобы они собирали кубик Рубика на реальной роборуке. Это происходит потому, что ADR подвергает сеть бесконечному разнообразию рандомизированных симуляций. Именно такое знакомство со сложностью во время обучения подготавливает сеть к переходу из симуляции в реальный мир, поскольку она должна научиться быстро определять физический мир, с которым сталкивается, и подстраиваться под него.

Чтобы проверить пределы возможностей нашего метода, мы экспериментируем с различными возмущениями во время сборки кубика Рубика роборукой. Это проверяет не только надежность нашей управляющей сети, но и нашу систему компьютерного зрения, которую мы используем здесь для оценки положения и ориентации кубика.

Мы обнаружили, что наша система, обученная с помощью ADR, на удивление устойчива к внешним возмущениям, даже несмотря на то, что мы никогда не обучали ее на них: робот может успешно выполнять большинство переворотов и вращений граней при всех протестированных возмущениях, хотя и не на пике своей производительности.

Эмерджентное мета-обучение

Мы верим, что мета-обучение, или обучение тому, как учиться, является важной предпосылкой для создания систем общего назначения, поскольку оно позволяет им быстро адаптироваться к изменяющимся условиям окружающей среды. Гипотеза, лежащая в основе ADR, заключается в том, что сети с расширенной памятью в сочетании с достаточно рандомизированной средой приводят к эмерджентному мета-обучению, при котором сеть реализует алгоритм обучения, позволяющий ей стремительно адаптировать свое поведение к той среде, в которой она развернута.C

Чтобы проверить это систематически, мы измеряем время до успешного переворота кубика (поворота кубика так, чтобы другая грань оказалась сверху) для нашей нейросети в условиях различных возмущений, таких как сброс памяти сети, сброс динамики или поломка сустава. Мы проводим эти эксперименты в симуляции, что позволяет нам усреднить производительность по 10 000 испытаний в контролируемой обстановке.

В начале, по мере того как нейросеть успешно совершает все больше переворотов, время достижения успеха каждый раз сокращается, поскольку сеть учится адаптироваться. Когда применяются возмущения (вертикальные серые линии на графике выше), мы видим скачок времени до успешного выполнения. Это происходит потому, что стратегия, используемая сетью, не работает в изменившейся среде. Затем сеть заново адаптируется к новой среде, и мы снова видим, как время до успеха снижается до прежнего базового уровня.

Мы также измеряем вероятность сбоев и провели те же эксперименты для вращения граней (поворота верхней грани на 90 градусов по часовой или против часовой стрелки), обнаружив ту же закономерность адаптации.D

Понимание наших нейросетей

Визуализация наших сетей позволяет нам понять, что именно они хранят в памяти. Это становится все более важным по мере усложнения сетей.

Память нашей нейросети визуализирована выше. Мы используем компонент из набора инструментов интерпретируемости, а именно неотрицательную матричную факторизацию, чтобы спрессовать этот многомерный вектор в 6 групп и присвоить каждой уникальный цвет. Затем мы отображаем цвет доминирующей на данный момент группы для каждого временного шага.

Мы обнаружили, что с каждой группой памяти связано семантически осмысленное поведение. Например, глядя только на доминирующую группу памяти сети, мы можем сказать, собирается ли она вращать кубик или поворачивать верхнюю грань по часовой стрелке,  до того, как это произойдет.

Проблемы

Сборка кубика Рубика роборукой по-прежнему остается непростой задачей. В настоящее время наш метод успешно решает кубик Рубика в 20% случаев при применении максимально сложного перемешивания, требующего 26 поворотов граней. Для более простых вариантов перемешивания, требующих 15 поворотов для отмены, показатель успеха составляет 60%. Если кубик Рубика падает или истекает тайм-аут, мы считаем попытку неудачной. Тем не менее наша сеть способна собрать кубик Рубика из любого исходного состояния. Поэтому, если кубик упал, его можно положить обратно в руку и продолжить сборку.

Мы обычно замечаем, что наша нейросеть гораздо чаще терпит неудачу в течение первых нескольких поворотов и переворотов граней. Это происходит потому, что нейросети необходимо балансировать между сборкой кубика Рубика и адаптацией к физическому миру во время этих ранних вращений и переворотов.

За кулисами: прототипы Кубика Рубика

Чтобы оценивать наш прогресс и сделать задачу решаемой, мы создали и спроектировали кастомные версии кубиков в качестве промежуточных этапов на пути к окончательному решению классического Кубика Рубика.E

Openai Robotics Rubiks Prototypes

Прототипы Кубика Рубика слева направо: Заблокированный кубик, Кубик с гранями, Полноценный кубик,  кубик Giiker, обычный Кубик Рубика.

Прототип

Положение и ориентация

Внутренние степени свободы (датчики)

Заблокированный кубик

Зрение

0 (Нет датчиков)

Кубик с гранями

PhaseSpace

2 (PhaseSpace)

Полноценный кубик

PhaseSpace

6 (PhaseSpace)

Кубик Giiker

Зрение

6 (Встроенные датчики)

Обычный Кубик Рубика

Зрение

6 (Зрение)

Дальнейшие шаги

Мы верим, что ловкость человеческого уровня — это шаг на пути к созданию роботов общего назначения, и мы рады двигаться вперед в этом направлении.

Если вы хотите помочь в создании всё более универсальных систем ИИ, будь то робототехнических или виртуальных, мы нанимаем сотрудников!

Сноски

  1. A

    Мы сосредоточены на проблемах, которые в настоящее время трудно даются машинам: восприятии и ловких манипуляциях. Поэтому мы обучаем наши нейронные сети достигать требуемых поворотов граней и вращений кубика, сгенерированных алгоритмом Коциембы.

  2. B

    Наша работа тесно связана с проектом POET, который автоматически генерирует двумерные среды. Однако наша работа изучает общую стратегию для всех сред, которая переносится на любую заново сгенерированную среду.

  3. C

    Более конкретно, мы предполагаем, что нейронная сеть с конечной емкостью, обученная на срезах с неограниченной сложностью, заставляет сеть изучать специализированный алгоритм обучения, поскольку она не может запомнить решения для каждой отдельной среды, и не существует единой надежной стратегии, которая работала бы при всех рандомизациях.

  4. D

    Пожалуйста, обратитесь к нашей научной работе для получения полных результатов.

  5. E

    Единственное изменение, которое мы сделали, — это вырезание небольшого кусочка цветной наклейки на каждом центральном кубике. Это было необходимо для нарушения вращательной симметрии.

Авторы

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)

Благодарности

Спасибо следующим людям за отзывы о черновиках этого поста и научной работы: Джош Акиам (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), Илья Суцкевер и Тао Сюй (Tao Xu).

Видео: Питер Джордан (режиссер), Иветт Солис (продюсер), Брук Чан (продюсер)

Редактор: Эшли Пилиписин (Ashley Pilipiszyn)

Дизайн: Джастин Джей Ван (Justin Jay Wang) и Бен Барри (Ben Barry)

Фотография: Эрик Хайнс (Eric Haines)

Полный текст статьи читайте на OpenAI