Обучение ловкости

Мы научили робота с человекоподобной рукой манипулировать физическими объектами с беспрецедентной ловкостью.

Читать научную работу
Learning Dexterity

Иллюстрация: Бен Барри и Эрик Хейнс

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

Задача

Dactyl — это система для манипулирования объектами с помощью роботизированной руки Shadow Dexterous Hand. Мы помещаем объект, например кубик или призму, на ладонь руки и просим Dactyl изменить его ориентацию на другую; например, повернуть куб так, чтобы сверху оказалась новая грань. Сеть наблюдает только координаты кончиков пальцев и изображения с трех обычных RGB-камер.

Robot hand with cube

Хотя первые человекоподобные руки были разработаны десятки лет назад, эффективное использование их для манипулирования объектами оставалось давней проблемой в управлении роботами. В отличие от других задач, таких как передвижение (локомоция), прогресс в области ловких манипуляций с использованием традиционных подходов робототехники был медленным, а существующие методы по-прежнему имеют ограниченные возможности в манипулировании объектами в реальном мире.

Переориентация объекта в руке требует решения следующих проблем:

  • Работа в реальном мире. Обучение с подкреплением показало много успехов в симуляциях и видеоиграх, но имело сравнительно ограниченные результаты в реальном мире. Мы тестируем Dactyl на физическом роботе.
  • Высокоразмерное управление. Shadow Dexterous Hand имеет 24 степени свободы по сравнению с 7 у типичной руки робота.
  • Зашумленные и частичные наблюдения. Dactyl работает в физическом мире и поэтому должен справляться с зашумленными и запоздалыми показаниями датчиков. Когда датчик кончика пальца закрыт другими пальцами или объектом, Dactyl приходится работать с частичной информацией. Многие аспекты физической системы, такие как трение и проскальзывание, ненаблюдаемы напрямую и должны быть вычислены.
  • Манипулирование более чем одним объектом. Dactyl разработан достаточно гибким, чтобы переориентировать несколько видов объектов. Это означает, что наш подход не может использовать стратегии, применимые только к конкретной геометрии объекта.

Наш подход

Dactyl учится решать задачу переориентации объекта полностью в симуляции без участия человека. После этой фазы обучения полученная стратегия работает на реальном роботе без какой-либо тонкой настройки.

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

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

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

System Overview Diagram

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

  • Измерение физических атрибутов, таких как трение, демпфирование и сопротивление качению, громоздко и затруднительно. Они также меняются со временем по мере износа робота.
  • MuJoCo — это симулятор твердых тел, а значит, он не может моделировать деформируемую резину на кончиках пальцев руки или растяжение сухожилий.
  • Наш робот может манипулировать объектом только путем многократного контакта с ним. Однако силы контакта по общему признанию крайне сложно точно воспроизвести в симуляции.

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

Вместо этого мы обучаем стратегию на распределении смоделированных сред, в которых физические и визуальные атрибуты выбираются случайным образом. Рандомизированные значения — это естественный способ представления неопределенностей, которые у нас есть в отношении физической системы, а также способ предотвращения переобучения на единственную смоделированную среду. Если стратегия способна справляться с задачей во всех смоделированных средах, скорее всего, она сможет справиться с ней и в реальном мире.

Обучение управлению

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

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

Dactyl обучается с помощью Rapid, масштабируемой реализации проксимальной оптимизации политики (Proximal Policy Optimization), разработанной для того, чтобы позволить OpenAI Five играть в Dota 2. Мы используем другую архитектуру модели, окружение и гиперпараметры, чем OpenAI Five, но применяем те же алгоритмы и код обучения. Rapid задействовала 6144 ядра CPU и 8 GPU для обучения нашей стратегии, собрав около ста лет опыта за 50 часов.

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

Обучение зрению

Dactyl была разработана с возможностью манипулировать произвольными объектами, а не только теми, которые были специально модифицированы для поддержки трекинга. Поэтому Dactyl использует изображения с обычных RGB-камер для оценки положения и ориентации объекта.

Мы обучаем оценщик позы (pose estimator) с помощью сверточной нейронной сети. Нейронная сеть принимает видеопотоки с трех камер, расположенных вокруг руки робота, и выдает оценку положения и ориентации объекта. Мы используем несколько камер для разрешения неоднозначностей и окклюзий. Мы снова используем рандомизацию домена для обучения этой сети исключительно в симуляции с использованием игровой платформы Unity, способной моделировать более широкое разнообразие визуальных явлений, чем Mujoco.

Объединяя эти две независимые сети — управляющую сеть, которая переориентирует объект на основе его позы, и сеть зрения, которая сопоставляет изображения с камер с позой объекта, — Dactyl может манипулировать объектом, видя его.

Simulated Camera Grid

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

Результаты

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

Grasp Types

Типы захватов Dactyl согласно таксономии захватов GRASP. Слева сверху до справа снизу: щипковый захват кончиками пальцев (Tip Pinch), пальце-ладонный щипковый захват (Palmar Pinch), треногий захват (Tripod), четырехпалый захват (Quadpod), силовой захват (Power grasp) и 5-пальцевый прецизионный захват (5-Finger Precision grasp).

