Американские инженеры создали алгоритм для роботов, позволяющий им повторять простые действия человека после одного примера. Алгоритм был обучен на парах данных, в которых подобные действия выполнял человек или управляемый вручную робот, рассказывают разработчики в статье, представленной на конференции RSS 2018.
Успехи в машинном обучении позволяют роботам сегодня выполнять довольно сложные задачи, но, как правило, для того, чтобы научить робота даже простым задачам, требуется компетентный специалист и долгий процесс обучения. В качестве альтернативы ресурсоемким и долгим методам вроде обучения с подкреплением, при котором робот учится путем проб и ошибок и получает от обучающей среды оценку своих действий, существует метод имитационного обучения. При этом робот запоминает, как человек двигает его манипуляторы или смотрит на видеозапись движений робота, а затем воспроизводит это движение. Это хорошо работает в идеальных условиях, например, на производстве, но если, например, захватываемый предмет чуть сдвинуть, результаты сразу станут хуже. Пока роботы не могут учиться настолько легко и эффективно, как люди — смотря на то, как человек выполняет требуемое действие. Разработки в этой области существуют, но для приемлемого качества выполнения требуется несколько сотен повторений.
Группа исследователей из Калифорнийского университета в Беркли под руководством Сергея Левина (Sergey Levine) создала алгоритм, которому для того же самого достаточно всего лишь одного примера. Для робота одно и то же действие, к примеру, перемещение кружки из одного края стола в другой, выполненное роботом и человеком, является двумя разными действиями, поскольку он не может без предварительного обучения сопоставить движения человеческой руки с требуемыми перемещениями своего манипулятора. Авторы решили упростить проблему и выбрали двухстадийный подход, при котором робот сначала учится сопоставлять движения человека и робоманипулятора, а затем обучается конкретному навыку, используя для этого опыт, накопленный в первой стадии, и видеозапись выполнения задачи человеком.
Изначально инженеры обучили сверточную нейросеть на примерах, полученных с помощью управляемого вручную робота. Алгоритм получал на входе изображения с камеры робота и сопоставленные каждому кадру данные о положении и скорости частей роборуки, а на выходе предсказывал параметры движения захвата. После этого алгоритм обучали на датасете, состоящем из пар записей, на которых люди и управляемый вручную робот выполняет одну и ту же задачу. За счет этого алгоритм научился «понимать» выполненное на примере действие, независимо от того, кто именно выполнил это действие, в какой окружающей среде, а также от того, с какого ракурса была сделана видеозапись примера.
Разработчики протестировали работу алгоритма на двух роботах, оснащенных робоманипуляторами — Willow Garage PR2 и Sawyer. Несмотря на то, что ракурс камеры при записи человеческих действий отличался от ракурса камеры роботы, а предметы и фон могли отличаться меду тренировочным и тестовым набором данных, робот успешно научился понимать требуемые от него простые действия, опираясь на один пример.
Недавно другая группа американских исследователей научила роботов ловко хватать даже двигающиеся предметы. Тесты показали, что робот успешно справляется с захватом двигающихся бытовых предметов в 88 процентах случаев, что выше, чем у предыдущих подобных разработок.
Григорий Копиев