Обучение с подкреплением #2:
разговорчики про
Dynamic Programming
Павел Темирчев
@cydoroga
Робот-пылесос!
Пример: робот-пылесос
Нужно ли что-то еще?
Хранение предыдущих наблюдений?
Цель: пропылесосить всю квартиру
Действия \(a\): повороты, скорость вращения колес
- Данные лидаров и др. сенсоров
- Карта помещения
- Локация робота на карте
Какие могут быть наблюдения \(s\) у робота?
Задача: открыть дверь ключом
Действия:
- вверх \ вниз \ влево \ вправо
- взять объект
- использовать объект
(если находишься у двери)
Нужно ли агенту помнить свою историю?
Возможные наблюдения:
- координаты агента
- полная картинка лабиринта
- координаты агента + есть ли у него ключ
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\)
\(Q\)-функция ценности:
\(s_0\)
\(s_1\)
\(s_2\)
\(s_3\)
\(s_4\)
\( 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