Введение в обучение с подкреплением
 

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

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\) - метка класса

СОБАКА

КОШКА

Учитель

Самая простая задача

машинного обучения

y
x

Имеется выборка:

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

a:=\pi(s)

Политика агента:

следующее наблюдение \(s'\)

Behavior Clonning

Что, если попросить эксперта сказать, какие действия хорошие?

А затем применить обучение с учителем.

На примере self-driving cars (беспилотный автомобиль):

  1. Берем хорошего водителя
  2. Отправляем ездить по маршруту
  3. Записываем видео его траекторий (\( s_i\))
  4. Сохраняем историю его действий (\(a_i\))
  5. Обучаем 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\)
a
s
a = \pi(s)

Политика агента:

s', r

Задача Reinforcement Learning

  • Мы не знаем, как устроена среда
  • Агент учится через взаимодействие
  • Пытается подобрать политику \(\pi\),
    которая максимизирует
    накопленную ожидаемую награду:
    \(R_\pi = \mathbb{E}_{\pi} [ \sum_{t=0}^T r_t ]\)
\dots
R_\pi = \tilde r_1 + \tilde r_2 + \dots
R_\pi = \tilde r_1 + \tilde r_2
R_\pi = \tilde r_1
s_0
a_0
\pi
s_1^0, r_1^0
s_1^1, r_1^1
a_1^0
a_1^1
\pi
\pi
s_2^0, r_2^0
s_2^1, r_2^1
s_2^2, r_2^2
random

Как выбрать награду?

На примере шахмат

Какой выбор награды лучше?

  • победа: +1
  • проигрыш: -1
  • ничья: 0
  • победа: +1
  • проигрыш: -1
  • ничья: 0
  • взятие фигуры: +1
  • потеря фигуры: -1

Почему?

Как выбрать награду?

Агент, стремящийся получить максимум награды,
должен лучше всего решать вашу задачу!

Дисконтирование награды

Сравним эти две траектории агента

Какая лучше?

Награда сегодня лучше, чем награда завтра!

Дисконтирование награды - уменьшение значимости наград, которые далеко

R_\pi = \sum_{t=0}^T \gamma^t r_t

где \(0 < \gamma < 1\)

​пусть

\(\gamma=0.9\)

\(r=1\)

R = \gamma^1 r = 0.9
R = \gamma^7 r \approx 0.5

Среды и наблюдения

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

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

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

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

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

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

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

Марковское свойство

Markov Decision Process (MDP)

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

Действия:

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

Марковское свойство

Markov Decision Process (MDP)

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

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

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

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

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

Функции ценности

Уравнения Бэллмана

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

Награда, которую получит оптимальный агент в состоянии \(s\)

Пример состояния:

Действия:

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

Как же ее найти?

Рекуррентное соотношение (Беллмана):

