О чём курс
Данный курс ориентирован на программистов, использующих Python или имеющих дело с машинным обучением, которые хотят более детально разбираться в возможностях RL.
Основное внимание в курсе уделяется вопросам, которые возникают при работе с RL в реальной жизни, а также рассматриваются основные алгоритмы, которые лежат в основе новейших систем RL.
Слушатели получат теоретические знания не только о RL, но и о машинном обучении в целом, а также возможность применить эти знания на практике. Начав с основ линейной алгебры, математического анализа и теории вероятностей, мы затем рассмотрим вопросы динамического программирования и марковские процессы, распространенные методы Q-обучения и его глубокие варианты, а также некоторые градиентные методы.
В этом курсе мы стремимся дать исчерпывающий обзор данной темы, по крайней мере в отношении различных базовых методов, описанных в специальной литературе.
Вторая половина курса посвящена исключительно RL с нейронными сетями, с подробным обсуждением современных исследований и разъяснение различных вариантов применения этого метода.
Кроме того, обсуждаются практические инструменты (от Pytorch до Ray), которые слушатели смогут использовать в упражнениях.
Цели
Понять основные сложности моделирования при разработке алгоритмов RL;
Научиться использовать существующие алгоритмы и понимать проблемы, которые возникают в представлении состояния и формировании поощрений;
Визуализировать и адаптировать алгоритм или механизм поощрений для обучения агента определенным вещам;
Научиться применять или разрабатывать алгоритмы RL для решения реальных проблем.
Целевая аудитория
Основная:
Разработчики, знакомые с языком Python / машинным обучением, но не имеющие опыта применения обучения с подкреплением.
Дополнительная:
ML инженеры, специалисты по обработке данных.
Предварительная подготовка
Необходимая подготовка:
Вузовская программа по математическому анализу, теории вероятностей, дискретной математике
Базовые знания в области машинного обучения
Понимание кода на языке Python
Для кого
Data Engineer
ML Engineer
Разработчик
Улучшаемые навыки
Машинное обучение
Обучение с подкреплением
Глубокое обучение
Python
Q-обучение
Градиентные методы
Pytorch
Ray
Numpy
Matplotlib
Gym
Pygame
Инструменты
Python
NumPy
Pytorch
Matplotlib
Программа курса
1. Линейная алгебра
Обзор основных концепций
2.Математический анализ
Интегралы
Производные
Примеры
3. Теория вероятностей
Случайные величины
Функции плотности вероятности
Математическое ожидание
Условные, совместные и безусловные вероятности
Примеры. Практика
1. Введение в RL
Марковские процессы принятия решений
Динамическое программирование с примером
Уравнение Беллмана
Оценка стратегии
Итерация по стратегиям
Итерация по ценностям
Примеры
Практика
2. На основе модели и без модели
Обучение и планирование
Детерминированное
Стохастическое
Аппроксимация линейной функции-значения
Сравнение и практика
3. Алгоритмы
Q-обучение
SARSA
Методы Исполнитель-критик
Градиент стратегии
Методы дерева Монте-Карло
Обучение и исполнение
Примеры
Практика
03
Часть III. RL + глубокое обучение
1. Глубокое обучение с подкреплением
Аппроксимация нелинейной функции
Прорыв DeepMind
Объяснение Alpha-Star
2. Новейшие технологии в глубоком RL
Память, внимание, рекурсия
Обратное RL
Обучение нескольких агентов
Иерархическое обучение
Развитие поощрений – AutoRL
Оптимизации стратегий
3. Применения и использование
Трейдинг
Понимание речи и вопросно-ответные системы (опционально)
Балансировка нагрузки (опционально)
Другие применения (опционально)
04
Часть IV. Практические примеры и инструменты
1. Pytorch / Tensorflow
Основы тензорного исчисления
Реализация алгоритма RL с нуля
Тестирование и визуализация
Практика
2. Ray + RLlib
Основные понятия: исполнители, модели будущего, совместное использование памяти и т.д.
Пример с решением
Различные алгоритмы
Сеточный поиск и визуализация
Практика
3. Визуализация и объяснимость
SMDP, AMDP, SAMDP
Проекция на 3D-пространство с помощью TSNE
Примеры
Чему вы научитесь
01
Понимать основные концепции обучения с подкреплением (RL) и глубокого обучения с подкреплением (DRL).
02
Применять базовые и продвинутые алгоритмы RL для решения реальных задач.
03
Визуализировать и адаптировать алгоритмы RL.
04
Разрабатывать и оптимизировать модели RL с использованием нейронных сетей.
05
Использовать инструменты Pytorch и Ray для реализации и тестирования RL-алгоритмов.