# Исследование Google Brain: как правильно настроить on-policy RL-агента

Источник: https://www.youtube.com/watch?v=a4VvcmqnkhY
Канал: Yannic Kilcher
Опубликовано: 20.08.2020

---

Исследователи из Google Brain провели масштабное эмпирическое исследование, чтобы выяснить, какие факторы и настройки алгоритмов действительно влияют на эффективность обучения с подкреплением (on-policy RL) в задачах непрерывного контроля. В ходе работы было обучено более 250 тысяч агентов и протестировано свыше 50 различных конфигураций и конструктивных решений. Известный ИИ-исследователь Янник Кильчер подробно разобрал данную научную работу, указав как на её огромную практическую пользу, так и на важные методологические ограничения эксперимента.

## 📊 Масштаб исследования и методологические нюансы
[[JUMP:0:00]]

В своей работе команда Google Brain исследовала поведение агентов в пяти различных средах непрерывного контроля. Они создали унифицированную программную среду на базе фреймворка seed RL, внедрив туда более 50 различных параметров конфигурации, включая ширину и глубину нейросетей, скорость обучения, типы функций потерь и константы регуляризации. Всего в рамках проекта было обучено около 250 000 независимых агентов.

Однако Янник Кильчер обращает внимание на то, что заголовок статьи несколько преувеличивает её реальный охват. По мнению ведущего, вместо общего исследования механизмов On-Policy RL, авторы сфокусировались исключительно на непрерывном контроле в пяти очень похожих симуляциях MuJoCo. Эти среды практически идентичны по структуре наблюдений и законам физики. Кроме того, на момент записи обзора код проекта и чекпоинты моделей не были опубликованы в открытом доступе.

### 🧩 Проблема размерности и компромиссный подход

Поскольку провести честный полный перебор (grid search) по пространству из 50 с лишним параметров физически невозможно, исследователи применили оптимизированную стратегию. Они разбили параметры на тематические группы (архитектура сетей, параметры сбора данных и т.д.), добавив скорость обучения в каждую из них из-за её сильного взаимного влияния на остальные факторы. В рамках конкретного эксперимента авторы случайным образом варьировали параметры только внутри одной выбранной группы, в то время как настройки всех остальных групп оставались фиксированными и соответствовали сильной базовой конфигурации алгоритма PPO версии 2 (PPO v2).

Янник Кильчер высказывает критическое замечание по поводу этой методики. По его мнению, такой подход неизбежно смещает итоговые результаты в пользу тех решений, которые изначально близки к базовому алгоритму PPO v2. Если бы авторы взяли за основу другой алгоритм, оптимальные конфигурации внутри изолированных групп могли бы оказаться совершенно иными, но архитектура эксперимента просто не позволяет этого увидеть.

## 📉 Функции потерь и архитектура нейросетей
[[JUMP:14:17]]

Исследователи сравнили несколько популярных функций потерь для обучения политики, включая PPO, стандартный градиент политики (Policy Gradient) и V-trace, оптимизированный для распределенного обучения. В данных условиях алгоритм PPO показал наилучшие результаты во всех тестах. Авторы рекомендуют использовать именно функцию потерь PPO и начинать эксперименты с порога отсечения (clipping threshold) 0.25, пробуя изменять его в большую или меньшую сторону при наличии ресурсов.

### 🏛 Рекомендации по архитектуре сетей

В задачах непрерывного контроля агенты обучаются не по пикселям, а на основе показаний виртуальных датчиков и сенсоров роботов. Исследование выявило следующие архитектурные закономерности:

* Разделение сетей: использование отдельных, не связанных друг с другом нейросетей для политики (Policy MLP) и ценности (Value MLP) дает лучший результат в 4 из 5 протестированных сред. Общие слои между ними использовать не рекомендуется.
* Ширина сетей: оптимальный размер сети политики строго зависит от сложности среды — слишком малые или чрезмерно большие значения приводят к падению эффективности. Напротив, для сети ценности увеличение ширины не несет никаких минусов. Например, в среде HalfCheetah наилучшие результаты были достигнуты при 1632 юнитах на слой, и сеть ценности там имеет смысл делать шире, чем сеть политики.
* Функции активации: функция TanH показала себя наилучшим образом, тогда как популярная в глубоком обучении ReLU продемонстрировала худшие результаты. Янник Кильчер предполагает, что это может быть связано со спецификой базовых настроек (например, отсутствием регуляризации энтропии), где неограниченная функция ReLU уступает ограниченной TanH.

## 🚀 Секреты инициализации и нормализации данных
[[JUMP:20:16]]

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

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

