Артём Сорокин | 07 Декабря
Что мы хотим получить при помощи обучения с подкреплением:
where:
Задача:
Мы бы хотели найти градиент нашей целевой функции по параметрам стратегии \(\pi_{\theta}\), которая генерирует траектории
Целевая функция
кумулятивная награда за траекторию
Чтобы максимизировать средний ожидаемый доход:
Найдем:
Log-derivative trick:
Максимизируем средний ожидаемый доход:
Градиент по \(\theta\):
Распишем \(p_{\theta}(\tau)\):
Возьмем логарифм:
Градиент по Стратегии:
Максимизируем средний ожидаемый доход:
Градиент по \(\theta\):
Мы не знаем реального значения мат. ожидания здесь:
Как всегда можем оценить его используя сэмплирование:
Оцениваем Градиент по стратегии:
Обновляем параметры стратегии:
Псевдокод:
REINFORCE оценивает градиент по стратегии (Policy Gradient):
Для оценки градиента по параметрам \(\theta\) нужно собирать сэмплы при помощи \(\pi_{\theta}\)!
On-policy алгоритмы:
Псевдокод:
Представим, что учим стратегию по экспертным траекториями
при помощи обучения с учителем:
Используем 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\)
Обновляем стратегию пропорционально доходу \(\tau (r) \):
Обновляем стратегию пропорционально тому на сколько \(\tau (r) \) лучше чем средний доход:
где:
Вычитание бейзлайна дает несмещенную оценку (и часто работает лучше):
В методах на основе функций ценности (DQN, Q-learning, SARSA, и тд.) мы использовали \(\epsilon\)-жданую стратегию, чтобы агент исследовал новые варианты в среде
Регуляризация энтропии стратегии агента:
В методах с явным представлением стратегии агента, можно использовать более гибкий вариант:
Добавление к функции потерь \(-H(\pi_{\theta})\):
Финальная версия REINFORCE с "учетом причинности" и бейзлайном:
Вспоминаем Функции ценности:
Что это?
Оценка \(Q_{\pi_{\theta}}(s_{i,t},a_{i,t})\) по одному сэмплу
Совместим Градиент по стратегии и Функции Ценности!
Вспомним про бейзлайн:
дисперсия меньше чем у оценки по одному сэмплу
Тут тоже стоит учесть причинность....
Функция приемущества / Advantage Function:
апроксимируем это значение при помощи одного сэмпла
на сколько \(a_t\) лучше чем обычное поведение стратегии
Легче учить только одну функцию!
...но можно сделать еще лучше:
Совместим Градиент по стратегии и Функции Ценности!
Функция приемущества:
Выучить \(V\)-функцию легче, т.к. она зависит от меньшего числа аргументов
Совместим Градиент по стратегии и Функции Ценности!
на сколько \(a_t\) лучше чем обычное поведение стратегии
Policy Iteration напоминалка:
В DQN была Target Network, тут просто не проводим градиенты.
\(\phi\): свой набор параметров
Answer: Учим на нескольких средах одновременно!
Не можем использовать Replay Memory, но нам нужно декоррелировать сэмплы
Каждый рабочий:
Взаимодествие с каждой средой и обучение происходит асинхронно
Приемущества:
Недостатки:
Взаимодествие с каждой средой и обучение происходит асинхронно
Решение проблем A3C:
Эту версию обычно называют A2C... снова...
Приемущества:
Недостатки:
Эту версию обычно называют A2C... снова...