Обучение с подкреплением 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_t|s_t) \) - политика агента 

\( p(s_0) \) - распределение над начальными состояниями 

\( r_t = r(s_t, a_t, s_{t+1}) \) - Марковская награда

тогда \( 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) \)

Не знаем!
Наблюдаем, взаимодействуя со средой

Хотим найти!

Оптимальный агент достигает максимума средней кумулятивной (суммарной за эпизод) награды:

$$ J(\pi) = \mathbb{E}_{p(\tau|\pi)} \sum_{t=0}^T r(s_t, a_t, s_{t+1}) $$

 

$$ \max_\pi J(\pi) $$

Задача Reinforcement Learning

Оптимальный агент достигает максимума средней кумулятивной дисконтированной награды:

$$ J(\pi) = \mathbb{E}_{p(\tau|\pi)} \sum_{t=0}^T \gamma^t r(s_t, a_t, s_{t+1}) $$

 

$$ \max_\pi J(\pi) $$

 

Важно: изменение фактора дисконтирования \(\gamma\) меняет постановку задачи.

Задача Reinforcement Learning

с дисконтированием

Кросс-энтропийный метод

для оптимизации

x_0
x_1

Идея: вместо оптимального \(x^*\) найдем "оптимальное" распределение

​'оптимальное' распределение

Кросс-энтропийный метод

для оптимизации

x_0
x_1

Инициализируем
распределение \(q^0\)

Сэмплим \( x_i \sim q^0\)

Выбираем M x_i
c наибольшим \( f \)
- элиты

Подстраиваем \(q^1\)
под элиты

Повторяем!

Кросс-энтропийный метод

для оптимизации

x_0
x_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\) - нейронная сеть, параметризующая распределение.

(непрерывные действия)

s

Neural Net.

\(\mu(s)\)

\(\sigma(s)\)

Например:

(дискретные действия)

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

  • 492