Рука робот собирает кубик Рубика

Опубликовано 13 February 2020

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

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

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

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

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

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

Наш подход

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

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

Рандомизация доменов позволяет сетям, обученным исключительно моделированию, переходить к реальному роботу.

Рука робот собирает кубик Рубика

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

Чтобы решить эту задачу, мы разработали новый метод, названный Автоматическая Рандомизация Домена (ADR), который бесконечно генерирует все более сложные среды в симуляции. [2]

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

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

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

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

ADR применяется к размеру кубика Рубика


024681012Days of Training Time5.55.65.75.85.96.06.1 cm5.48–6.05 cm
Одним из параметров, которые мы рандомизируем, является размер кубика Рубика (см. выше). ADR начинается с фиксированного размера кубика Рубика и постепенно увеличивает диапазон рандомизации в процессе обучения. Мы применяем ту же технику ко всем другим параметрам, таким как масса кубика, трение пальцев робота и материалы визуальной поверхности руки. Таким образом, нейронная сеть должна научиться решать кубик Рубика во всех этих усложняющихся условиях. 

Автоматическая и ручная рандомизация доменов



-0.8-0.6-0.4-0.20.00.2ADR Entropy05101520253035 Average SuccessesManual Domain RandomizationADR
Рандомизация домена потребовала, чтобы мы вручную указали диапазоны рандомизации, что сложно, поскольку слишком большое рандомизирование затрудняет обучение, а недостаточное рандомизирование затрудняет переход к созданию реального робота. ADR решает эту проблему путем автоматического расширения диапазонов рандомизации с течением времени без вмешательства человека. ADR устраняет необходимость в знании предметной области и упрощает применение наших методов к новым задачам. В отличие от ручной рандомизации доменов, ADR также постоянно выполняет задачу, так как обучение никогда не останавливается.

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

Анализ

Тестирование на прочность

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


Сборка без помех


Сборка с помехами


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


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




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


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

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

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


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

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

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

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




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

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

Проблемы

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

За кулисами: прототипы Rubik's Cube Чтобы оценить наш прогресс и сделать проблему более понятной, мы создали и разработали собственные версии кубиков в качестве подготовки для окончательной сборки обычного кубика Рубика. [5]

Рука робот собирает кубик Рубика

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


ОПЫТНЫЙ ОБРАЗЕЦ
ПОЗИЦИЯ + ОРИЕНТАЦИЯ
ВНУТРЕННИЕ СТЕПЕНИ СВОБОДЫ (ДАТЧИК)
Заблокированный куб
Vision0 (No sensor)
Собранный гранями куб
PhaseSpace
2 (PhaseSpace)
Полный куб
PhaseSpace
6 (PhaseSpace)
Куб Гийкера
Vision
6 (Built-in sensors)
Обычный кубик Рубика
Vision
Vision 6 (Vision)

Следующие шаги

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

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

Сноски

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

2. Наша работа тесно связана с POET, который автоматически генерирует 2D-среды. Тем не менее, наша работа учит совместной политике во всех средах, которая переходит к любой новой среде. ↩︎

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

4. Пожалуйста, прочитайте эту статью для получения полных результатов. ↩︎

5. Единственная модификация, которую мы сделали, - вырезать маленький кусочек цветной наклейки каждого центрального кубка. Это было необходимо для нарушения симметрии вращения. ↩︎

 Авторы

OpenAIIlge AkkayaMarcin AndrychowiczMaciek ChociejMateusz LitwinBob McGrewArthur PetronAlex PainoMatthias PlappertGlenn PowellRaphael RibasJonas SchneiderNikolas TezakJerry TworekPeter WelinderLilian WengQiming YuanWojciech ZarembaLei Zhang

Видео

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

Редактор

Эшли Пилиписин

Дизайн

Джастин Джей Ван и Бен Барри

Фото

Эрик Хейнс