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

обучение робота
обучение робота

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

Группа исследователей из Калифорнийского университета в Беркли под руководством Сергея Левина (Sergey Levine) создала алгоритм, которому для того же самого достаточно всего лишь одного примера. Для робота одно и то же действие, к примеру, перемещение кружки из одного края стола в другой, выполненное роботом и человеком, является двумя разными действиями, поскольку он не может без предварительного обучения сопоставить движения человеческой руки с требуемыми перемещениями своего манипулятора. Авторы решили упростить проблему и выбрали двухстадийный подход, при котором робот сначала учится сопоставлять движения человека и робоманипулятора, а затем обучается конкретному навыку, используя для этого опыт, накопленный в первой стадии, и видеозапись выполнения задачи человеком.

Схема выбранного авторами подхода
Схема выбранного авторами подхода

Изначально инженеры обучили сверточную нейросеть на примерах, полученных с помощью управляемого вручную робота. Алгоритм получал на входе изображения с камеры робота и сопоставленные каждому кадру данные о положении и скорости частей роборуки, а на выходе предсказывал параметры движения захвата. После этого алгоритм обучали на датасете, состоящем из пар записей, на которых люди и управляемый вручную робот выполняет одну и ту же задачу. За счет этого алгоритм научился «понимать» выполненное на примере действие, независимо от того, кто именно выполнил это действие, в какой окружающей среде, а также от того, с какого ракурса была сделана видеозапись примера.

Разработчики протестировали работу алгоритма на двух роботах, оснащенных робоманипуляторами — Willow Garage PR2 и Sawyer. Несмотря на то, что ракурс камеры при записи человеческих действий отличался от ракурса камеры роботы, а предметы и фон могли отличаться меду тренировочным и тестовым набором данных, робот успешно научился понимать требуемые от него простые действия, опираясь на один пример.