Назад
100

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

100

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Часто демонстрации записываются в различных условиях, например, при захвате объекта в разных местах. Мы будем обозначать такие условия как контекст задачи \( s \), который сохраняется вместе с траекториями признаков (состояний и действий). Контекст \( s \) может содержать любую информацию о задаче, например, начальное состояние робота или положение целевых объектов (см. красную сферу на рисунке 3). Добавим также, что контекст описывает текущую задачу, поэтому он обычно остается неизменным во время ее выполнения, и единственными динамическими аспектами задачи являются признаки \( \phi_t \) или состояния \( x_t \).

При имитационном обучении мы сначала собираем набор демонстраций \( \mathcal D = \{(\tau_i , s_i )\}^N_{i=1} \), который состоит из пар траекторий \tau и контекстов s или из пар состояние x, действие u и контекст \( \mathcal D = \{(x_i, u_i, s_i) \}_{i=1}^N \). Процесс сбора данных может быть как оффлайн, так и онлайн. Используя наш датасет \( \mathcal D \), мы оптимизируем политику \( \pi_\star: \)

\( \pi_\star = \text{arg\ min} \ D(q(\phi), p(\phi)) \)

  • где \( q(\phi) \) — распределение признаков, порожденное политикой экспертов
  • \( p(\phi) \) — распределение признаков, порожденное нашим агентом (политикой)
  • \( D(q, p) \) — мера сходства \( q \) и \( p \), например, расстояние Кульбака — Лейблера.

Поведенческое копирование

Самый простой способ имитации эксперта — нахождение непосредственного отображения от контекста к траектории либо от контекста и состояния к действию:

\( u = \pi(x_t, s_t). \)

Такая задача называется поведенческим копированием.

Она может быть сформулирована как типичная задача обучения с учителем. Алгоритм 1 представляет собой общий пайплайн для поведенческого копирования:

Важные элементы пайплайна — репрезентация/архитектура политики \( \pi_\theta \) и целевая функция \( \mathcal L \). В качестве \( \mathcal L \) чаще всего используется \( l_2- \)loss или расстояние Кульбака — Лейблера. За простотой поведенческого копирования скрывается одна большая проблема: covariate shift. Обученный агент \( \pi_\theta \) способен допустить небольшие ошибки, которые накопятся и приведут агента в состояния, отсутствующие в нашем исходном наборе данных \( \mathcal D \). Поскольку нейронные сети плохо экстраполируют, наш агент, вероятно, предложит действия, которые могут привести к катастрофическим последствиям.

Метод агрегирования данных

Для борьбы с covariate shift был разработан мета-алгоритм под названием DAGGER (Data Aggregation). Его цель — сбор экспертных демонстраций в пределах распределения состояний, созданного нашим агентом (обученной политикой). Простейшая версия DAGGER работает следующим образом: на первой итерации политика инициализируется с использованием метода поведенческого клонирования экспертных демонстраций, что приводит к созданию политики \( \pi_1 \). Затем эта политика применяется для сбора нового набора траекторий, который объединяется с исходными демонстрациями в набор данных \( \mathcal D \). Он используется для обучения следующей политики \( \pi_2 \)

Рисунок 4. Принцип работы DAGGER

Для максимальной эффективности DAGGER запрашивает частичные демонстрации эксперта \( \pi_E \) в фазе обучения. Затем политика \( π_i = β_i π_E + (1 − β_i )π_{i} \) , или стохастическое смешивание эксперта и агента, используется для сбора следующего набора данных. Другими словами, запрашиваются частичные демонстрации эксперта в пределах состояний, вызванных обученной политикой \( π_{i} \). Таким образом, DAGGER обучает политику на основе демонстраций эксперта в пределах распределения состояний, созданного обученной политикой. Вот полный алгоритм работы DAGGER:

Отметим также, что для реализации DAGGER нам нужен доступ к эксперту в симуляции или же разметка данных оффлайн-экспертами.

Заключение

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

Мы также рассмотрели два основных метода обучения — поведенческое копирование и агрегирование данных. В первом случае имитационное обучение сводится к обучению с учителем. А во втором — агент собирает новые данные под собственным распределением действий для решения проблемы covariate shift.

В одной из следующих статей мы рассмотрим еще один метод имитационного обучения — обратное обучение с подкреплением, поэтому stay tuned 🙂

Полезные ресурсы

  • An Algorithmic Perspective on Imitation Learning — отличный ресурс для знакомства с имитационным обучением.
  • Awesome-Imitation-Learning — репозиторий, где собрано много материала по тематике.
  • Если вы решили попробовать имитационное обучение, то стоит присмотреться к библиотеке Stable Baselines3. Рассмотренные нами алгоритмы там уже реализованы.

Телеграм-канал

DeepSchool

Короткие посты по теории ML/DL, полезные
библиотеки и фреймворки, вопросы с собеседований
и советы, которые помогут в работе

Открыть Телеграм

Увидели ошибку?

Напишите нам в Telegram!