Обучение с подкреплением #1:
Intro, Behavior Clonning, CEM
Павел Темирчев
@cydoroga
Наша команда
Артем Сорокин
@supergriver
Павел Темирчев
@cydoroga
По всем вопросам пишите в телеграм чат или в ЛС
Критерии оценивания
Домашние задания - 4 штуки:
- 2 простые по 2 балла
- 2 сложные по 4 балла
Мягкий дедлайн (за неделю до жесткого):
- 1 неделя после выдачи
- 2 недели после выдачи
Каждый день после мягкого дедлайна снижает оценку на 0.1 \ 0.2 балла для простых и сложных заданий соответственно.
Еще будет экзамен на 4 балла.
"Максимум" баллов за домашки - 8 баллов.
Все, что выше, зачитывается в сумму за экзамен - можно получить автомат.
\( \text{GRADE} = 10 * (0.6 * HW / 8 + 0.4 * EX / 4) \), округляется до целого
Списывать домашки
строго нельзя!
Machine Learning
Unsupervised Learning
Supervised Learning
Reinforcement Learning
Curricula
- Напоминалка: обучение с учителем
- Процессы принятия решений
- Принятие решений с учителем!
- Обучение с подкреплением (reinforcement learning)
- Примеры решения задач RL
- Выводы
Напоминалка: обучение с учителем
Supervised learning
- Имеется выборка:
\( D :=\{ (x_i, y_i)\} \) - Нужно выучить отображение:
\( \hat{y}_i = f(x_i) \) - Такое, что:
\(\hat{y}_i \approx y_i \)
Стандартное предположение:
- Правильные ответы \(y_i\) известны
\(x_i\) - изображение
\(y_i\) - метка класса
СОБАКА
КОШКА
Учитель
Процесс принятия решений
Decision Process (a self-driving car)
Процесс принятия решений
Decision Process
Наблюдения:
- Изображения с видеокамеры
- Данные с датчиков
Действия:
- Газ \ тормоз
- Поворот руля
Цель:
- ехать по маршруту
\(s_i\) - изображение
\(a_i\) - действие
ДЕЙСТВИЕ 1
ДЕЙСТВИЕ 2
? кто разметит выборку ?
!! действия влияют на наблюдения !!
??
??
агент
среда
Decision Process - выбор действий по наблюдениям
действие \(a\)
наблюдение \(s\)
Процесс принятия решений
Decision Process
Политика агента:
следующее наблюдение \(s'\)
Behavior Clonning
Что, если попросить эксперта сказать, какие действия хорошие?
А затем применить обучение с учителем.
На примере self-driving cars (беспилотный автомобиль):
- Берем хорошего водителя
- Отправляем ездить по маршруту
- Записываем видео его траекторий (\( s_i\))
- Сохраняем историю его действий (\(a_i\))
- Обучаем ML модель \(\pi\):
\( a_i \approx \pi(s_i) \)
Behavior Clonning
Неизбежно, наш агент заедет туда, где эксперт никогда не был.
Агент не знает, как себя там вести.
Проблема Distributional Shift:
Наши наблюдения меняются с изменением стратегии!
DAGGER
Можно просить эксперта возвращать агента на путь истинный.
На примере self-driving cars (беспилотный автомобиль):
- Отправляем водителя ездить по маршруту
- Записываем его траектории \(s_i\) и действия \(a_i\)
- Обучаем ML модель \( \pi: a_i \approx \pi(s_i) \)
- Делаем, пока не удовлетворены:
- Пускаем агента в город, собираем траектории \(s_i\)
- Просим эксперта дать правильные действия \(a_i\) для собранных траекторий \(s_i\)
DAGGER
Плюсы:
- Очень прост
- Иногда хорошо работает
Минусы:
- Эксперт нужен в режиме онлайн
- Агент не будет лучше эксперта
- Не всегда эксперт вообще знает, что делать!
Действия: напряжение, подаваемое на моторчики в суставах
DAGGER
Примеры Decision Process
Робототехника
Наблюдения:
- Изображения с видеокамеры
- Данные с датчиков
Действия:
- Усилие подаваемое на сочленения робота
Цели:
- Движение вперед
- Решение составных задач (перенос предметов)
- ...
Примеры Decision Process
Шахматы (или другие настольные игры)
Наблюдения:
- Расстановка фигур на доске
Действия:
- Выбор фигуры и хода ей
Цели:
- Победа
- Или, хотя бы, ничья
Примеры Decision Process
Автоматизированная торговля на бирже
Наблюдения:
- История изменения стоимости акций
- ...
Действия:
- Покупка и продажа акций
Цели:
- Максимизация прибыли
Награда за достижение целей
Вместо учителя
Наблюдение:
"место!"
Агент получает подкрепление за достижение результата
Агент совершает какие-то действия
Среда:
"Серега"
Агент:
"Пёс"
Это и есть Обучение с подкреплением Reinforcement Learning
Награда определяет, правильные ли были действия
мням
Учитель не говорит, какие нужны действия
Обучение с подкреплением
Если вы знаете, чего вы хотите, но не знаете, как этого достичь...
Используйте НАГРАДЫ (rewards)
- Победа: +1
- Проигрыш: -1
- Ничья: 0
Стандартные предположения:
- Награду легко посчитать из:
- текущего положения агента
- принятого действия
- Из награды очевидна цель
Задача Reinforcement Learning
агент
среда
- Агент взаимодействует со средой - наблюдает ее состояние \(s\)
- Агент посылает в среду действие \(a\)
- Среда возвращает агенту следующее состояние \(s'\) и награду \(r\)
Политика агента:
Задача Reinforcement Learning
- Мы не знаем, как устроена среда
- Агент учится через взаимодействие
- Пытается подобрать политику \(\pi\),
которая максимизирует
накопленную ожидаемую награду:
\(R_\pi = \mathbb{E}_{\pi} [ \sum_{t=0}^T r_t ]\)
random
Как выбрать награду?
На примере шахмат
Какой выбор награды лучше?
- победа: +1
- проигрыш: -1
- ничья: 0
- победа: +1
- проигрыш: -1
- ничья: 0
- взятие фигуры: +1
- потеря фигуры: -1
Почему?
Как выбрать награду?
Агент, стремящийся получить максимум награды,
должен лучше всего решать вашу задачу!
Дисконтирование награды
Сравним эти две траектории агента
Какая лучше?
Награда сегодня лучше, чем награда завтра!
Дисконтирование награды - уменьшение значимости наград, которые далеко
где \(0 < \gamma < 1\)
пусть
\(\gamma=0.9\)
\(r=1\)
Среды и наблюдения
Пример: робот-пылесос
Нужно ли что-то еще?
Хранение предыдущих наблюдений?
Цель: пропылесосить всю квартиру
Действия \(a\): повороты, скорость вращения колес
- Данные лидаров и др. сенсоров
- Карта помещения
- Локация робота на карте
Какие могут быть наблюдения \(s\) у робота?
Марковское свойство
Markov Decision Process (MDP)
Задача: открыть дверь ключом
Действия:
- вверх \ вниз \ влево \ вправо
- взять объект
- использовать объект
(если находишься у двери)
Марковское свойство
Markov Decision Process (MDP)
Нужно ли агенту помнить свою историю?
Возможные наблюдения:
- координаты агента
- полная картинка лабиринта
- координаты агента + есть ли у него ключ
2 и 3 не требуют хранения истории
Марковость: "Будущее не зависит от прошлого, если известно настоящее"
Пример немарковости
Куда летит шарик?
\( 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}\)
FTIAD RL #1 Intro, BC, CEM
By cydoroga
FTIAD RL #1 Intro, BC, CEM
- 564