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

Фото: Эрик Хайнс (Eric Haines)
Мы обучили пару нейронных сетей собирать кубик Рубика с помощью человекоподобной роборуки. Нейросети обучаются полностью в симуляции, используя тот же код обучения с подкреплением, что и OpenAI Five, в сочетании с новым методом под названием «Автоматическая рандомизация доменов» (Automatic Domain Randomization, ADR). Система способна справляться с ситуациями, с которыми она никогда не сталкивалась во время обучения, например, когда ее тыкают плюшевым жирафом. Это показывает, что обучение с подкреплением — не просто инструмент для виртуальных задач, оно способно решать проблемы реального мира, требующие беспрецедентной ловкости.
Человеческие руки позволяют нам решать самые разные задачи. За последние 60 лет в робототехнике для выполнения сложных задач, с которыми люди справляются с помощью своей пары рук, требовалось разрабатывать специального робота для каждой отдельной задачи. В качестве альтернативы исследователи многие десятилетия пытались использовать робототехническое аппаратное обеспечение общего назначения, но с ограниченным успехом из-за его высокой степени свободы. В частности, железо, которое мы используем здесь, не ново — роборука, с которой мы работаем, существует уже последние 15 лет, —, а вот программный подход нов.
С мая 2017 года мы пытаемся научить человекоподобную роборуку собирать кубик Рубика. Мы поставили перед собой эту цель, потому что верим: успешное обучение такой роборуки сложным манипуляциям закладывает основу для создания роботов общего назначения. Мы решили кубик Рубика в симуляции в июле 2017 года. Но к июля 2018 года мы могли лишь манипулировать блоком на роботе. Теперь мы достигли нашей первоначальной цели.
Полная сборка кубика Рубика. Это видео воспроизводится в реальном времени и никоим образом не редактировалось.
Сборка кубика Рубика одной рукой — сложнейшая задача даже для людей, и детям требуется несколько лет, чтобы развить необходимую для этого ловкость. Тем не менее наш робот еще не до конца отточил свою технику, так как он успешно собирает кубик Рубика в 60% случаев (и лишь в 20% случаев для максимально сложного перемешивания).
Наш подход
Мы обучаем нейронные сети сборке кубика Рубика в симуляции, используя обучение с подкреплением и алгоритм Коцембы для подбора шагов решения.