Другие технические рекомендации авторов по этому блоку:

* Для трансформации выходных данных сети в стандартное отклонение действий следует использовать функцию Softplus.
* Необходимо добавлять отрицательное смещение (negative offset) на вход Softplus для искусственного снижения начального стандартного отклонения действий.
* Использование TanH оправдано для активации и ограничения сэмплов из нормального распределения в рамки допустимого пространства действий.

### 🎛 Нормализация и клиппинг

В вопросах предобработки данных исследование подтвердило важность устоявшихся инженерных практик:

* Нормализация наблюдений: авторы настоятельно рекомендуют всегда нормализовать входящие данные агента. Это дает мощный буст производительности, аналогично supervised-задачам вроде классификации изображений MNIST.
* Нормализация функции ценности: стоит проверять в каждом конкретном случае, улучшает ли результаты нормализация выходов сети ценности.
* Градиентный клиппинг: может немного помочь общей стабильности, но имеет глубоко второстепенное значение.

## 📈 Оценка преимуществ и организация процесса обучения
[[JUMP:26:32]]

Для обучения сети ценности алгоритму необходимо предсказывать суммарную награду, которую агент получит с текущего момента и до конца эпизода. Исследователи сравнили популярные оценщики преимуществ (advantage estimators), такие как N-step, GAE (Generalized Advantage Estimation) и V-trace.

Базовый метод N-step предсказуемо уступил более сложным аналогам. Авторы рекомендуют использовать алгоритм GAE с параметром лямбда = 0.9 либо V-trace — значимой разницы в производительности между GAE и V-trace обнаружено не было.

### ⚙️ Настройка тренировочного процесса

В вопросах сбора данных и управления батчами исследователи пришли к следующим выводам:

* Многократный проход по данным: собранный опыт агента внутри одной итерации стоит использовать несколько раз (проводить по нему несколько эпох обучения) — это значительно улучшает результаты и избавляет от необходимости генерировать избыточные новые данные в среде.
* Перемешивание данных: перед формированием мини-батчей необходимо тщательно перемешивать индивидуальные переходы (transitions), чтобы избежать высокой корреляции последовательных шагов внутри батча.
* Пересчет преимуществ: критически важно заново пересчитывать оценки преимуществ один раз за каждый проход по данным (эпоху) с использованием самой актуальной версии сети ценности. Оставлять старые оценки из буфера неэффективно, так как они быстро устаревают по мере обновления весов сети.
* Параллельные среды: для сокращения реального времени обучения (wall-clock time) следует использовать много параллельных сред и увеличивать размер батча, хотя это может несколько ухудшить выборку по фреймам (sample complexity).

## ⏱ Временные шаги, оптимизаторы и регуляризация
[[JUMP:32:56]]

Фактор дисконтирования наград признан одним из ключевых гиперпараметров, который критически важно настраивать индивидуально под каждую конкретную среду, поскольку он напрямую зависит от структуры вознаграждений задачи. Авторы советуют начинать эксперименты со значения 0.99. Также рекомендуется по возможности тестировать технику пропуска кадров (frame skip).

### 🛠 Оптимизаторы и их параметры

В качестве алгоритмов оптимизации весов тестировались Adam и RMSProp:

* Выбор алгоритма: рекомендуется использовать Adam с моментом. RMSProp показал себя неплохо, но стабильно уступал на несколько процентов.
* Скорость обучения (learning rate): этот параметр требует обязательной индивидуальной настройки под задачу. Другие внутренние параметры оптимизаторов (например, эпсилон) практически не влияют на итоговый результат.

### ⛓ Проблема регуляризации и выводы

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

Янник Кильчер, однако, высказывает важное методологическое возражение против этого вывода. Он напоминает известную историю с масштабным исследованием алгоритмов GAN («Are all GANs created equal?»), авторы которого заявили, что все генеративные сети плюс-минус одинаковы, упустив из виду, что для Wasserstein GAN критически важен оптимизатор RMSProp вместо Adam. В данном исследовании Google Brain функции потерь вроде V-trace тестировались без энтропийной регуляризации, хотя в оригинальной статье Impala они были неразрывно связаны для достижения синергетического эффекта. Таким образом, из-за невозможности плотного исследования всего многомерного пространства параметров, многие важные кросс-взаимодействия факторов остались незамеченными.

Главный вывод ведущего заключается в том, что разработчикам в любом случае придется долго и упорно настраивать гиперпараметры под свою конкретную практическую задачу, а результаты этого масштабного исследования стоит использовать как надежную и выверенную отправную точку (default settings).