V(s) = r(s, a^*) + \gamma V(s')

где \( s' = \text{СРЕДА}(s, a^*) \)

и \( a^* \) - оптимальное действие

\(s_0\)

\(s_1\)

\(s_2\)

\(s_3\)

\(s_4\)

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

Функции ценности

Уравнения Бэллмана

\(Q(s, a)\) - функция ценности пары состояние-действие

Награда, которую получит агент, если в состоянии \(s\) применит \(a\),
а дальше будет действовать оптимально.

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

Рекуррентное соотношение (Беллмана):

Q(s, a) = r(s, a) + \gamma V(s')

где \( s' = \text{СРЕДА}(s, a^*) \)

 - оптимальное действие в \(s\)

\(s_0\)

\(s_1\)

\(s_2\)

\(s_3\)

\(s_4\)

\pi(s) = \arg\max_a Q(s, a)
Q(s, a) = r(s, a) + \gamma \max_{a'} Q(s', a')
1
\gamma
\gamma^2
\gamma^3
\gamma^4
1
\gamma^3
\gamma^4
\gamma^5
\gamma^5

Q-learning

Алгоритм

  1. Инициализируем \(Q(s, a) = 0\) для всех \(s, a\)
     
  2. Взаимодействуем со средой:
    • ​\( 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' \)
​выбираем действие
применяем его в среде
обновляем Q-функцию

Exploration vs. Exploitation dilemma

\(\epsilon\)-жадная стратегия

Давайте научим робота идти вперед

x
0
r_t = x_{t+1} - x_t

Оценка \(Q\)-функции:

Q(s_0, a=\text{УПАСТЬ}) = 0
Q(s_0, a=\text{ШАГНУТЬ}) = 0
\arg\max_aQ(s_0, a) = \text{УПАСТЬ}
\Delta x
Q(s_0, a=\text{УПАСТЬ}) = \Delta x

Решение: с вероятностью \(\epsilon\) делаем случайное действие
Иначе, жадное( \epsilon \)

Exploration vs. Exploitation dilemma

Q-learning

С \(\epsilon\)-жадной стратегией

действие

наблюдение

обновить \(Q\)-функцию

оптимальная политика \(\pi\)

\pi(a|s)=\arg\max_aQ(s, a)

поведенческая политика \(\pi_b\)

\pi_b =
\{
\pi, \;\;\;\text{w.p.} \;\;(1-\epsilon)
rand, \;\;\;\text{w.p.} \;\;\epsilon

Deep Q-Networks

Попробуем применить этот алгоритм к играм ATARI

Сколько там возможных пар состояние-действие?

|\mathcal{A}|\cdot |\mathcal{S}| = 18\cdot 256^{192\times 160\times3}
\approx 10^{185000} >> 10^{86}

Это больше, чем атомов во Вселенной

Заменим \(Q\)-функцию на нейросеть!

Немарковость

Частично наблюдаемый Марковский процесс (po-MDP)

Куда летит шарик?

Процесс немарковский!

Решение: подавать в сеть сразу несколько прошлых наблюдений

Deep Q-Networks

Policy Gradients

Пусть политика \(\pi\) - ML модель с параметрами \(\theta\):

  • линейная регрессия
  • нейронная сеть
(забудем пока про Q и V функции)
  1. Насколько политика \(\pi\) хороша?
    • ​запускаем агента в среду
  2. Как награда зависит от параметров \(\theta\)?
    • ​вычисляем производную
  3. Как улучшить политику \(\pi\)?
    • ​делаем градиентный подъем:
      \(\theta \leftarrow \theta + \alpha \nabla_\theta R \)
тут самая "соль" алгоритма
используем log-derivative trick
​Награда
R
​Параметры
\theta
# сэмплов действия
PG много любые
DQN мало дискретные

Soft Actor Critic

Мульти-агентный RL

Где RL сейчас и что его ждет завтра?

  • Активная область исследования
     
  • Превосходит человека в компьютерных и настольных играх
     
  • Может использоваться в робототехнике, хотя обычно среда предполагается известной
     
  • Роботы еще очень далеки от того, чтобы поместить всех в Матрицу
    Нужно больше исследований

Что делать, если среда известна?

s', r = \text{СРЕДА}(s, a)
​- знаем, как устроена!

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

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

используем iLQR

... сейчас обсудим!

Tree Search

Поиск полным перебором

s_0
a_{01}
a_{00}
s_{10}
s_{11}
s_{20}
s_{21}
s_{22}
s_{23}
a_{11}
a_{10}
a_{13}
a_{12}
r=1
r=0
r=2
r=-1
1
0
2
-1
1
\;\;\;\;\;2
-1

используем \(s' = \text{СРЕДА}(s, a)\) чтобы продумать все дерево 

Alpha Zero

R \sim p(R|s)

Simulate with some policy \(\pi_O\) and calculate reward-to-go

a_{01}
a_{00}
s_{10}: (0, 0)
s_{11} : (0, 0)
s_{20}: (0, 0)
s_{21}: (0, 0)
s_{22}: (0, 0)
a_{11}
a_{10}
a_{13}
a_{12}
V(s) = \frac{\Sigma}{n(s)}
\pi_I(s) = \arg\max_a W(f(s, a))
W(s) = V(s) + c\sqrt{\frac{\log n^{parent}(s)}{n(s)}}

For each state we store a tuple:

\( \big(\Sigma, n(s) \big) \)

\(\Sigma\) - cummulative reward

\(n(s)\) - counter of visits

Stages:

  1. Forward
  2. Expand
  3. Backward
W = \infty
W = \infty
s_{10}: (1, 1)
s_{11} : (0, 1)
W = 1 + c
W = c \sqrt{\ln2}
W = 1 + c\sqrt{\ln2}
W = 1 + \sqrt{\ln2}
W = \infty
s_{20}: (1, 1)
s_{10}: (2, 2)
s_0
W = 1 + c\sqrt{\frac{\ln3}{2}}
W = c \sqrt{\ln3}
W = \infty
W = \infty
W = \infty
s_{22}: (-1, 1)
s_{11} : (-1, 2)
W = -\frac{1}{2} + c \sqrt{\frac{\ln4}{2}}
W = 1 + c \sqrt{\frac{\ln4}{2}}
s_{21}: (-2, 1)
s_{10}: (0, 3)

and again, and again....

AlphaZero results

AlphaZero results

Made with Slides.com