Лекция 6:
Градиент по Стратегии
Артём Сорокин | 07 Декабря
Целевая Функция в RL
Что мы хотим получить при помощи обучения с подкреплением:
where:
- \(\theta\) - параметры стратегии
- \(p_{\theta}(\tau)\) - вероятностное распределение по траекториям в среде, которые генерирует стратегия \(\pi_{\theta}\)
- \([\sum_t \gamma^{t} r_t]\) - кумулятивная дисконтированная награда за эпизод / доход с первого шага.
Целевая Функция в RL
Задача:
Мы бы хотели найти градиент нашей целевой функции по параметрам стратегии \(\pi_{\theta}\), которая генерирует траектории
Целевая функция
кумулятивная награда за траекторию
Градиент по Стретегии
Чтобы максимизировать средний ожидаемый доход:
Найдем:
Log-derivative trick:
Policy Gradients
Максимизируем средний ожидаемый доход:
Градиент по \(\theta\):
Распишем \(p_{\theta}(\tau)\):
Возьмем логарифм:
Policy Gradients
Градиент по Стратегии:
Максимизируем средний ожидаемый доход:
Градиент по \(\theta\):
Оценка Градиента по Стратегии
Мы не знаем реального значения мат. ожидания здесь:
Как всегда можем оценить его используя сэмплирование:
Алгоритм REINFORCE
Оцениваем Градиент по стратегии:
Обновляем параметры стратегии:
Псевдокод:
- Сэмплируем i эпизодов \(\{\tau^i\}\) стратегией \(\pi_{\theta}\)
- Оцениваем градиент по стратегии \(\pi_{\theta}\) на эпизодах \(\{\tau^i\}\)
- Обновляем параметры стратегии
- Переходим к пункту 1
REINFORCE это on-policy алгоритм
REINFORCE оценивает градиент по стратегии (Policy Gradient):
Для оценки градиента по параметрам \(\theta\) нужно собирать сэмплы при помощи \(\pi_{\theta}\)!
On-policy алгоритмы:
- После обновления параметров сэмплы собранные со старыми параметрами становятся бесполезны.
- Алгоритмы на основе PG требуют много сэмплов!
Псевдокод:
- Сэмплируем i эпизодов \(\{\tau^i\}\) стратегией \(\pi_{\theta}\)
- Оцениваем градиент по стратегии \(\pi_{\theta}\) на эпизодах \(\{\tau^i\}\)
- Обновляем параметры стратегии
- Переходим к пункту 1
Основная идея Градиента по Стратегии
Представим, что учим стратегию по экспертным траекториями
при помощи обучения с учителем:
Используем Cross Entropy-loss для каждого перехода (\(s_t, a_t, s_{t+1}\)) в датасете :
0.2
0.7
0.1
1
0
0
Ground Truth из датасета в \(s_t\):
Стратегия в \(s_t\):
\(a_t\)
Градиент при клонировании поведения (Behaviour Clonning):
Градиент по стратегии:
Цель минимизировать \(J_{BC}(\theta)\)
Цель максимизировать \(J(\theta)\)
Цель максимизировать \(-J_{BC}(\theta)\)
BC учит модель выбирать теже действия что и эксперт!
PG учит модель выбирать действия ведущие к высоким наградам за эпизод!
Основная идея Градиента по Стратегии
Основная Идея Градиента по Стратегии
Градиент по стратегии:
PG учит стратегию выбирать действия ведущие к высокому доходу за эпизод!
Проблемы Градиенты по Стратегии
Проблема: высокая дисперсия!
Уменьшаем Дисперсию: Причинность
выглядит подозрительно!
Принцип причинности: действие на шаге \(t\) не может повлиять на награду за шаг \(t'\) если \(t' < t\)
выглядит подозрительно!
Последние действия становятся менее значимыми!
Финальная Версия:
Уменьшаем Дисперсию: Причинность
Принцип причинности: действие на шаге \(t\) не может повлиять на награду за шаг \(t'\) если \(t' < t\)
Улучшаем PG: Бейзлайн
Обновляем стратегию пропорционально доходу \(\tau (r) \):
Обновляем стратегию пропорционально тому на сколько \(\tau (r) \) лучше чем средний доход:
где:
Вычитание бейзлайна дает несмещенную оценку (и часто работает лучше):
Улучшаем PG: Регуляризация энтропией
В методах на основе функций ценности (DQN, Q-learning, SARSA, и тд.) мы использовали \(\epsilon\)-жданую стратегию, чтобы агент исследовал новые варианты в среде
Регуляризация энтропии стратегии агента:
В методах с явным представлением стратегии агента, можно использовать более гибкий вариант:
Добавление к функции потерь \(-H(\pi_{\theta})\):
- поощряет агента действовать более случайно
- накладывает менее строгие ограничения чем \(\epsilon\)-жадная стратегия
Алгоритмы Испольнитель-Критик
Финальная версия REINFORCE с "учетом причинности" и бейзлайном:
Вспоминаем Функции ценности:
Что это?
Оценка \(Q_{\pi_{\theta}}(s_{i,t},a_{i,t})\) по одному сэмплу
Совместим Градиент по стратегии и Функции Ценности!
Вспомним про бейзлайн:
дисперсия меньше чем у оценки по одному сэмплу
Тут тоже стоит учесть причинность....
Алгоритмы Испольнитель-Критик
Advantage Actor-Critic: A2C
Функция приемущества / Advantage Function:
апроксимируем это значение при помощи одного сэмпла
на сколько \(a_t\) лучше чем обычное поведение стратегии
Легче учить только одну функцию!
...но можно сделать еще лучше:
Совместим Градиент по стратегии и Функции Ценности!
Advantage Actor-Critic: A2C
Функция приемущества:
Выучить \(V\)-функцию легче, т.к. она зависит от меньшего числа аргументов
Совместим Градиент по стратегии и Функции Ценности!
на сколько \(a_t\) лучше чем обычное поведение стратегии
A2C: Обучение
-
Policy Improvement шаг:
- Учим испольнителя при помощи градиента по стратегии:
-
Policy Evaluation шаг:
- Учим Критика через MSE (по аналогии с DQN)
- Сэмплируем {\(\tau\)} при помощи \(\pi_{\theta}(a_t|s_t)\)
Policy Iteration напоминалка:
В DQN была Target Network, тут просто не проводим градиенты.
\(\phi\): свой набор параметров
Детали реализации: Арихтектура A2C
Асинхронный A2C: A3C
Answer: Учим на нескольких средах одновременно!
Не можем использовать Replay Memory, но нам нужно декоррелировать сэмплы
Каждый рабочий:
- Получает параметры модели из единого сервера параметров
- Генерирует траектории
- Считает Градиенты
- Отправляет градиенты обратно в сервер параметров
Взаимодествие с каждой средой и обучение происходит асинхронно
Асинхронный A2C: A3C
Приемущества:
- Работает быстрее (реальное время обучения)
Недостатки:
- Для N асинхронных рабочих нужно хранить N+1 копий параметров модели
- Проблема протухших градиентов
Взаимодествие с каждой средой и обучение происходит асинхронно
Синхронный параллельный A2C
Решение проблем A3C:
- Пусть все среды работают параллельно
- Среды синхронизируются после каждого шага
- Можно выбирать действия используя только одну копию параметров
- Обновляем парметры каждые t шагов в среде/средах
Эту версию обычно называют A2C... снова...
Приемущества:
- Достаточно хранить только один набор параметров
- Стабильнее A3C
- нет протухших градиентов
Недостатки:
- Немного медленнее, чем A3C
- Число взаимодействий со средой в еденицу времени
Синхронный параллельный A2C
Эту версию обычно называют A2C... снова...
A3C/A2C Результаты:
Спасибо за Внимание!
FTIAD RL #5 Policy Gradient
By supergriver
FTIAD RL #5 Policy Gradient
- 556