Обучение с подкреплением #2:

 

разговорчики про
Dynamic Programming

 

Павел Темирчев

@cydoroga

Робот-пылесос!

Пример: робот-пылесос

Нужно ли что-то еще?

Хранение предыдущих наблюдений?

Цель: пропылесосить всю квартиру

Действия \(a\): повороты, скорость вращения колес

  • Данные лидаров и др. сенсоров
  • Карта помещения
  • Локация робота на карте

Какие могут быть наблюдения \(s\) у робота?

Задача: открыть дверь ключом

Действия:

  • вверх \ вниз \ влево \ вправо
  • взять объект
  • использовать объект
    (если находишься у двери)

Нужно ли агенту помнить свою историю?

Возможные наблюдения:

  1. координаты агента
  2. полная картинка лабиринта
  3. координаты агента + есть ли у него ключ

2 и 3 не требуют хранения истории

Марковость: "Будущее не зависит от прошлого, если известно настоящее"

Пример состояния из Atari

Вы
Куда лучше двигаться?

Напоминалочка

\( p(s_{t+1}|s_t, a_t) \) - динамика переходов в среде (марковская) 

\( s \sim \mathcal{S} \); \( a \sim \mathcal{A} \) - пространства состояний \ действий

\( \pi(a|s) \) - политика агента 

\( 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) \) - траектория агента 

\( R_t = r(s_t, a_t) + \gamma r(s_{t+1}, a_{t+1}) + \gamma^2 r(s_{t+2}, a_{t+2}) + \dots \) - reward to go или return

\( R_t = \sum_{\tau=t}^{\infty} \gamma^{\tau-t} r(s_{t+\tau}, a_{t+\tau}) \)

сегодня их считаем известными,
​но на практике - нет!!
Return - случайная величина. Почему?

Оценка политики

Насколько хороша политика \(\pi\), если начать в состоянии \(s\)?

\( V_t^\pi(s) = \mathbb{E}_{\tau \sim \pi} \left[ R_t | s_t = s \right] \)

Политика \(\forall s\):

\(V\)-функция ценности:

\(s_0\)

\(s_1\)

\(s_2\)

\(s_3\)

\(s_4\)

1
\gamma
\gamma^2
\gamma^3
\gamma^4

\(Q\)-функция ценности:

\(s_0\)

\(s_1\)

\(s_2\)

\(s_3\)

\(s_4\)

1
\gamma
\gamma^2
\gamma^3
\gamma^4
1
\gamma^3
\gamma^4
\gamma^5
\gamma^5

\( Q_t^\pi(s, a) = \mathbb{E}_{\tau \sim \pi} \left[ R_t | s_t = s, a_t = a \right] \)

А что если в \(s\) "принудительно" выбрать действие \(a\), а только затем идти по политике \(\pi\)?

В сложных средах считать неудобно!

терминальное состояние

+1 за рыбку

Конечные и бесконечные

по времени MDP

\( V_t^\pi(s) = \mathbb{E}_{\tau \sim \pi} \left[ \sum_{i=t}^\infty \gamma^{i - t} r_i | s_t = s \right] \)

Пусть длина эпизода \(T = \infty \), тогда легко заметить, что:

\( V_t^\pi(s) = \mathbb{E}_{\tau \sim \pi} \left[ \sum_{i=t}^\infty \gamma^{i - t} r_i | s_t = s \right] = \left[ \sum_{i=0}^\infty \gamma^i r_i | s_0 = s \right] \)

\( V_t^\pi(s) =  V_0^\pi(s) = V^\pi(s) \)

А значит, 

не зависит от времени!

Такие MDP называются бесконечными.

MDP с терминальными состояниями сводятся к бесконечным добавлением поглощающего состояния.

нельзя выйти
нулевая награда

Конечные и бесконечные

по времени MDP

\( V_0^\pi(s_0) = \gamma^4 \)

Если длина эпизода \(T < \infty \), то в общем случае V зависит от времени.

В теории, однако, и тут t опускают.

Для этого достаточно считать, что состояние содержит t:

Например, при \(T = 4 \):

\( V_1^\pi(s_0) = 0 \)

\( s \rightarrow (s, t) \)

Такие MDP называются конечными.

Как решить Беллмана?

