Обучение с подкреплением seminar:
Cross-Entropy Method
Павел Темирчев
@cydoroga
\( p(s_{t+1}|s_t, a_t) \) - динамика переходов в среде (марковская)
Задача Reinforcement Learning
\( s \sim \mathcal{S} \) - состояния (дискретные \ непрерывные)
\( a \sim \mathcal{A} \) - действия (дискретные \ непрерывные)
\( \pi(a|s) \) - политика агента
\( p(s_0) \) - распределение над начальными состояниями
\( r(s, a) \) - награда за действие \(a\) в состоянии \(s\)
\( p(\tau|\pi) = p(s_0) \prod_{t=0}^T \pi(a_t|s_t) p(s_{t+1}|a_t, s_t)\) - политика агента
где \( \tau= (s_0, a_0, s_1, a_1, \dots, s_T, a_T) \) - траектория агента
Не знаем!
Узнаём, взаимодействуя со средой
Хотим найти!
Кросс-энтропийный метод
для оптимизации
Пусть есть некоторая функция \( f(x): \mathcal{X} \rightarrow \mathbb{R} \)
Вообще, мы бы хотели максимизировать по \(\pi\)
среднюю кумулятивную дисконтированную награду:
$$ J(\pi) = \mathbb{E}_{p(\tau|\pi)} \sum_{t=0}^T \gamma^t r(s_t, a_t) $$
Пока абстрагируемся!
- Хотим ее максимизировать по \(x\)
- Но не умеем считать производную \(\frac{\partial f}{\partial x} \)
Кросс-энтропийный метод
для оптимизации
Идея: вместо оптимального \(x^*\) найдем "оптимальное" распределение
'оптимальное' распределение
Кросс-энтропийный метод
для оптимизации
Инициализируем
распределение \(q^0\)
Сэмплим \( x_i \sim q^0\)
Выбираем M x_i
c наибольшим \( f \)
- элиты
Подстраиваем \(q^1\)
под элиты
Повторяем!
Кросс-энтропийный метод
для оптимизации
Кросс-энтропийный метод
для оптимизации
Чтобы подстроить \(q\) под элиты, минимизируем KL-дивергенцию:
\( KL(p_{data} || q) = \int p_{data}(x) \log \frac{p_{data}(x)}{q(x)} dx \)
\( \min_q KL(p_{data} || q) = \min_q \left[ - \mathbb{E}_{x \sim p_{data}} \log q(x) \right] \)
На k-й итерации:
\( q^{k+1} = \arg \min_q \left[ - \sum_{x \in \mathcal{M}^k} \log q(x) \right] \)
где \(\mathcal{M}^k\) - элиты, собранные на прошлой итерации
минимизация кросс-энтропии
Кросс-энтропийный метод
для Reinforcement Learning
Будем максимизировать \(J(\pi_\theta)\) по параметрам \(\theta\).
Где \(\pi_\theta\) - нейронная сеть, параметризующая распределение.
(непрерывные действия)
Neural Net.
\(\mu(s)\)
\(\sigma(s)\)
Например:
(дискретные действия)
Neural Net.
softmax
\(\pi(\cdot|s)\)
Кросс-энтропийный метод
для Reinforcement Learning
Алгоритм:
- ввод: \(\alpha\) - процент сохраняемых элит
- инициализируем \(\pi_\theta\)
-
повторять
- пускаем \(\pi_\theta\) собирать траектории \(\mathcal{T}= \{\tau_i\}\)
- вычисляем перцентиль \(\delta = \text{percentile}(\mathcal{T},p=\alpha)\)
- выбираем элиты \(\mathcal{M} = \text{filter\_elites}(\mathcal{T}, \delta)\)
- частично обучаем \(\pi_\theta\) прогнозировать \(a_i\) по \(s_i\), где \((a_i, s_i) \in \mathcal{M}\)
CEM
By cydoroga
CEM
- 368