Самой большой сложностью, с которой мы столкнулись, было создание в симуляции среды, достаточно разнообразной, чтобы отразить физику реального мира. Такие факторы, как трение, упругость и динамика, невероятно сложно измерить и смоделировать для таких сложных объектов, как кубики Рубика или роборуки, и мы выяснили, что одной лишь рандомизации доменов недостаточно.
Чтобы преодолеть это, мы разработали новый метод под названием Автоматическая рандомизация доменов (ADR), который бесконечно генерирует в симуляции все более и более сложные среды.
ADR начинается с единственной нерандомизированной среды, в которой нейросеть учится собирать кубик Рубика. По мере того как нейросеть начинает лучше справляться с задачей и достигает определенного порога производительности, степень рандомизации доменов автоматически увеличивается. Это усложняет задачу, поскольку теперь нейросеть должна научиться обобщать знания для более рандомизированных сред. Сеть продолжает обучение до тех пор, пока снова не превысит порог производительности, после чего включается новая порция рандомизации, и процесс повторяется.
Один из параметров, который мы рандомизируем, — это размер кубика Рубика (выше). ADR начинается с фиксированного размера кубика и постепенно увеличивает диапазон рандомизации по мере продвижения обучения. Мы применяем ту же технику ко всем остальным параметрам, таким как масса кубика, трение пальцев робота и визуальные материалы поверхности руки. Таким образом, нейросеть должна научиться собирать кубик Рубика в любых из этих все более сложных условий.
Рандомизация доменов требовала от нас ручного задания диапазонов рандомизации, что сложно, поскольку слишком сильная рандомизация затрудняет обучение, а слишком слабая — препятствует переносу на реального робота. ADR решает эту проблему, автоматически расширяя диапазоны рандомизации со временем без вмешательства человека. ADR устраняет необходимость в предметных знаниях и упрощает применение наших методов к новым задачам. В отличие от ручной рандомизации доменов, ADR также поддерживает постоянную сложность задачи, при которой обучение никогда не сходится к заучиванию.
Мы сравнили ADR с ручной рандомизацией доменов на задаче переворачивания блока, где у нас уже была сильная базовая модель. В начале ADR показывает худшие результаты по количеству успешных попыток на реальном роботе. Но по мере того, как ADR увеличивает энтропию (меру сложности среды), эффективность переноса в конечном итоге удваивается по сравнению с базовой моделью — и все это без ручной настройки.
Анализ
Тестирование на надежность
Используя ADR, мы можем обучать нейронные сети в симуляции так, чтобы они собирали кубик Рубика на реальной роборуке. Это происходит потому, что ADR подвергает сеть бесконечному разнообразию рандомизированных симуляций. Именно такое знакомство со сложностью во время обучения подготавливает сеть к переходу из симуляции в реальный мир, поскольку она должна научиться быстро определять физический мир, с которым сталкивается, и подстраиваться под него.
Чтобы проверить пределы возможностей нашего метода, мы экспериментируем с различными возмущениями во время сборки кубика Рубика роборукой. Это проверяет не только надежность нашей управляющей сети, но и нашу систему компьютерного зрения, которую мы используем здесь для оценки положения и ориентации кубика.
Мы обнаружили, что наша система, обученная с помощью ADR, на удивление устойчива к внешним возмущениям, даже несмотря на то, что мы никогда не обучали ее на них: робот может успешно выполнять большинство переворотов и вращений граней при всех протестированных возмущениях, хотя и не на пике своей производительности.
Эмерджентное мета-обучение
Мы верим, что мета-обучение, или обучение тому, как учиться, является важной предпосылкой для создания систем общего назначения, поскольку оно позволяет им быстро адаптироваться к изменяющимся условиям окружающей среды. Гипотеза, лежащая в основе ADR, заключается в том, что сети с расширенной памятью в сочетании с достаточно рандомизированной средой приводят к эмерджентному мета-обучению, при котором сеть реализует алгоритм обучения, позволяющий ей стремительно адаптировать свое поведение к той среде, в которой она развернута.
Чтобы проверить это систематически, мы измеряем время до успешного переворота кубика (поворота кубика так, чтобы другая грань оказалась сверху) для нашей нейросети в условиях различных возмущений, таких как сброс памяти сети, сброс динамики или поломка сустава. Мы проводим эти эксперименты в симуляции, что позволяет нам усреднить производительность по 10 000 испытаний в контролируемой обстановке.
В начале, по мере того как нейросеть успешно совершает все больше переворотов, время достижения успеха каждый раз сокращается, поскольку сеть учится адаптироваться. Когда применяются возмущения (вертикальные серые линии на графике выше), мы видим скачок времени до успешного выполнения. Это происходит потому, что стратегия, используемая сетью, не работает в изменившейся среде. Затем сеть заново адаптируется к новой среде, и мы снова видим, как время до успеха снижается до прежнего базового уровня.
Мы также измеряем вероятность сбоев и провели те же эксперименты для вращения граней (поворота верхней грани на 90 градусов по часовой или против часовой стрелки), обнаружив ту же закономерность адаптации.
Понимание наших нейросетей
Визуализация наших сетей позволяет нам понять, что именно они хранят в памяти. Это становится все более важным по мере усложнения сетей.
Память нашей нейросети визуализирована выше. Мы используем компонент из набора инструментов интерпретируемости, а именно неотрицательную матричную факторизацию, чтобы спрессовать этот многомерный вектор в 6 групп и присвоить каждой уникальный цвет. Затем мы отображаем цвет доминирующей на данный момент группы для каждого временного шага.
Мы обнаружили, что с каждой группой памяти связано семантически осмысленное поведение. Например, глядя только на доминирующую группу памяти сети, мы можем сказать, собирается ли она вращать кубик или поворачивать верхнюю грань по часовой стрелке, до того, как это произойдет.
Проблемы
Сборка кубика Рубика роборукой по-прежнему остается непростой задачей. В настоящее время наш метод успешно решает кубик Рубика в 20% случаев при применении максимально сложного перемешивания, требующего 26 поворотов граней. Для более простых вариантов перемешивания, требующих 15 поворотов для отмены, показатель успеха составляет 60%. Если кубик Рубика падает или истекает тайм-аут, мы считаем попытку неудачной. Тем не менее наша сеть способна собрать кубик Рубика из любого исходного состояния. Поэтому, если кубик упал, его можно положить обратно в руку и продолжить сборку.
Мы обычно замечаем, что наша нейросеть гораздо чаще терпит неудачу в течение первых нескольких поворотов и переворотов граней. Это происходит потому, что нейросети необходимо балансировать между сборкой кубика Рубика и адаптацией к физическому миру во время этих ранних вращений и переворотов.
За кулисами: прототипы Кубика Рубика
Чтобы оценивать наш прогресс и сделать задачу решаемой, мы создали и спроектировали кастомные версии кубиков в качестве промежуточных этапов на пути к окончательному решению классического Кубика Рубика.

Прототипы Кубика Рубика слева направо: Заблокированный кубик, Кубик с гранями, Полноценный кубик, кубик Giiker, обычный Кубик Рубика.
Прототип | Положение и ориентация | Внутренние степени свободы (датчики) |
Заблокированный кубик | Зрение | 0 (Нет датчиков) |
Кубик с гранями | PhaseSpace | 2 (PhaseSpace) |
Полноценный кубик | PhaseSpace | 6 (PhaseSpace) |
Кубик Giiker | Зрение | 6 (Встроенные датчики) |
Обычный Кубик Рубика | Зрение | 6 (Зрение) |
Дальнейшие шаги
Мы верим, что ловкость человеческого уровня — это шаг на пути к созданию роботов общего назначения, и мы рады двигаться вперед в этом направлении.
Если вы хотите помочь в создании всё более универсальных систем ИИ, будь то робототехнических или виртуальных, мы нанимаем сотрудников!
Сноски
Авторы
Благодарности
Спасибо следующим людям за отзывы о черновиках этого поста и научной работы: Джош Акиам (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
