Глубокое обучение с подкреплением (глубокое RL) сочетает в себе два подхода к машинному обучению. В ходе такого обучения виртуальные агенты учатся решать последовательные задачи о принятии решений. За последнее десятилетие было много неординарных достижений в этой области — от однопользовательских и многопользовательских игр, таких как го и видеоигры Atari и Dota 2, до робототехники.
Эта книга — введение в глубокое обучение с подкреплением, уникально комбинирующее теорию и практику. Авторы начинают повествование с базовых сведений, затем подробно объясняют теорию алгоритмов глубокого RL, демонстрируют их реализации на примере программной библиотеки SLM Lab и напоследок описывают практические аспекты использования глубокого RL.
Руководство идеально подойдет как для студентов, изучающих компьютерные науки, так и для разработчиков программного обеспечения, которые знакомы с основными принципами машинного обучения и знают Python.
Author(s): Лаура Грессер, Ван Лун Кенг
Series: Библиотека программиста
Edition: 1
Publisher: Питер
Year: 2022
Language: Russian
Commentary: Vector PDF
Pages: 416
City: СПб.
Tags: Algorithms; Neural Networks; Deep Learning; Reinforcement Learning; Supervised Learning; Parallel Programming; Temporal Difference Learning; Actor-Critic Method; Deep Q-Networks; Proximal Policy Optimization
Предисловие
Введение
Благодарности
Об авторах
От издательства
Глава 1. Введение в обучение с подкреплением
1.1. Обучение с подкреплением
1.2. Обучение с подкреплением как МППР
1.3. Обучаемые функции в обучении с подкреплением
1.4. Алгоритмы глубокого обучения с подкреплением
1.4.1. Алгоритмы, основанные на стратегии
1.4.2. Алгоритмы, основанные на полезности
1.4.3. Алгоритмы, основанные на модели среды
1.4.4. Комбинированные методы
1.4.5. Алгоритмы, которые обсуждаются в этой книге
1.4.6. Алгоритмы по актуальному и отложенному опыту
1.4.7. Краткий обзор методов
1.5. Глубокое обучение для обучения с подкреплением
1.6. Обучение с подкреплением и обучение с учителем
1.6.1. Отсутствие оракула
1.6.2. Разреженность обратной связи
1.6.3. Генерация данных
1.7. Резюме
Часть I. Алгоритмы, основанные на стратегиях и полезностях
Глава 2. REINFORCE
2.1. Стратегия
2.2. Целевая функция
2.3. Градиент стратегии
2.3.1. Вывод формулы для градиента по стратегиям
2.4. Выборка методом Монте-Карло
2.5. Алгоритм REINFORCE
2.5.1. Усовершенствование метода REINFORCE
2.6. Реализация REINFORCE
2.6.1. Минимальная реализация REINFORCE
2.6.2. Построение стратегий с помощью PyTorch
2.6.3. Выборка действий
2.6.4. Расчет потерь, обусловленных стратегией
2.6.5. Цикл обучения в REINFORCE
2.6.6. Класс Memory для хранения примеров при обучении по актуальному опыту
2.7. Обучение агента в REINFORCE
2.8. Результаты экспериментов
2.8.1. Эксперимент по оценке влияния коэффициента дисконтирования γ
2.8.2. Эксперимент по оценке влияния базового значения
2.9. Резюме
2.10. Рекомендуемая литература
2.11. Историческая справка
Глава 3. SARSA
3.1. Q-функция и V-функция
3.2. Метод временных различий
3.2.1. Принцип метода временных различий
3.3. Выбор действий в SARSA
3.3.1. Исследование и использование
3.4. Алгоритм SARSA
3.4.1. Алгоритмы обучения по актуальному опыту
3.5. Реализация SARSA
3.5.1. ε-жадная функция выбора действий
3.5.2. Расчет Q-функции потерь
3.5.3. Цикл обучения в SARSA
3.5.4. Память для хранения пакетов прецедентов при обучении по актуальному опыту
3.6. Обучение агента SARSA
3.7. Результаты экспериментов
3.7.1. Эксперимент по определению влияния скорости обучения
3.8. Резюме
3.9. Рекомендуемая литература
3.10. Историческая справка
Глава 4. Глубокие Q-сети
4.1. Настройка Q-функции в DQN
4.2. Выбор действий в DQN
4.2.1. Стратегия Больцмана
4.3. Хранение прецедентов в памяти
4.4. Алгоритм DQN
4.5. Реализация DQN
4.5.1. Расчет Q-функции потерь
4.5.2. Цикл обучения DQN
4.5.3. Память прецедентов
4.6. Обучение агента DQN
4.7. Результаты экспериментов
4.7.1 Эксперимент по определению влияния архитектуры сети
4.8. Резюме
4.9. Рекомендуемая литература
4.10. Историческая справка
Глава 5. Улучшение DQN
5.1. Прогнозные сети
5.2. Двойная DQN
5.3. Приоритизированная память прецедентов
5.3.1. Выборка по значимости
5.4. Реализация улучшенной DQN
5.4.1. Инициализация сети
5.4.2. Расчет Q-функции потерь
5.4.3. Обновление прогнозной сети
5.4.4. DQN с прогнозными сетями
5.4.5. Двойная DQN
5.4.6. Приоритизированная память прецедентов
5.5. Обучение агента DQN играм Atari
5.6. Результаты экспериментов
5.6.1. Эксперимент по оценке применения двойной DQN с PER
5.7. Резюме
5.8. Рекомендуемая литература
Часть II. Комбинированные методы
Глава 6. Метод актора-критика с преимуществом (А2С)
6.1. Актор
6.2. Критик
6.2.1. Функция преимущества
6.2.2. Настройка функции преимущества
6.3. Алгоритм А2С
6.4. Реализация А2С
6.4.1. Оценка преимущества
6.4.2. Расчет функции потерь для полезности и стратегии
6.4.3. Цикл обучения актора-критика
6.5. Архитектура сети
6.6. Обучение агента А2С
6.6.1. А2С с оценкой преимущества по отдаче за n шагов в Pong
6.6.2. А2С с GAE в Pong
6.6.3. A2C по отдаче за n шагов в BipedalWalker
6.7. Результаты экспериментов
6.7.1. Эксперимент по определению влияния отдачи за n шагов
6.7.2. Эксперимент по выявлению влияния λ в GAE
6.8. Резюме
6.9. Рекомендуемая литература
6.10. Историческая справка
Глава 7. Оптимизация ближайшей стратегии
7.1. Суррогатная целевая функция
7.1.1. Падение производительности
7.1.2. Преобразование целевой функции
7.2. Оптимизация ближайшей стратегии
7.3. Алгоритм РРО
7.4. Реализация РРО
7.4.1. Расчет функции потерь для стратегии в РРО
7.4.2. Цикл обучения РРО
7.5. Обучение агента РРО
7.5.1. РРО в Pong
7.5.2. РРО в BipedalWalker
7.6. Результаты экспериментов
7.6.1. Эксперимент по определениювлияния λ в GAE
7.6.2. Эксперимент по определению влияния переменной ε для усеченной функции потерь
7.7. Резюме
7.8. Рекомендуемая литература
Глава 8. Методы параллелизации
8.1. Синхронная параллелизация
8.2. Асинхронная параллелизация
8.2.1. Hogwild!
8.3. Обучение агента А3С
8.4. Резюме
8.5. Рекомендуемая литература
Глава 9. Сравнительный анализ алгоритмов
Часть III. Практика
Глава 10. Начало работы с глубоким ОП
10.1. Приемы проектирования программ
10.1.1. Модульное тестирование
10.1.2. Качество кода
10.1.3. Рабочий процесс Git
10.2. Рекомендации по отладке
10.2.1. Признаки жизни
10.2.2. Диагностирование градиента стратегии
10.2.3. Диагностирование данных
10.2.4. Предварительная обработка
10.2.5. Память
10.2.6. Алгоритмические функции
10.2.7. Нейронные сети
10.2.8. Упрощение алгоритма
10.2.9. Упрощение задачи
10.2.10. Гиперпараметры
10.2.11. Рабочий процесс в SLM Lab
10.3. Практические приемы в играх Atari
10.4. Справочник по глубокому обучению с подкреплением
10.4.1. Таблицы гиперпараметров
10.4.2. Сравнение производительности алгоритмов
10.5. Резюме
Глава 11. SLM Lab
11.1. Алгоритмы, реализованные в SLM Lab
11.2. Файл spec
11.2.1. Синтаксис поиска в spec
11.3. Запуск SLM Lab
11.3.1. Команды SLM Lab
11.4. Анализ результатов эксперимента
11.4.1. Обзор экспериментальных данных
11.5. Резюме
Глава 12. Архитектура сетей
12.1. Виды нейронных сетей
12.1.1. Многослойные перцептроны
12.1.2. Сверточные нейронные сети
12.1.3. Рекуррентные нейронные сети
12.2. Рекомендации по выбору семейства сетей
12.2.1. Сравнение МППР и частично наблюдаемых МППР
12.2.2. Выбор сетей для сред
12.3. Net API
12.3.1. Выведение размерностей входного и выходного слоев
12.3.2. Автоматическое создание сети
12.3.3. Шаг обучения
12.3.4. Предоставление базовых методов
12.4. Резюме
12.5. Рекомендуемая литература
Глава 13. Аппаратное обеспечение
13.1. Компьютер
13.2. Типы данных
13.3. Оптимизация типов данных в ОП
13.4. Выбор аппаратного обеспечения
13.5. Резюме
Глава 14. Состояния
14.1. Примеры состояний
14.2. Полнота состояния
14.3. Сложность состояния
14.4. Потеря информации о состоянии
14.4.1. Преобразование изображений в градации серого
14.4.2. Дискретизация
14.4.3. Конфликты хеширования
14.4.4. Потери метаинформации
14.5. Предварительная обработка
14.5.1. Стандартизация
14.5.2. Предварительная обработка изображений
14.5.3. Предварительная обработка временных данных
14.6. Резюме
Глава 15. Действия
15.1. Примеры действий
15.2. Полнота действий
15.3. Сложность действий
15.4. Резюме
15.5. Проектирование действий в повседневной жизни
Глава 16. Вознаграждения
16.1. Роль вознаграждений
16.2. Рекомендации по проектированию вознаграждений
16.3. Резюме
Глава 17. Функция переходов
17.1. Проверка осуществимости
17.2. Проверка реалистичности
17.3. Резюме
Заключение
Воспроизводимость
Отрыв от реальности
Метаобучение и многозадачное обучение
Многоагентные задачи
Эффективность выборки
Обобщение
Исследование и структурирование вознаграждений
Приложения
Приложение А. История глубокого обучения с подкреплением
Приложение Б. Примеры сред
Б.1. Дискретные среды
Б.1.1. CartPole-v0
Б.1.2. MountainCar-v0
Б.1.3. LunarLander-v2
Б.1.4. PongNoFrameskip-v4
Б.1.5. BreakoutNoFrameskip-v4
Б.2. Непрерывные среды
Б.2.1. Pendulum-v0
Б.2.2. BipedalWalker-v2
Список используемых источников