Алгоритм OpenAI научился собирать кубик Рубика одной рукой

Исследователи из OpenAI создали алгоритм для роборуки, позволяющий ей собирать кубик Рубика, переворачивая и скручивая его пальцами. Сначала алгоритм обучался методом проб и ошибок в виртуальной среде, а затем его перенесли на реальное устройство. Из максимально сложных конфигураций, требующих 26 поворотов, роборука собирает кубик в 20 процентах случаев, а для конфигураций, требующих 15 поворотов, успешность составляет 60 процентов, рассказывают исследователи в блоге OpenAI.

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

Программисты из некоммерческой организации OpenAI в 2017 году поставили перед собой в качестве такой задачи сборку кубика Рубика одной роборукой. В 2018 году они показали промежуточный результат своей работы, научив роборуку переворачивать кубик нужной стороной до 50 раз подряд. Теперь исследователи показали, что достигли конечной цели, используя похожие алгоритмы и принципы их обучения.

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

Основные алгоритмы можно разбить на две основные части. Первая основана на архитектуре сверточной нейросети и отвечает за визуальное восприятие кубика. Она получает три изображения руки с кубиком с разных ракурсов и рассчитывает на их основе положение кубика, а также углы между его плоскостями. Во втором алгоритме используется архитектура рекуррентной нейросети с долгой краткосрочной памятью (LSTM). Она получает данные от первой и на их основе, а также последовательности сборки, рассчитанной алгоритмом Коцембы, создает последовательность движений для пальцев.

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

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

Григорий Копиев

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.
Квадрокоптер-трансформер c ротор-колесами научился стоять на двух ногах

А также летать, ездить и самостоятельно прокладывать маршрут