\( V^\pi(s) = \mathbb{E}_{a \sim \pi(\cdot|s)} \left[ r(s, a) + \gamma \mathbb{E}_{s' \sim p(s'|s, a)} V^\pi(s') \right] \)

Как СЛАУ:

\( V^\pi(s) = \mathbb{E}_{a \sim \pi(\cdot|s)} r(s, a) + \gamma \mathbb{E}_{s' \sim p(s'|s)} V^\pi(s') \)

Относительно V все линейно

\( U \)

\( V \)

\( P \)

\( V = U + \gamma PV \)

\( V^\pi(s) = u(s) + \gamma \mathbb{E}_{s' \sim p(s'|s)} V^\pi(s') \)

\( (I - \gamma P) V = U\)

\( V = (I - \gamma P)^{-1}U\)

Дороговато будет!

Без учета \( |\mathcal{A}| \) - уже \(O(|\mathcal{S}|^3) \)

Как решить Беллмана?

\( V^{new} = F \left( V^{old} \right) \)

Методом простой итерации:

\( F(V)_s = \mathbb{E}_{a \sim \pi(\cdot|s)} \left[ r(s, a) + \gamma \mathbb{E}_{s' \sim p(s'|s, a)} V_s \right] \)

Будет ли алгоритм сходиться?

Будет, если отображение \(F\) сжимающее

\(V\)

iterations

\(V^\pi\)

Является ли оператор Беллмана сжатием?

По норме-бесконечность:

\( || F(V) - F(W) ||_\infty = \)

\(=  || U + \gamma PV - U - \gamma PW ||_\infty = \)

\(=  ||\gamma P(V - W) ||_\infty \le \)

\(\le \gamma|| P ||_\infty ||V - W ||_\infty \)

\(|| P ||_\infty = \max_{x: ||x||_\infty=1} ||Px||_\infty = \)

где матричная норма:

\( = \max_{x: ||x||_\infty=1} \max_i |\sum_j P_{ij} x_j | \)

\( x_j = \text{sign} (P_{ij}) \)

\( = \max_i |\sum_j P_{ij}| = 1 \)

ЧТД: \( ||F(V) - F(W) ||_\infty \le \gamma||V-W||_\infty \)

reminder: \( ||x||_\infty = max_i |x_i| \)

Оптимальные уравнения Беллмана

V-функция для оптимальной политики:

\( V^*(s) = \max_\pi V^\pi (s) \)

\( V^*(s) = \max_\pi( \mathbb{E}_a \left[ r(s, a) + \gamma \mathbb{E}_{s'} V^\pi (s') \right] ) \)

\( V^*(s) = \max_{\pi_0, \pi_1, \dots}( \mathbb{E}_a \left[ r(s, a) + \gamma \mathbb{E}_{s'} V^{\pi_1, \dots} (s') \right] ) \)

\( V^*(s) = \max_{\pi_0}( \mathbb{E}_a \left[ r(s, a) + \gamma \mathbb{E}_{s'} \max_{\pi_1, \dots} V^{\pi_1, \dots} (s') \right] ) \)

Относительно \( \pi_0 \) решается задача вида:

\( \sum_i \pi_i y_i \rightarrow \max_\pi \)

\( \pi_i \ge 0 \)

\( \sum_i \pi_i = 1 \)

\{

Задача ЛП

Среди оптимальных политик всегда есть детерминированная (жадная)

\( V^*(s) = \max_a \left[ r(s, a) + \gamma \mathbb{E}_{s'} V^* (s') \right] \)

Оптимальное уравнение Беллмана:

\(\pi_0\)

\(\pi_1\)

\(1\)

\(1\)

множество допустимых политик

Это разве правда?

Камень - ножницы - бумага

Какая стратегия оптимальна?

  • Если у оппонента фиксированная политика, найдется оптимальная детерминированная для вас!
  • Если оппонент подстраивается, то это не MDP.
    Награда в такой среде:

\( p(r | history) \) или \( p(r | \pi ) \)

  • тут нет состояний - оно единственно
  • среда == случайная награда

Зависят ли Q и V от времени?

Алгоритм Value Iteration

  • инициализируем \(V(s) \;\; \forall s\)
  • повторять:
    • \(\Delta = 0\)
    • для всех \(s\):
      • \(v = V(s) \)
      • \( V(s) = \max_a \left[ r(s, a) + \gamma \mathbb{E}_{s' \sim p(\cdot|s, a)} V(s') \right] \)
      • \( \Delta = \max \left( \Delta, |v - V(s)| \right) \)
  • ​пока \(\Delta > \epsilon \)

вражеский кот - 1

дружественная рыбка + 1

Пример Value Iteration

Инициализируем \( V(s) = 0 \;\; \forall s \)

Copy of К анонсу Practical-RL ШАД

By cydoroga

Copy of К анонсу Practical-RL ШАД

  • 414