Введение в обучение с подкреплением
Павел Темирчев
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\) - метка класса
СОБАКА
КОШКА
Учитель
Самая простая задача
машинного обучения
Имеется выборка:
i | x | y |
0 | 1 | 1.5 |
1 | 3 | 4 |
нужно подобрать функцию \(\hat y_i = f(x_i)\)
такую, что \(\hat y_i \approx y_i \) для всех \(i\)
подберем прямую: \(\hat y_i = wx_i + b\)
\( wx_0 + b = y_0\)
\( wx_1 + b = y_1\)
\( w + b = 1.5\)
\( 3w + b = 4\)
\( w = 1.25\)
\( b = 0.25\)
Линейная регрессия
Linear Regression
Пусть \(x_i\) - набор чисел, описывающих объект: \([ x^0_i, x^1_i, x^2_i, \dots, x^d_i]\)
Пусть \(y_i\) - вещественное число
Линейная регрессия - это модель машинного обучения, прогноз которой:
\(\hat y_i=w_0x_i^0 + w_1x_i^1 + w_2x_i^2 + \dots + w_dx_i^d+b\)
где параметры \([w_0, w_1, w_2, \dots, w_d, b]\) неизвестны
мы бы хотели их подобрать так, чтобы:
\( \hat y_i \approx y_i \) для всех \(i\)
Линейная регрессия
Linear Regression - решение
\(w_0x_0^0 + w_1x_0^1 + w_2x_0^2 + \dots + w_dx_0^d+b=y_0\)
где параметры \([w_0, w_1, w_2, \dots, w_d]\) находим,
решая систему линейных уравнений
\(w_0x_N^0 + w_1x_N^1 + w_2x_N^2 + \dots + w_dx_N^d+b=y_N\)
\(w_0x_1^0 + w_1x_1^1 + w_2x_1^2 + \dots + w_dx_1^d+b=y_1\)
\(w_0x_2^0 + w_1x_2^1 + w_2x_2^2 + \dots + w_dx_2^d+b=y_2\)
\(\dots \dots \dots\)
Линейная регрессия
Linear Regression - пример
Процесс принятия решений
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
Автоматизированная торговля на бирже
Наблюдения:
- История изменения стоимости акций
- ...
Действия:
- Покупка и продажа акций
Цели:
- Максимизация прибыли
Примеры 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 не требуют хранения истории
Марковость: "Будущее не зависит от прошлого, если известно настоящее"
Функции ценности
Уравнения Бэллмана
\(V(s)\) - функция ценности состояния
Награда, которую получит оптимальный агент в состоянии \(s\)
Пример состояния:
Действия:
\(V\)-функция ценности:
Как же ее найти?
Рекуррентное соотношение (Беллмана):
где \( s' = \text{СРЕДА}(s, a^*) \)
и \( a^* \) - оптимальное действие
\(s_0\)
\(s_1\)
\(s_2\)
\(s_3\)
\(s_4\)
Функции ценности
Уравнения Бэллмана
\(Q(s, a)\) - функция ценности пары состояние-действие
Награда, которую получит агент, если в состоянии \(s\) применит \(a\),
а дальше будет действовать оптимально.
\(Q\)-функция ценности:
Рекуррентное соотношение (Беллмана):
где \( s' = \text{СРЕДА}(s, a^*) \)
- оптимальное действие в \(s\)
\(s_0\)
\(s_1\)
\(s_2\)
\(s_3\)
\(s_4\)
Q-learning
Алгоритм
- Инициализируем \(Q(s, a) = 0\) для всех \(s, a\)
- Взаимодействуем со средой:
- \( a^* = \arg\max_a Q(s, a) \)
- \( s', r = \text{СРЕДА}(s, a^*) \)
- \(Q(s, a^*) := r + \gamma \max_{a'} Q(s', a') \)
- \( s \leftarrow s' \)
- \( a^* = \arg\max_a Q(s, a) \)
выбираем действие
применяем его в среде
обновляем Q-функцию
Exploration vs. Exploitation dilemma
\(\epsilon\)-жадная стратегия
Давайте научим робота идти вперед
Оценка \(Q\)-функции:
Решение: с вероятностью \(\epsilon\) делаем случайное действие
Иначе, жадное( \epsilon \)
Exploration vs. Exploitation dilemma
Q-learning
С \(\epsilon\)-жадной стратегией
действие
наблюдение
обновить \(Q\)-функцию
оптимальная политика \(\pi\)
поведенческая политика \(\pi_b\)
Deep Q-Networks
Попробуем применить этот алгоритм к играм ATARI
Сколько там возможных пар состояние-действие?
Это больше, чем атомов во Вселенной
Заменим \(Q\)-функцию на нейросеть!
Немарковость
Частично наблюдаемый Марковский процесс (po-MDP)
Куда летит шарик?
Процесс немарковский!
Решение: подавать в сеть сразу несколько прошлых наблюдений
Deep Q-Networks
Policy Gradients
Пусть политика \(\pi\) - ML модель с параметрами \(\theta\):
- линейная регрессия
- нейронная сеть
(забудем пока про Q и V функции)
- Насколько политика \(\pi\) хороша?
- запускаем агента в среду
- Как награда зависит от параметров \(\theta\)?
- вычисляем производную
- Как улучшить политику \(\pi\)?
- делаем градиентный подъем:
\(\theta \leftarrow \theta + \alpha \nabla_\theta R \)
- делаем градиентный подъем:
тут самая "соль" алгоритма используем log-derivative trick
Награда
Параметры
# сэмплов | действия | |
PG | много | любые |
DQN | мало | дискретные |
Soft Actor Critic
Мульти-агентный RL
Где RL сейчас и что его ждет завтра?
- Активная область исследования
- Превосходит человека в компьютерных и настольных играх
- Может использоваться в робототехнике, хотя обычно среда предполагается известной
- Роботы еще очень далеки от того, чтобы поместить всех в Матрицу
Нужно больше исследований
Что делать, если среда известна?
- знаем, как устроена!
1) Непрерывные действия
2) Дискретные действия
используем iLQR
... сейчас обсудим!
Tree Search
Поиск полным перебором
используем \(s' = \text{СРЕДА}(s, a)\) чтобы продумать все дерево
Alpha Zero
Simulate with some policy \(\pi_O\) and calculate reward-to-go
For each state we store a tuple:
\( \big(\Sigma, n(s) \big) \)
\(\Sigma\) - cummulative reward
\(n(s)\) - counter of visits
Stages:
- Forward
- Expand
- Backward
and again, and again....
AlphaZero results
AlphaZero results
Intro in RL for Sber (Sk)
By cydoroga
Intro in RL for Sber (Sk)
- 382