В OpenAI обучили две нейросети, чтобы робот собрал кубик Рубика одной рукой. Система успешно собирала головоломку в 60% случаев. Из этих 60% только 20% были кейсы, когда роботу давали сильно разобранный кубик. Несмотря на это, задача собрать кубик одной рукой является непростой даже для людей. Ребенку требуется несколько лет, чтобы отточить этот навык. Разработка системы велась с мая 2017 года.
Нейросети обучались полностью в симуляции. Для обучения использовалась та же модель, что и для обучения OpenAI Five, совместно с новым методом Automatic Domain Randomization (ADR). Система справляется с ситуациями, которые не были в обучающей выборке. Например, исследователи пытались мешать модели собирать кубик с помощью игрушечного жирафа. Система успешно игнорировала внешний раздражители. Это показывает, что обучение с подкреплением может решать задачи реального мира, которые требуют высокого уровня ловкости.
Описание подхода
Нейросети обучаются решать кубик Рубика в симуляции с использованием обучения с подкреплением. Помимо этого, для отбора шагов решения исследователи используют алгоритм Kociemba.
Модели тренируются так, чтобы повороты куба соответствовали решению из алгоритма Kociemba. Domain рандомизация позволяет обучать нейросети исключительно на данных симуляции, чтобы затем перенести модель на реального робота.
Самая большая сложность, с которой встретились разработчики, — дизайн симуляции, которая была бы достаточно разнообразной, чтобы описать физику реального мира. Такие факторы, как фрикция, эластичность и динамика сложно измерить и смоделировать для таких комплексных объектов, как руки робота или кубик Рубика.
Что делает ADR
Automatic Domain Randomization (ADR) бесконечно генерирует более сложные среды в симуляции. Это позволяет постепенно обучать систему работать в более сложной среде. Исследование частично основывается на POET, где автоматически генерируются 2D среды. Однако предложенная система выучивает совместную policy над всеми средами. Это позволяет ей адаптироваться к любой новой среде.