Исчерпывающее руководство по машинному (МО) и глубокому обучению с использованием языка программирования Python, фреймворка PyTorch и библиотеки Scikit-Leam. Рассмотрены основы МО, алгоритмы для задач классификации, классификаторы на основе Scikit-Leam, предварительная обработка и сжатие данных, современные методы оценки моделей и объединение различных моделей для ансамблевого обучения. Рассказано о применении МО для анализа текста и прогнозировании непрерывных целевых переменных с помощью регрессионного анализа, кластерном анализе и обучении без учителя, показано построение многослойной искусственной нейронной сети с нуля. Раскрыты продвинутые возможности PyTorch для решения сложных задач. Описано применение глубоких сверточных и рекуррентных нейронных сетей, трансформеров, генеративных состязательных и графовых нейронных сетей, Особое внимание уделено обучению с подкреплением для систем принятия решений в сложных средах.
Электронный архив содержит цветные иллюстрации и коды всех примеров.

Прогнозирование непрерывного значения в задаче регрессии.
В предыдущем разделе вы узнали, что задача классификации заключается в присвоении экземплярам категориальных неупорядоченных меток. Второй тип обучения с учителем — это прогнозирование непрерывных результатов, которое также называется регрессионным анализом (regression analysis). В регрессионном анализе нам дается ряд предикторов (predictor, объясняющая переменная) и непрерывная переменная отклика (outcome, результат), и мы пытаемся найти взаимосвязь между этими переменными, на основании которой сможем предсказывать результат.
Следует заметить, что в области машинного обучения переменные-предикторы обычно называются признаками (feature), а переменные отклика— целевыми переменными (target variable). Мы будем использовать эти термины на протяжении всей книги.
Например, предположим, что нас интересует прогнозирование результатов SAT по математике среди учащихся. Если существует связь между временем, затраченным на подготовку к тесту, и окончательными оценками, мы могли бы использовать этот факт для обучения модели, предсказывающей результаты тестов будущих студентов на основании времени, затраченного ими на подготовку к тесту.
ОГЛАВЛЕНИЕ.
Вступительное слово.
Об авторах.
Предисловие.
Для кого эта книга?.
О чем рассказывает книга?.
Как получить максимальную отдачу от этой книги?.
Скачивание примеров кода.
Скачивание цветных изображений.
Соглашения и условные обозначения.
Глава 1. Как помочь компьютеру учиться на данных?.
1.1. Интеллектуальные машины для преобразования данных в знания.
1.2. Три типа машинного обучения.
1.2.1. Предсказание будущего при помощи обучения с учителем.
Прогнозирование меток классов в задаче классификации.
Прогнозирование непрерывного значения в задаче регрессии.
1.2.2. Применение обучения с подкреплением для решения интерактивных задач.
1.2.3. Обнаружение скрытых структур с помощью обучения без учителя.
Поиск подгрупп путем кластеризации.
Уменьшение размерности для сжатия данных.
1.3. Введение в основную терминологию и обозначения.
1.3.1. Соглашения и условные обозначения, используемые в этой книге.
1.3.2. Терминология машинного обучения.
1.4. Общие принципы построения систем машинного обучения.
1.4.1. Предварительная обработка: приведение данных к нужному виду.
1.4.2. Обучение и выбор прогностической модели.
1.4.3. Оценка моделей и прогнозирование незнакомых экземпляров данных.
1.5. Использование Python для машинного обучения.
1.5.1. Установка Python и пакетов из Python Package lndex.
1.5.2. Использование дистрибутива Python Anaconda и менеджера пакетов.
1.5.3. Пакеты для научных вычислений, науки о данных и машинного обучения.
1.6. Заключение.
Глава 2. Простые алгоритмы машинного обучения для задач классификации.
2.1. Искусственные нейроны: краткий экскурс в историю машинного обучения.
2.1.1. Формальное определение искусственного нейрона.
2.1.2. Правило обучения персептрона.
2.2. Реализация алгоритма обучения персептрона на Python.
2.2.1. Объектно-ориентированный API персептрона.
2.2.2. Обучение модели персептрона на наборе данных lris.
2.3. Адаптивные линейные нейроны и сходимость обучения.
2.3.1. Минимизация функции потерь с помощью градиентного спуска.
2.3.2. Реализация Adaline на Python.
2.3.3. Улучшение градиентного спуска за счет масштабирования признаков.
2.3.4. Крупномасштабное машинное обучение и стохастический градиентный спуск.
2.4. Заключение.
Глава 3. Знакомство с классификаторами машинного обучения на основе scikit-learn.
3.1. Выбор алгоритма классификации.
3.2. Первые шаги с scikit-learn: обучение персептрона.
3.3. Моделирование вероятностей классов с помощью логистической регрессии.
3.3.1. Логистическая регрессия и условные вероятности.
3.3.2. Изучение весов модели с помощью логистической функции потерь.
3.3.3. Преобразование Adaline в алгоритм логистической регрессии.
3.3.4. Обучение модели логистической регрессии с помощью scikit-learn.
3.3.5. Борьба с переобучением путем регуляризации.
3.4. Классификация по наибольшему отступу с помощью метода опорных векторов.
3.4.1. Смысл максимизации зазора.
3.4.2. Работа с нелинейно разделимым случаем при использовании резервных переменных.
3.4.3. Альтернативные реализации алгоритмов в scikit-learn.
3.5. Решение нелинейных задач с использованием ядерного варианта SVM.
3.5.1. Ядерные методы для линейно неразделимых данных.
3.5.2. Использование ядерного трюка для поиска разделяющих гиперплоскостей в многомерном пространстве.
3.6. Обучение дерева решений.
3.6.1. Максимизация IG: получение наибольшей отдачи от затраченных усилий.
3.6.2. Построение дерева решений.
3.6.3. Объединение нескольких деревьев решений с помощью случайных лесов.
3.7. К-ближайшие соседи: «ленивый» алгоритм обучения.
3.8. Заключение.
Глава 4. Предварительная обработка данных для создания качественных обучающих наборов.
4.1. Как поступать с отсутствующими данными?.
4.1.1. Выявление пропущенных значений в табличных данных.
4.1.2. Исключение обучающих записей или признаков с пропущенными значениями.
4.1.3. Подстановка пропущенных значений.
4.1.4. API оценивателя scikit-learn.
4.2. Работа с категориальными данными.
4.2.1. Категориальное кодирование данных при помощи pandas.
4.2.2. Сопоставление порядковых признаков.
4.2.3. Кодирование меток классов.
4.2.4. Позиционное кодирование номинальных признаков.
4.2.5. Кодирование порядковых признаков.
4.3. Разделение набора данных на обучающие и тестовые наборы.
4.4. Приведение признаков к одному масштабу.
4.5. Выбор значимых признаков.
4.5.1. Регуляризация L1 и L2 как штраф за сложность модели.
4.5.2. Геометрическая интерпретация регуляризации L2.
4.5.3. Разреженные решения с регуляризацией L1.
4.5.4. Последовательные алгоритмы отбора признаков.
4.6. Оценка важности признаков с помощью случайных лесов.
4.7. Заключение.
Глава 5. Сжатие данных путем уменьшения размерности.
5.1. Уменьшение размерности без учителя с помощью метода главных компонент.
5.1.1. Основные этапы метода главных компонент.
5.1.2. Пошаговый процесс извлечения основных компонент.
5.1.3. Общая и объясненная дисперсия.
5.1.4. Преобразование признаков.
5.1.5. Анализ основных компонент в scikit-learп.
5.1.6. Оценка вклада признаков.
5.2. Сжатие данных с учителем с помощью линейного дискриминантного анализа.
5.2.1. Сравнение методов РСА и LDA.
5.2.2. Как устроен алгоритм LDA?.
5.2.3. Вычисление матриц разброса.
5.2.4. Выбор линейных дискриминантов для нового подпространства признаков.
5.2.5. Проецирование точек данных на новое функциональное пространство.
5.2.6. Реализация LDA при помощи scikit-learn.
5.3. Нелинейное уменьшение размерности и визуализация.
5.3.1. Зачем рассматривать нелинейное уменьшение размерности?.
5.3.2. Визуализация данных с помощью алгоритма t-SNE.
5.4. Заключение.
Глава 6. Современные методы оценки моделей и настройки rиперпараметров.
6.1. Оптимизация рабочих процессов с помощью конвейеров.
6.1.1. Загрузка набора данных по раку молочной железы в Висконсине.
6.1.2. Объединение преобразователей и оценивателей в конвейер.
6.2. Использование k-кратной перекрестной проверки для оценки производительности модели.
6.2.1. Перекрестная проверка с отложенными данными.
6.2.2. k-кратная перекрестная проверка.
6.3. Алгоритмы отладки с использованием кривых обучения и валидации.
6.3.1. Диагностика смещения и дисперсии с помощью кривых обучения.
6.3.2. Устранение переобучения и недообучения с помощью кривых валидации.
6.4. Точная настройка моделей с помощью поиска по сетке.
6.4.1. Настройка гиперпараметров с помощью поиска по сетке.
6.4.2. Изучение обширных конфигураций гиперпараметров с помощью рандомизированного поиска.
6.4.3. Поиск гиперпараметров методом последовательного деления пополам.
6.4.4. Выбор алгоритма методом вложенной перекрестной проверки.
6.5. Обзор различных показателей оценки эффективности.
6.5.1. Чтение матрицы несоответствий.
6.5.2. Оптимизация правильности и полноты модели классификации.
6.5.3. Построение рабочей характеристики приемника.
6.5.4. Метрики оценки многоклассовой классификации.
6.5.5. Борьба с дисбалансом классов.
6.6. Заключение.
Глава 7. Объединение различных моделей для ансамблевого обучения.
7.1. Обучение ансамблей моделей.
7.2. Объединение классификаторов по методу большинства голосов.
7.2.1. Реализация простого мажоритарного классификатора.
7.2.2. Использование принципа мажоритарного голосования для прогнозирования.
7.2.3. Оценка и настройка ансамблевого классификатора.
7.3. Бэггинг: создание ансамбля классификаторов из исходного набора данных.
7.3.1. Коротко о бэггинге.
7.3.2. Применение бэггинга для классификации экземпляров набора данных Wine.
7.4. Использование «слабых учеников» в механизме адаптивного бустинга.
7.4.1. Как работает адаптивный бустинг?.
7.4.2. Применение AdaBoost с помощью scikit-learn.
7.5. Градиентный бустинг: обучение ансамбля на основе градиентов потерь.
7.5.1. Сравнение AdaBoost с градиентным бустингом.
7.5.2. Описание обобщенного алгоритма градиентного бустинга.
7.5.3. Применение алгоритма градиентного бустинга для классификации.
7.5.4. Иллюстрация применения градиентного бустинга для классификации.
7.5.5. Использование XGBoost.
7.6. Заключение.
Глава 8. Применение машинного обучения для смыслового анализа текста.
8.1. Подготовка набора данных с обзорами фильмов на IMDb.
8.1.1. Получение набора данных с обзорами фильмов.
8.1.2. Преобразование набора данных в более удобный формат.
8.2. Знакомство с моделью мешка слов.
8.2.1. Преобразование слов в векторы признаков.
8.2.2. Оценка релевантности слов с помощью частоты термина и обратной частоты документа.
8.2.3. Очистка текстовых данных.
8.2.4. Получение токенов из документов.
8.3. Обучение модели логистической регрессии для классификации документов.
8.4. Работа с большими данными: онлайн-алгоритмы и внешнее обучение.
8.5. Моделирование тем с использованием скрытого распределения Дирихле.
8.5.1. Разбор текстовых документов с помощью LDA.
8.5.2. Реализация LDA в библиотеке scikit-learn.
8.6. Заключение.
Глава 9. Прогнозирование непрерывных целевых переменных с помощью регрессионного анализа.
9.1. Знакомство с линейной регрессией.
9.1.1. Простая линейная регрессия.
9.1.2. Множественная линейная регрессия.
9.2. Изучение набора данных Ames Housing.
9.2.1. Загрузка набора данных Ames Housing в DataFrame.
9.2.2. Визуализация важных характеристик набора данных.
9.2.3. Просмотр отношений с помощью матрицы корреляции.
9.3. Реализация обычной модели линейной регрессии методом наименьших квадратов.
9.3.1. Нахождение регрессии для параметров регрессии с градиентным спуском.
9.3.2. Оценка коэффициента регрессионной модели с помощью scikit-learn.
9.4. Обучение устойчивой регрессионной модели с использованием RANSAC.
9.5. Оценка производительности моделей линейной регрессии.
9.6. Использование методов регуляризации для регрессии.
9.7. Переход от прямой линии к кривой: полиномиальная регрессия.
9.7.1. Добавление полиномиальных членов с помощью scikit-learn.
9.7.2. Моделирование нелинейных отношений в наборе данных Ames Housing.
9.8. Моделирование нелинейных отношений с использованием случайных лесов.
9.8.1. Регрессия на основе алгоритма дерева решений.
9.8.2. Регрессия на основе случайного леса.
9.9. Заключение.
Глава 10. Работа с неразмеченными данными: кластерный анализ.
10.1. Группировка объектов по сходству с использованием k-средних.
10.1.1. Кластеризация методом k-средних с использованием scikit-learn.
10.1.2. Более разумный способ размещения начальных центроидов: алгоритм k-средних++.
10.1.3. Жесткая и мягкая кластеризация.
10.1.4. Использование метода локтя для нахождения оптимального количества кластеров.
10.1.5. Количественная оценка качества кластеризации с помощью силуэтных графиков.
10.2. Организация кластеров в виде иерархического дерева.
10.2.1. Группировка кластеров снизу вверх.
10.2.2. Выполнение иерархической кластеризации с матрицей расстояний.
10.2.3. Прикрепление дендрограмм к тепловой карте.
10.2.4. Агломеративная кластеризация с помощью scikit-learn.
10.3. Обнаружение областей высокой плотности с помощью DBSCAN.
10.4. Заключение.
Глава 11. Построение многослойной искусственной нейронной сети с нуля.
11.1. Моделирование сложных функций с помощью искусственных нейросетей.
11.1.1. Вкратце об однослойной нейронной сети.
11.1.2. Знакомство с архитектурой многослойной нейронной сети.
11.1.3. Активация нейронной сети прямого распространения.
11.2. Классификация рукописных цифр.
11.2.1. Получение и подготовка набора данных MNIST.
11.2.2. Реализация многослойного персептрона.
11.2.3. Обучающий цикл нейронной сети.
11.2.4. Оценка производительности нейронной сети.
11.3. Обучение искусственной нейронной сети.
11.3.1. Вычисление функции потерь.
11.3.2. Подробнее о механизме обратного распространения.
11.3.3. Обучение нейронных сетей с помощью обратного распространения.
11.4. О сходимости в нейронных сетях.
11.5. Несколько заключительных слов о реализации нейронной сети.
11.6. Заключение.
Глава 12. Глубокое обучение нейронных сетей на основе PyTorch.
12.1. PyTorch и производительность обучения.
12.1.1. Проблемы с быстродействием.
12.1.2. Что такое PyTorch?.
12.1.3. Как мы будем изучать PyTorch?.
12.2. Первые шаги с PyTorch.
12.2.1. Установка PyTorch.
12.2.2. Создание тензоров в PyTorch.
12.2.3. Управление типом данных и формой тензора.
12.2.4. Применение к тензорам математических операций.
12.2.5. Разделение, стекирование и конкатенация тензоров.
12.3. Построение конвейеров ввода в PyTorch.
12.3.1. Создание объекта DataLoader из существующих тензоров.
12.3.2. Объединение двух тензоров в совместный набор данных.
12.3.3. Перемешивание, группировка и повторение.
12.3.4. Создание набора данных из файлов на локальном диске.
12.3.5. Получение доступных наборов данных из библиотеки torchvision.datasets.
12.4. Построение нейросетевой модели в PyTorch.
12.4.1. Модуль нейронной сети PyTorch (torch.nn).
12.4.2. Построение модели линейной регрессии.
12.4.3. Обучение модели с помощью модулей torch.nn и torch.optim.
12.4.4. Построение многослойного персептрона для классификации цветков в наборе данных lris.
12.4.5. Оценка обученной модели на тестовом наборе данных.
12.4.6. Сохранение и повторная загрузка обученной модели.
12.5. Выбор функций активации для многослойных нейронных сетей.
12.5.1. Несколько слов о логистической функции.
12.5.2. Оценка вероятностей классов в мультиклассовой классификации с помощью функции softmax.
12.5.3. Расширение выходного спектра с использованием гиперболического тангенса.
12.5.4. Спрямленная линейная активация.
12.6. Заключение.
Глава 13. Углубленное знакомство с PyTorch.
13.1. Основные возможности РуТогсh.
13.2. Граф вычислений РуТогсh.
13.2.1. Вкратце о графе вычислений.
13.2.2. Создание графа в РуТогсh.
13.3. Тензорные объекты РуТогсh для хранения и обновления параметров модели.
13.4. Вычисление градиентов с помощью автоматического дифференцирования.
13.4.1. Вычисление градиентов потерь по обучаемым переменным.
13.4.2. Как работает автоматическое дифференцирование?.
13.4.3. Состязательные примеры.
13.5. Упрощение реализации популярных архитектур с помощью модуля torch.nn.
13.5.1. Реализация моделей на основе nn.Sequentia/.
13.5.2. Выбор функции потерь.
13.5.3. Решение задачи классификации XOR.
13.5.4. Более гибкое построение моделей с помощью nn.Module.
13.5.5. Создание в РуТогсh пользовательских слоев.
13.6. Проект № 1: прогнозирование расхода топлива автомобиля.
13.6.1. Работа со столбцами признаков.
13.6.2. Обучение регрессионной модели DNN.
13.7. Проект № 2: классификация рукописных цифр из набора MNIST.
13.8. API РуТогсh более высокого уровня: краткое введение в PyTorch-Lightning.
13.8.1. Настройка модели РуТогсh Lightning.
13.8.2. Настройка загрузчиков данных для Lightning.
13.8.3. Обучение модели с помощью класса РуТогсh Lightning Trainer.
13.8.4. Оценка модели с помощью TensorBoard.
13.9. Заключение.
Глава 14. Классификация изображений с помощью глубоких сверточных нейронных сетей.
14.1. Функциональные блоки CNN.
14.1.1. Устройство CNN и понятие иерархии признаков.
14.1.2. Выполнение дискретных сверток.
Дискретные свертки в одном измерении.
Заполнение входных данных для управления размером выходных карт признаков.
Определение размера вывода свертки.
Вычисление дискретной двумерной свертки.
14.1.3. Слои подвыборки.
14.2. Практическая реализация CNN.
14.2.1. Работа с несколькими входными или цветовыми каналами.
14.2.2. Регуляризация L2 и прореживание.
14.2.3. Функции потерь для задач классификации.
14.3. Реализация глубокой CNN с использованием PyTorch.
14.3.1. Архитектура многослойной CNN.
14.3.2. Загрузка и предварительная обработка данных.
14.3.3. Реализация CNN с использованием модуля torch.nn.
Настройка слоев CNN в PyTorch.
Создание CNN в PyTorch.
14.4. Классификация улыбающихся лиц с помощью CNN.
14.4.1. Загрузка набора данных CelebA.
14.4.2. Преобразование изображений и дополнение данных.
14.4.3. Обучение классификатора улыбки на основе CNN.
14.5. Заключение.
Глава 15. Моделирование последовательных данных с помощью рекуррентных нейронных сетей.
15.1. Знакомство с понятием последовательных данных.
15.1.1. Моделирование последовательных данных: порядок имеет значение.
15.1.2. Данные временнь1х рядов - особый тип последовательных данных.
15.1.3. Способы представления последовательностей.
15.1.4. Различные категории моделирования последовательности.
15.2. RNN для моделирования последовательностей.
15.2.1. Определение потока данных в RNN.
15.2.2. Вычисление активаций в RNN.
15.2.3. Скрытая и выходная рекуррентность.
15.2.4. Проблемы изучения дальних взаимодействий.
15.2.5. Ячейки долгой краткосрочной памяти.
15.3. Реализация RNN для моделирования последовательностей в PyTorch.
15.3.1. Проект № 1: предсказание эмоциональной окраски отзывов на фильмы IMDb.
Подготовка данных отзывов на фильмы.
Слои встраивания для кодирования предложений.
Построение модели RNN.
Построение модели RNN для задачи анализа тональности.
Подробнее о двунаправленной RNN.
15.3.2. Проект № 2: моделирование языка на уровне символов в PyTorch.
Предварительная обработка набора данных.
Построение модели RNN символьного уровня.
Этап оценки: создание новых отрывков текста.
15.4. Заключение.
Глава 16. Трансформеры: улучшение обработки естественного языка с помощью механизмов внимания.
16.1. Добавляем к RNN механизм внимания.
16.1.1. Как внимание помогает RNN извлекать информацию?.
16.1.2. Оригинальный механизм внимания для RNN.
16.1.3. Обработка входных данных с использованием двунаправленной RNN.
16.1.4. Генерация выходных данных из векторов контекста.
16.1.5. Вычисление весов внимания.
16.2. Знакомство с механизмом самовнимания.
16.2.1. Начнем с базовой формы самовнимания.
16.2.2. Параметризация механизма самовнимания: взвешенное скалярное произведение.
16.3. Внимание - это все, что нам нужно: знакомство с архитектурой Transformer.
16.3.1. Кодирование контекстных встраиваний с помощью многоголового внимания.
16.3.2. Обучение языковой модели: декодер и маскированное многоголовое внимание.
16.3.3. Детали реализации: позиционное кодирование и нормализация слоев.
16.4. Построение больших языковых моделей с использованием неразмеченных данных.
16.4.1. Предварительное обучение и тонкая настройка моделей трансформеров.
16.4.2. Использование неразмеченных данных с помощью GPT.
16.4.3. Использование GPT-2 для создания нового текста.
16.4.4. Двунаправленное предварительное обучение модели BERT.
16.4.5. Лучшее из двух миров: BART.
16.5. Тонкая настройка модели BERT в PyTorch.
16.5.1. Загрузка набора данных обзора фильмов IMDb.
16.5.2. Токенизация набора данных.
16.5.3. Загрузка и тонкая настройка предварительно обученной модели BERT.
16.5.4. Удобная тонкая настройка трансформера с помощью API Trainer.
16.6. Заключение.
Глава 17. Генеративно-состязательные сети и синтез новых данных.
17.1. Знакомство с генеративно-состязательными сетями.
17.1.1. Начнем с автокодировщиков.
17.1.2. Генеративные модели для синтеза новых данных.
17.1.3. Генерация новых экземпляров данных с помощью GAN.
17.1.4. Функции потерь сетей генератора и дискриминатора в модели GAN.
17.2. Строим собственную GAN с нуля.
17.2.1. Обучение моделей GAN в Google Colab.
17.2.2. Реализация сетей генератора и дискриминатора.
17.2.3. Определение набора обучающих данных.
17.2.4. Обучение модели GAN.
17.3. Улучшение качества синтезированных изображений с помощью сверточной GAN и метрики Вассерштейна.
17.3.1. Транспонированная свертка.
17.3.2. Пакетная нормализация.
17.3.3. Реализация генератора и дискриминатора.
17.3.4. Меры несходства между двумя распределениями.
17.3.5. Практическое применение ЕМ-расстояния для построения GAN.
17.3.6. Штраф за градиент.
17.3.7. Реализация WGAN-GP для обучения модели DCGAN.
17.3.8. Схлопывание мод распределения.
17.4. Другие применения GAN.
17.5. Заключение.
Глава 18. Графовые нейронные сети: выявление зависимостей в структурированных графовых данных.
18.1. Введение в графовые данные.
18.1.1. Неориентированные графы.
18.1.2. Ориентированные графы.
18.1.3. Помеченные графы.
18.1.4. Представление молекул в виде графов.
18.2. Что такое графовая свертка?.
18.2.1. Причина использования графовых сверток.
18.2.2. Реализация базовой свертки графа.
18.3. Построение GNN в PyTorch с нуля.
18.3.1. Определение модели NodeNetwork.
18.3.2. Реализация слоя графовой свертки NodeNetwork.
18.3.3. Добавочный слой глобального объединения для работы с графами разного размера.
18.3.4. Подготовка загрузчика данных DataLoader.
18.3.5. Использование NodeNetwork для прогнозирования.
18.4. Построение GNN с использованием геометрической библиотеки PyTorch.
18.5. Другие слои GNN и новейшие разработки.
18.5.1. Спектральные графовые свертки.
18.5.2. Объединение.
18.5.3. Нормализация.
18.5.4. Дополнительная литература по графовым нейронным сетям.
18.6. Заключение.
Глава 19. Обучение с подкреплением для принятия решений в сложных условиях.
19.1. Введение в обучение на собственном опыте.
19.1.1. Ключевые идеи обучения с подкреплением.
19.1.2. Определение интерфейса агент-среда в системе обучения с подкреплением.
19.2. Теоретические основы RL.
19.2.1. Марковские процессы принятия решений.
Математическая основа марковских процессов принятия решений.
Визуальное представление марковского процесса.
19.2.2. Эпизодические и непрерывные задачи.
19.2.3. Терминология RL: отдача, стратегия и функция ценности.
Отдача.
Стратегия.
Функция ценности.
19.2.4. Уравнение Беллмана в динамическом программировании.
19.3. Алгоритмы обучения с подкреплением.
19.3.1. Динамическое программирование.
Оценка стратегии: прогнозирование функции ценности с помощью динамического программирования.
Улучшение стратегии с помощью известной функции ценности.
Итерация стратегии.
Итерация ценности.
19.3.2. Обучение с подкреплением по методу Монте-Карло.
Нахождение функции ценности состояния с использованием МС.
Нахождение функции ценности действия с использованием МС.
Поиск оптимальной стратегии с помощью МС-управления.
Улучшение стратегии: вычисление жадной стратегии на основе функции ценности действия.
19.3.3. Обучение на временнь1х разностях.
Прогнозирование ценности с TD.
Алгоритм on-policy TD (SARSA).
Алгоритм off-policy TD (О-обучение).
19.4. Реализация первого алгоритма RL.
19.4.1. Знакомство с набором инструментов OpenAI Gym.
Работа с готовыми средами в OpenAI Gym.
Пример клетчатого мира.
Реализация среды клетчатого мира в OpenAI Gym.
19.4.2. Решение задачи клетчатого мира с помощью 0-обучения.
19.5. Обзор глубокого О-обучения.
19.5.1. Применение алгоритма О-обучения в моделях DON.
Глобальная память.
Определение целей для расчета потерь.
19.5.2. Реализация алгоритма глубокого О-обучения.
19.6. Краткое содержание главы и книги.
Предметный указатель.
Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Машинное обучение с PyTorch и Scikit-Learn, Рашка С., 2024 - fileskachat.com, быстрое и бесплатное скачивание.
Скачать pdf
Ниже можно купить эту книгу, если она есть в продаже, и похожие книги по лучшей цене со скидкой с доставкой по всей России.Купить книги
Скачать - pdf - Яндекс.Диск.
Дата публикации:
Теги: учебник по программированию :: программирование :: Рашка
Смотрите также учебники, книги и учебные материалы:
Следующие учебники и книги:
Предыдущие статьи: