C-LEARN - обучаться подражая и учить других на базе своего опыта
16.05.2017Разработка платформы для создания робота - дело непростое. Но обучение робота тем или иным действиям - задача не менее сложная. Можно ли автоматизировать ее решение?
Если требуется создать робота для выполнения конкретной задачи, например, для открывания двери, есть несколько способов его научить. Большинство роботов учатся планированию действий, используя такие методы, как оптимизация или выборка. Для этого программист прописывает каждое включение и выключение моторов. Другой способ обучения - это подражание, в этом варианте робот учится, наблюдая за человеком, решающим эту же задачу, и копируя его движения.
Оба этих метода имеют свои недостатки. Подражание - это быстрый метод обучения, который хорошо работает при решении одной конкретной задачи, но требует процесса адаптации при изменении любой даже небольшой детали. Если, например, изменится тип или положение дверной ручки - робота придется обучать движениям практически с нуля.
При использовании метода планирования движения, возникает обратная ситуация. Робота можно запрограммировать для действий в различных условиях и ситуациях, но это требует значительных затрат времени и усилий человека. Например, для создания робота, способного открывать различные двери, придется потратить бесчисленные часы на программирование всевозможных способов открывания десятков типов дверей.
Команда исследователей из Массачусетского технологического института (MIT) и Лаборатории искусственного интеллекта (CSAIL) разработала технологию, сочетающую оба подхода. По словам ученых, им удалось использовать их сильные стороны и избежать недостатков, сделать процесс «обучения» роботов более быстрым и дешевым.
Технология, называемая C-LEARN, позволяет роботу изучать процесс решения задачи посредством подражания. Собранная информация переводится в алгоритмы планирования движений, которые смогут использовать другие роботы. То есть достаточно одному роботу "подсмотреть", как ту или иную задачу решает человек и все остальные роботы с похожими возможностями, научатся решать эту задачу.
Как это работает?
Сначала роботу предоставляются сведения о том, как захватить разнообразные объекты с различными ограничениями. («C» в C-LEARN означает "constrains", то есть "ограничения"). Иными словами, с помощью C-LEARN пользователь «загружает» в робота базу знаний, содержащую определенные навыки. Скажем, робот получает информацию о том, как добраться до цели и захватить несколько разнообразных объектов в ряде различных позиций и ориентаций. Данная информация, накапливаясь, формирует своего рода «библиотеку», к которой робот может обратиться, когда ему нужно выбрать алгоритм решения конкретной задачи. Например, шина и руль похожи по-форме, но, чтобы прикрепить их к автомобилю, робот должен действовать по-разному.
Предобученный таким образом робот готов к получениям задач для выполнения. С помощью трехмерного интерфейса оператор показывает ему задачу, представленную последовательностью моментов, - их принято называть «ключевые кадры». Сопоставляя эти ключевые кадры с различными ситуациями, хранящимися в «библиотеке», робот может автоматически выбрать подходящие алгоритмы действий. Оператор в свою очередь может их утверждать или редактировать.
В итоге будет сформирован алгоритм планирования движения, который этот и другие роботы смогут использовать для выполнения той же задачи. До определенной степени, такой процесс обучения похож на тот, который используют люди. Они берут также сопоставляют вновь полученную информацию с имеющимися у них знаниями об окружающем мире.
По мнению разработчиков, использование подхода C-LEARN значительно упростит планирование движений. Вместо ручного программирования всех возможных движений для каждой задачи, программисты смогут полагаться на общую «библиотеку», непрерывано пополняемую по мере решения роботами все новых классов задач. Поскольку движения роботов при использования C-LEARN не кодируются жестко, а лишь алгоритмизуются, роботы более адаптируемы и адекватнее реагируют на изменения. К тому же, отмечают разработчики, для «обучения» таких роботов, людям практически не требуются знания в области программирования.
Следующим шагом для команды C-LEARN станет усовершенствование алгоритма. Разработчики намерены научить робота решению еще более сложных задач. Например, многошаговой сборке с использованием двух рук, избеганию столкновений с людьми и другими роботами при выполнении задания. По мнению разработчиков, в конечном счете C-LEARN можно будет использовать для того, чтобы обучать разнотипные машины, от промышленных роботов до роботов, используемых для разминирования.
Команда протестировали систему на платформе Optimus, новом роботе с двумя руками, предназначенном для обезвреживания бомб. Робот был запрограммирован для выполнения таких задач, как открытие дверей, транспортировка объектов, извлечение объектов из контейнеров. В симуляции команда продемонстрировала, что навыки, приобретенные Optimus легко могут быть перенесены в известную разработку Atlas, компании Boston Dynamics.
При создании C-LEARN разработчики столкнулись с тем, что набор ограничений, получаемых в ходе демонстраций, не был исчерпывающим, роботу не хватало информации для того, чтобы манипулировать предметами. Чтобы справиться с этой проблемой, исследователи использовали подходы, аналогичные тем, что применяются при автоматизированном проектировании. В частности, вдохновленные программами автоматизированного проектирования (computer-aided design, CAD), разработчики задали роботу в качестве условия, что его «руки» должны быть параллельны или перпендикулярны объектам, с которыми он взаимодействует.
По словам специалистов из команды разработчиков, робот лучше функционирует, сотрудничая с людьми. Самостоятельно робот успешно выполнял задачи в 87,5% случаев. В присутствии оператора, который мог исправить мелкие ошибки, связанные со случайными неточностями измерений датчиков, робот не ошибался в 100% случаев.
Разработчики считают, что обученные с помощью C-LEARN роботы, станут действовать куда быстрее и «находчивей», чем их собратья, запрограммированные традиционными способами. К помощи оператора такие роботы будут обращаться не так часто.
Технология C-LEARN при всех своих положительных качествах, далеко не безупречна. Обученный таким способом робот не слишком адаптивен. Если его, например, учили захватить объект, а затем его извлекать, то, например, бросить извлеченный объект робот не сможет. Иными словами, программы обучения роботов по-прежнему не содержат элементов логического мышления или зачатков интеллекта, что могло бы приблизить робота к человеку, к нашим способам познания мира. Тем не менее, ученые считают свою разработку весьма эффективной и перспективной.
C-LEARN будет представлен на Международной конференции по робототехнике и автоматизации (International Conference on Robotics and Automation, ICRA), которая проходит с 29 мая по 3 июня в Сингапуре.
+ +