@cydoroga
Артем Сорокин
@supergriver
Павел Темирчев
@cydoroga
По всем вопросам пишите в телеграм чат или в ЛС
Домашние задания - 4 штуки:
Мягкий дедлайн (за неделю до жесткого):
Каждый день после мягкого дедлайна снижает оценку на 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
Стандартное предположение:
\(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'\)
Что, если попросить эксперта сказать, какие действия хорошие?
А затем применить обучение с учителем.
На примере self-driving cars (беспилотный автомобиль):
Неизбежно, наш агент заедет туда, где эксперт никогда не был.
Агент не знает, как себя там вести.
Проблема Distributional Shift:
Наши наблюдения меняются с изменением стратегии!
Можно просить эксперта возвращать агента на путь истинный.
На примере self-driving cars (беспилотный автомобиль):
Плюсы:
Минусы:
Действия: напряжение, подаваемое на моторчики в суставах
Робототехника
Наблюдения:
Действия:
Цели:
Шахматы (или другие настольные игры)
Наблюдения:
Действия:
Цели:
Автоматизированная торговля на бирже
Наблюдения:
Действия:
Цели:
Вместо учителя
Наблюдение:
"место!"
Агент получает подкрепление за достижение результата
Агент совершает какие-то действия
Среда:
"Серега"
Агент:
"Пёс"
Это и есть Обучение с подкреплением Reinforcement Learning
Награда определяет, правильные ли были действия
мням
Учитель не говорит, какие нужны действия
Если вы знаете, чего вы хотите, но не знаете, как этого достичь...
Используйте НАГРАДЫ (rewards)
Стандартные предположения:
агент
среда
Политика агента:
random
На примере шахмат
Какой выбор награды лучше?
Почему?
Агент, стремящийся получить максимум награды,
должен лучше всего решать вашу задачу!
Сравним эти две траектории агента
Какая лучше?
Награда сегодня лучше, чем награда завтра!
Дисконтирование награды - уменьшение значимости наград, которые далеко
где \(0 < \gamma < 1\)
пусть
\(\gamma=0.9\)
\(r=1\)
Пример: робот-пылесос
Нужно ли что-то еще?
Хранение предыдущих наблюдений?
Цель: пропылесосить всю квартиру
Действия \(a\): повороты, скорость вращения колес
Какие могут быть наблюдения \(s\) у робота?
Задача: открыть дверь ключом
Действия:
Нужно ли агенту помнить свою историю?
Возможные наблюдения:
2 и 3 не требуют хранения истории
Марковость: "Будущее не зависит от прошлого, если известно настоящее"
Куда летит шарик?
\( p(s_{t+1}|s_t, a_t) \) - динамика переходов в среде (марковская)
\( 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^*\) найдем "оптимальное" распределение
'оптимальное' распределение
для оптимизации
Инициализируем
распределение \(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
Алгоритм: