Источник: OpenAI

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

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

С мая 2017 года команда исследователей OpenAI пыталась натренировать роботизированную руку для решения кубика Рубика.

«Мы поставили эту цель, потому что считаем, что успешное обучение руки робота выполнению сложных манипуляционных задач закладывает основу для универсальных роботов», — пишут в OpenAI.

Из-за того, что целью авторов было обучение робота сложным мапуляциям, для расчета ходов в процессе решения кубика они использовали двухфазный алгоритм Коцембы. Кубик собирала рука Shadow Dexterous Hand.

Алгоритм можно условно разделить на две части. Первая — визуальное восприятие кубика рукой. Система получает три изображения руки с кубиком в разных ракурсах и рассчитывает на их основе как положение кубика, так и углы между его плоскостями. Второй алгоритм при помощи модели сборки, рассчитанной алгоритмом Коцембы, создает последовательность движений для пальцев.

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

Для преодоления этой проблемы был создан новый метод под названием «Автоматическая рандомизация доменов» (ADR), который бесконечно генерирует все более сложные среды в симуляции. ADR начинается с единой нерандомизированной среды, в которой нейронная сеть учится решать кубик Рубика. По мере того как нейронная сеть справляется с поставленной задачей и достигает наивысшего порога производительности, количество случайных чисел в домене увеличивается автоматически, то есть среда меняется. Это усложняет задачу. Сеть продолжает обучение до тех пор, пока она снова не превысит порог производительности, и процесс повторяется.

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



Множество копий виртуальных роборук позволили OpenAI быстрее закончить обучение и подготовить алгоритм к рельной роборуке. Однако успех пока небезупречен.

«Решить кубик Рубика одной роборукой все еще непросто. Наш алгоритм в настоящее время решает кубик Рубика в 20% случаев при применении максимальной сложности. Для более простых случаев вероятность успеха составляет 60%. Когда кубик Рубика отбрасывается или истекает время, мы считаем попытку неудачной. Однако наша сеть способна решить кубик Рубика из любого начального состояния. Таким образом, если куб упал, можно положить его обратно в руку и продолжить решение», — утверждают разработчики.

Комментарии (2)


  1. Pochemuk
    18.10.2019 15:19

    Еще чуть-чуть и ИНС научат исполнять шулерские вольты одной рукой :)


  1. mikhaylovns
    18.10.2019 18:24

    Прямо как в «Терминаторе»/«Чужих» Д.Кэмерона!