Мы заметили, что для точных захватов, таких как щипковый захват кончиками пальцев (Tip Pinch), Dactyl использует большой и мизинец. Люди же, как правило, используют большой и указательный или средний палец. Тем не менее, мизинец руки робота более гибкий из-за дополнительной степени свободы, что может объяснять, почему Dactyl отдает ему предпочтение. Это означает, что Dactyl способен заново открывать захваты, используемые людьми, но адаптировать их так, чтобы они лучше соответствовали ограничениям и возможностям его собственного тела.

Эффективность переноса

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

Lab setup

Установка лаборатории Dactyl с ловкой рукой Shadow Dexterous Hand, камерами отслеживания движения PhaseSpace и RGB-камерами Basler.

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

Рандомизация

Отслеживание объектов

Максимальное число успешных попыток

Медианное число успешных попыток

Полная рандомизация

Компьютерное зрение

46

11.5

Полная рандомизация

Отслеживание движения

50

13

Без рандомизации

Отслеживание движения

6

0

Прогресс обучения

Подавляющая часть времени обучения уходит на обеспечение устойчивости стратегии к различной физической динамике. Обучение вращению объекта в симуляции без рандомизации требует около 3 лет симулированного опыта, в то время как достижение аналогичной производительности в полностью рандомизированной симуляции требует около 100 лет опыта.

Learning Progress graph

Прогресс обучения с рандомизацией и без нее за годы симулированного опыта.

Что нас удивило

  • Тактильное осязание не является обязательным для манипулирования реальными объектами. Наш робот получает только координаты пяти кончиков пальцев, а также положение и ориентацию кубика. Хотя рука робота оснащена датчиками касания на кончиках пальцев, нам не потребовалось их использовать. Как правило, мы обнаружили, что лучшие результаты достигаются при использовании ограниченного набора датчиков, которые можно эффективно смоделировать в симуляторе, а не богатого набора датчиков со значениями, которые трудно поддаются моделированию.
  • Рандомизация, разработанная для одного объекта, переносится на другие с похожими свойствами. После создания нашей системы для задачи манипулирования кубиком мы напечатали восьмиугольную призму, обучили новую стратегию с учетом ее формы и попытались выполнить с ней манипуляцию. К нашему некоторому удивлению, она показала высокую производительность, используя лишь ту рандомизацию, которую мы разработали для кубика. В то же время стратегия, управляющая сферой, смогла добиться лишь нескольких успешных попыток подряд, возможно, потому что мы не рандомизировали никакие параметры симуляции, моделирующие поведение качения.
  • В работе с физическими роботами качественная системная инженерия важна не меньше, чем хорошие алгоритмы. В какой-то момент мы заметили, что один из инженеров стабильно добивается гораздо лучших результатов, чем остальные, запуская абсолютно ту же самую стратегию. Позже выяснилось, что у него был более быстрый ноутбук, который скрывал ошибку синхронизации, снижавшую производительность. После исправления этой ошибки производительность возросла и у остальной части команды.

Что не оправдало ожиданий

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

  • Снижение времени реакции не повысило производительность. Согласно общепринятому мнению, сокращение времени между действиями должно улучшать результат, поскольку изменения между состояниями становятся меньше и, следовательно, их проще предсказать. Наше текущее время между действиями составляет 80 мс, что меньше времени реакции человека (150–250 мс), но значительно превышает время вычислений нейросети, равное примерно 25 мс. Удивительно, но уменьшение времени между действиями до 40 мс потребовало дополнительного времени на обучение, но не привело к заметному улучшению производительности в реальном мире. Возможно, это правило применимо к моделям на базе нейросетей в меньшей степени, чем к линейным моделям, которые широко используются сегодня.
  • Использование реальных данных для обучения наших зрительных стратегий не сыграло никакой роли. В ранних экспериментах мы использовали комбинацию симулированных и реальных данных для улучшения наших моделей. Реальные данные собирались во время испытаний нашей стратегии с объектом, имеющим встроенные маркеры отслеживания. Однако у реальных данных есть существенные недостатки по сравнению с симулированными. Информация о положении от маркеров отслеживания обладает задержкой и погрешностью измерений. Хуже того, реальные данные легко теряют актуальность при стандартных изменениях конфигурации, из-за чего собирать их в объемах, достаточных для пользы, становится утомительно. По мере развития наших методов ошибка только в симуляторе снижалась до тех пор, пока не сравнялась с ошибкой при использовании смеси симулированных и реальных данных. Наши финальные модели компьютерного зрения обучались без использования реальных данных.

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

Авторы

Josh Tobin, Bob McGrew, Wojciech Zaremba, Maciek Chociej, Szymon Sidor, Glenn Powell, Jakub Pachocki, Alex Ray, Marcin Andrychowicz, Bowen Baker, Arthur Petron, Matthias Plappert, Rafał Józefowicz, Jonas Schneider, Peter Welinder, Lilian Weng

Участники

Larissa Schiavo, Jack Clark, Greg Brockman, Ilya Sutskever, Diane Yoon, Ben Barry

Отзывы и комментарии

Спасибо следующим людям за отзывы о черновиках этой публикации: Pieter Abbeel, Tamim Asfour, Marek Cygan, Ken Goldberg, Anna Goldie, Edward Mehr, Azalia Mirhoseini, Lerrel Pinto, Aditya Ramesh & Ian Rust.

Оформление обложки

Ben Barry & Eric Haines

Полный текст статьи читайте на OpenAI