Имитационное обучение
Введение
Одним из самых ранних, известных и успешных проектов в области автономного вождения стал проект Autonomous Land Vehicle In a Neural Network (ALVINN) Университета Карнеги-Меллон. В рамках ALVINN нейронная сеть научилась отображать входные изображения на дискретные действия для управления транспортным средством. Она имела один скрытый слой с 29 узлами. Ее входной слой содержал 30 на 32 узлов, а выходной слой — 45 узлов. Хотя структура этой сети была проще структуры современных нейронных сетей с миллионами параметров, системе удалось успешно преодолеть североамериканский континент. Ключевым фактором успеха проекта ALVINN было имитационное обучение.
Сейчас для большинства задач в робототехнике программирование роботов производится экспертами вручную. Однако по мере того, как роботы и другие интеллектуальные агенты переходят из простых сред в среды посложнее, неструктурированные среды, ручное программирование их поведения становится все более трудоемкой и дорогостоящей задачей. Часто эксперту легче продемонстрировать желаемое поведение, чем попытаться реализовать его своими руками.
Такой процесс обучения на основе демонстраций и исследование алгоритмов для его выполнения называется имитационным обучением.
Цель имитационного обучения — эффективное освоение желаемого поведения путем имитации действий эксперта. Его применение не ограничивается физическими системами: такое обучение может быть полезным инструментом для разработки автономного поведения в различных областях, включая веб-сайты, компьютерные игры и мобильные приложения. Однако в робототехнике имитационное обучение играет особенно важную роль, ведь оно позволяет передавать навыки человека роботизированным системам.
В робототехнике экспертами выступают человеческие операторы, а обучающимися — робототехнические системы. Таким образом, имитационное обучение представляет собой технику для передачи человеческих навыков роботам. Для этого нам нужно разработать систему, которая запишет демонстрации экспертов и обучит политику повторять продемонстрированное поведение на основе записанных данных.
Имитационное обучение vs обучение с учителем
На первый взгляд имитационное обучение может показаться равным обучению с учителем (оно более известное) или схожим с ним. Однако у имитационного обучения есть отличительные особенности:
- Решение может обладать важными структурными свойствами, такими как ограничения (например, на скорость робота), гладкость и стабильность (например, чтобы шагающий робот не упал после нескольких шагов).
- Необходимость минимизации сбора новых данных.
Кроме того, часто реализации эксперта и робота различаются. Например, при передаче навыков человека двуногому шагающему роботу движение, записанное человеком-экспертом, может быть невозможным для робота. В этом случае демонстрируемое движение должно быть адаптировано для выполнения роботом, и такая адаптация менее распространена в стандартном обучении с учителем.
В машинном обучении проблема прогнозирования с различным распределением исходного и целевого доменов часто называется «covariate shift», или «адаптацией домена». В имитационном обучении набор данных с демонстрациями не охватывает все возможные ситуации — это обычно слишком затратно по времени и средствам. Поэтому робот может столкнуться с такими не охваченными экспертом состояниями, следовательно, распределение целевого и исходного доменов будет отличаться. Поэтому covariate shift является неотъемлемой частью имитационного обучения.
Задача имитационного обучения
Напомним, что цель имитационного обучения — обучение политики (policy), которая смогла бы воспроизвести поведение экспертов, демонстрирующих этапы выполнения определенной задачи. В некоторых задачах поведение эксперта наиболее точно описывается как траектория \( \tau =[\phi_0,\dots,\phi_N] \). Она является последовательностью признаков \( \phi \). Эти признаки представляют состояние робототехнической системы или любые другие измерения и выбираются в соответствии с поставленной задачей.
Следует отметить: \( \phi \) не обязательно должны быть заданы вручную, плюс они могут быть такими общими, как пиксели в необработанных изображениях.
При других сценариях, например, когда робот не способен выполнять произвольные траектории, поведение эксперта наилучшим образом характеризуется как последовательность пар состояние \( x_i \) и действие (action) \( u_i \). В случае гибкого робота (как на анимации ниже) состоянием может быть положение и скорость шарниров или конечной точки робота.
Часто демонстрации записываются в различных условиях, например, при захвате объекта в разных местах. Мы будем обозначать такие условия как контекст задачи
При имитационном обучении мы сначала собираем набор демонстраций \( \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 \)
Для максимальной эффективности 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. Рассмотренные нами алгоритмы там уже реализованы.