Описание
Данный курс ориентирован на программистов, использующих Python или имеющих дело с машинным обучением, которые хотят более детально разбираться в возможностях RL.
Основное внимание в курсе уделяется вопросам, которые возникают при работе с RL в реальной жизни, а также рассматриваются основные алгоритмы, которые лежат в основе новейших систем RL.
Слушатели получат теоретические знания не только о RL, но и о машинном обучении в целом, а также возможность применить эти знания на практике. Начав с основ линейной алгебры, математического анализа и теории вероятностей, мы затем рассмотрим вопросы динамического программирования и марковские процессы, распространенные методы Q-обучения и его глубокие варианты, а также некоторые градиентные методы.
В этом курсе мы стремимся дать исчерпывающий обзор данной темы, по крайней мере в отношении различных базовых методов, описанных в специальной литературе.
Вторая половина курса посвящена исключительно RL с нейронными сетями, с подробным обсуждением современных исследований и разъяснение различных вариантов применения этого метода.
Кроме того, обсуждаются практические инструменты (от Pytorch до Ray), которые слушатели смогут использовать в упражнениях.
удостоверение о повышении квалификации государственного образца
Цели
- Понять основные сложности моделирования при разработке алгоритмов RL;
- Научиться использовать существующие алгоритмы и понимать проблемы, которые возникают в представлении состояния и формировании поощрений;
- Визуализировать и адаптировать алгоритм или механизм поощрений для обучения агента определенным вещам;
- Научиться применять или разрабатывать алгоритмы RL для решения реальных проблем.
Целевая аудитория
- Разработчики, знакомые с языком Python / машинным обучением, но не имеющие опыта применения обучения с подкреплением.
- ML инженеры, специалисты по обработке данных.
Предварительная подготовка
Необходимая подготовка:
-
Вузовская программа по математическому анализу, теории вероятностей, дискретной математике
-
Базовые знания в области машинного обучения
- Понимание кода на языке Python
Разбираемые темы
-
Часть I. Предыстория (5 ч 30 мин)
1. Линейная алгебра (30 мин)
- Обзор основных концепций.
2. Математический анализ (1 ч)
- Интегралы.
- Производные.
- Примеры.
3. Теория вероятностей (4 ч)
- Случайные величины.
- Функции плотности вероятности.
- Математическое ожидание.
- Условные, совместные и безусловные вероятности.
- Примеры.
- Практика.
-
Часть II. Обзор (11 ч)
1. Введение в RL (4 ч)
- Марковские процессы принятия решений.
- Динамическое программирование с примером.
- Уравнение Беллмана.
- Оценка стратегии.
- Итерация по стратегиям.
- Итерация по ценностям.
- Примеры.
- Практика.
2. На основе модели и без модели (3 ч)
- Обучение и планирование.
- Детерминированное.
- Стохастическое.
- Аппроксимация линейной функции-значения.
- Сравнение и практика.
3. Алгоритмы (4 ч)
- Q-обучение.
- SARSA.
- Методы Исполнитель-критик.
- Градиент стратегии.
- Методы дерева Монте-Карло.
- Обучение и исполнение.
- Примеры.
- Практика.
-
Часть III. RL + глубокое обучение (6 ч 30 мин)
1. Глубокое обучение с подкреплением (1,5 ч)
- Аппроксимация нелинейной функции.
- Прорыв DeepMind.
- Объяснение Alpha-Star.
2. Новейшие технологии в глубоком RL (3 ч)
- Память, внимание, рекурсия.
- Обратное RL.
- Обучение нескольких агентов.
- Иерархическое обучение.
- Развитие поощрений – AutoRL.
- Оптимизации стратегий.
3. Применения и использование (2 ч)
- Трейдинг.
- Понимание речи и вопросно-ответные системы (опционально).
- Балансировка нагрузки (опционально).
- Другие применения (опционально).
-
Часть IV. Практические примеры и инструменты (7 ч)
1. Pytorch / Tensorflow (2 ч)
- Основы тензорного исчисления.
- Реализация алгоритма RL с нуля.
- Тестирование и визуализация.
- Практика.
2. Ray + RLlib (3 ч 30 мин)
- Основы тензорного исчисления.
- Реализация алгоритма RL с нуля.
- Тестирование и визуализация.
- Практика.
3. Визуализация и объяснимость (1 ч 30 мин)
- SMDP, AMDP, SAMDP.
- Проекция на 3D-пространство с помощью TSNE.
- Примеры.