Machine Learning
Unsupervised Learning
Supervised Learning
Reinforcement Learning
Стандартное предположение:
\(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\)
Пусть \(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\)
\(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\)
Decision Process (a self-driving car)
Decision Process
Наблюдения:
Действия:
Цель:
\(s_i\) - изображение
\(a_i\) - действие
ДЕЙСТВИЕ 1
ДЕЙСТВИЕ 2
? кто разметит выборку ?
!! действия влияют на наблюдения !!
??
??
агент
среда
Decision Process - выбор действий по наблюдениям
действие \(a\)
наблюдение \(s\)
Decision Process
Политика агента:
следующее наблюдение \(s'\)
Что, если попросить эксперта сказать, какие действия хорошие?
А затем применить обучение с учителем.
На примере self-driving cars (беспилотный автомобиль):
Неизбежно, наш агент заедет туда, где эксперт никогда не был.
Агент не знает, как себя там вести.
Проблема Distributional Shift:
Наши наблюдения меняются с изменением стратегии!
Можно просить эксперта возвращать агента на путь истинный.
На примере self-driving cars (беспилотный автомобиль):
Плюсы:
Минусы:
Действия: напряжение, подаваемое на моторчики в суставах
Робототехника
Наблюдения:
Действия:
Цели:
Шахматы (или другие настольные игры)
Наблюдения:
Действия:
Цели:
Автоматизированная торговля на бирже
Наблюдения:
Действия:
Цели:
Персонифицированное рекламное предложение
Наблюдения:
Действия:
Цели:
Вместо учителя
Наблюдение:
"место!"
Агент получает подкрепление за достижение результата
Агент совершает какие-то действия
Среда:
"Серега"
Агент:
"Пёс"
Это и есть Обучение с подкреплением Reinforcement Learning
Награда определяет, правильные ли были действия
мням
Учитель не говорит, какие нужны действия
Если вы знаете, чего вы хотите, но не знаете, как этого достичь...
Используйте НАГРАДЫ (rewards)
Стандартные предположения:
агент
среда
Политика агента:
random
На примере шахмат
Какой выбор награды лучше?
Почему?
Агент, стремящийся получить максимум награды,
должен лучше всего решать вашу задачу!
Сравним эти две траектории агента
Какая лучше?
Награда сегодня лучше, чем награда завтра!
Дисконтирование награды - уменьшение значимости наград, которые далеко
где \(0 < \gamma < 1\)
пусть
\(\gamma=0.9\)
\(r=1\)
Пример: робот-пылесос
Нужно ли что-то еще?
Хранение предыдущих наблюдений?
Цель: пропылесосить всю квартиру
Действия \(a\): повороты, скорость вращения колес
Какие могут быть наблюдения \(s\) у робота?
Задача: открыть дверь ключом
Действия:
Нужно ли агенту помнить свою историю?
Возможные наблюдения:
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-функцию
Давайте научим робота идти вперед
Оценка \(Q\)-функции:
Решение: с вероятностью \(\epsilon\) делаем случайное действие
Иначе, жадное( \epsilon \)
С \(\epsilon\)-жадной стратегией
действие
наблюдение
обновить \(Q\)-функцию
оптимальная политика \(\pi\)
поведенческая политика \(\pi_b\)
Попробуем применить этот алгоритм к играм ATARI
Сколько там возможных пар состояние-действие?
Это больше, чем атомов во Вселенной
Заменим \(Q\)-функцию на нейросеть!
Частично наблюдаемый Марковский процесс (po-MDP)
Куда летит шарик?
Процесс немарковский!
Решение: подавать в сеть сразу несколько прошлых наблюдений
Пусть политика \(\pi\) - ML модель с параметрами \(\theta\):
(забудем пока про Q и V функции)
тут самая "соль" алгоритма используем log-derivative trick
Награда
Параметры
# сэмплов | действия | |
PG | много | любые |
DQN | мало | дискретные |
- знаем, как устроена!
1) Непрерывные действия
2) Дискретные действия
используем iLQR
... сейчас обсудим!
Поиск полным перебором
используем \(s' = \text{СРЕДА}(s, a)\) чтобы продумать все дерево
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:
and again, and again....