Автор: Шамиль Мамедов Редактура: Дмитрий Раков

Введение

Одним из самых ранних, известных и успешных проектов в области автономного вождения стал проект Autonomous Land Vehicle In a Neural Network (ALVINN) Университета Карнеги-Меллон. В рамках ALVINN нейронная сеть научилась отображать входные изображения на дискретные действия для управления транспортным средством. Она имела один скрытый слой с 29 узлами. Ее входной слой содержал 30 на 32 узлов, а выходной слой — 45 узлов. Хотя структура этой сети была проще структуры современных нейронных сетей с миллионами параметров, системе удалось успешно преодолеть североамериканский континент. Ключевым фактором успеха проекта ALVINN было имитационное обучение.

Рисунок 1. Автомобиль из проекта ALVINN и архитектура нейронной сети для его управления

Рисунок 1. Автомобиль из проекта ALVINN и архитектура нейронной сети для его управления

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

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

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

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

Рисунок 2. Сбор данных для обучения робота жонглированию теннисным мячом

Рисунок 2. Сбор данных для обучения робота жонглированию теннисным мячом

Имитационное обучение vs обучение с учителем

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

  1. Решение может обладать важными структурными свойствами, такими как ограничения (например, на скорость робота), гладкость и стабильность (например, чтобы шагающий робот не упал после нескольких шагов).
  2. Необходимость минимизации сбора новых данных.

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

В машинном обучении проблема прогнозирования с различным распределением исходного и целевого доменов часто называется "covariate shift", или "адаптацией домена". В имитационном обучении набор данных с демонстрациями не охватывает все возможные ситуации — это обычно слишком затратно по времени и средствам. Поэтому робот может столкнуться с такими не охваченными экспертом состояниями, следовательно, распределение целевого и исходного доменов будет отличаться. Поэтому covariate shift является неотъемлемой частью имитационного обучения.

Задача имитационного обучения

Напомним, что цель имитационного обучения — обучение политики (policy), которая смогла бы воспроизвести поведение экспертов, демонстрирующих этапы выполнения определенной задачи. В некоторых задачах поведение эксперта наиболее точно описывается как траектория $\tau =[\phi_0,\dots,\phi_N]$. Она является последовательностью признаков $\phi$. Эти признаки представляют состояние робототехнической системы или любые другие измерения и выбираются в соответствии с поставленной задачей.

Следует отметить: $\phi$ не обязательно должны быть заданы вручную, плюс они могут быть такими общими, как пиксели в необработанных изображениях.

При других сценариях, например, когда робот не способен выполнять произвольные траектории, поведение эксперта наилучшим образом характеризуется как последовательность пар состояние $x_i$ и действие (action) $u_i$. В случае гибкого робота (как на анимации ниже) состоянием может быть положение и скорость шарниров или конечной точки робота.

Рисунок 3. Экспертные демонстрации по управлению гибким роботом при наличии препятствий

Рисунок 3. Экспертные демонстрации по управлению гибким роботом при наличии препятствий