
Книга рассказывает об оптимизации моделей машинного обучения на основе байесовского метода и теории вероятностей. Примеры составлены на языке Python с использованием библиотек PyTorch, GPyTorch и BoTorch. Описаны приёмы настройки гиперпараметров, гауссовское распределение, использование политик машинного обучения, в частности на основе задачи о многоруких бандитах, повышение производительности вычислений, многовариантная оптимизация с учётом полезности и затрат, а также применение байесовского метода в специализированных сценариях.
Для специалистов по машинному обучению и математическим алгоритмам
Книга предназначена для практикующих специалистов по машинному обучению, уверенно ориентирующихся в математических методах и статистике.
О технологии:
Оптимизация в области машинного обучения заключается в достижении максимально качественных прогнозов за минимально возможное количество шагов. Так формируются кратчайшие маршруты доставки, идеальные цены, персонализированные рекомендации и т.д. В основе оптимизации по байесовскому методу лежит математический аппарат теории вероятностей. В рамках такой оптимизации вырабатываются способы настройки функций, алгоритмов и гиперпараметров машинного обучения.
О книге:
В книге рассказано, как выстраивать эффективные процессы машинного обучения с использованием байесовского подхода. Показано, как обучать модели на больших наборах данных, настраивать гиперпараметры и использовать метод парных сравнений.
Что внутри:
- Гауссовские процессы для малых и больших наборов данных
- Стратегии настройки гиперпараметров в моделях машинного обучения
- Определение высокоэффективных регионов
- Решение задач с использованием библиотек PyTorch, GPyTorch и BoTorch
Книгу “Байесовская оптимизация с примерами из библиотек PythonReact 19. Разработка веб-приложений на JavaScript” можно купить со скидкой в интернет-магазине издательства “БХВ“.
Введение…………………………………………………………………………………………………………………………………… 11
Пролог……………………………………………………………………………………………………………………………………….. 13
Благодарности…………………………………………………………………………………………………………………………. 15
О книге……………………………………………………………………………………………………………………………………….. 17
Кому следует прочитать эту книгу?………………………………………………………………………………………………….. 17
Как организована эта книга: дорожная карта……………………………………………………………………………………. 17
О коде……………………………………………………………………………………………………………………………………………. 20
Дискуссионный форум liveBook………………………………………………………………………………………………………… 21
Архив с иллюстрациями к книге……………………………………………………………………………………………………….. 21
Об авторе………………………………………………………………………………………………………………………………….. 22
О техническом редакторе……………………………………………………………………………………………………………….. 22
Об изображении на обложке………………………………………………………………………………………………… 23
Глава 1. Введение в байесовскую оптимизацию……………………………………………………………. 24
1.1. Нахождение оптимума дорогостоящей функции «черного ящика»………………………………………………. 25
1.1.1. Настройка гиперпараметров как пример дорогостоящей задачи оптимизации
«черного ящика»……………………………………………………………………………………………………………………… 25
1.1.2. Проблема дорогостоящей оптимизации «черного ящика»…………………………………………………. 27
1.1.3. Другие реальные примеры дорогостоящих задач оптимизации «черного ящика»……………….. 28
1.2. Введение в байесовскую оптимизацию……………………………………………………………………………………… 30
1.2.1. Моделирование с помощью гауссовского процесса…………………………………………………………… 31
1.2.2. Принятие решений с помощью политики БО…………………………………………………………………….. 34
1.2.3. Объединение ГП и политики БО для формирования цикла оптимизации……………………………. 35
1.2.4. Байесовская оптимизация в действии………………………………………………………………………………. 37
1.3. Что вы узнаете в этой книге?……………………………………………………………………………………………………. 43
Заключение……………………………………………………………………………………………………………………………………. 44
Часть I. Моделирование с помощью гауссовских процессов………………….. 45
Глава 2. Гауссовский процесс как распределение по функциям…………………………………. 47
2.1. Как продать свой дом по методу Байеса……………………………………………………………………………………. 49
2.2. Моделирование корреляций с помощью многомерных гауссовских распределений и байесовских обновлений 51
2.2.1. Использование многомерных распределений Гаусса для совместного моделирования нескольких переменных 51
2.2.2. Обновление нормальных распределений…………………………………………………………………………. 55
2.2.3. Моделирование множества переменных с помощью многомерных гауссовских распределений 58
2.3. Переход от конечной гауссианы к бесконечной………………………………………………………………………….. 60
2.4. Реализация ГП в Python……………………………………………………………………………………………………………. 65
2.4.1. Настройка обучающих данных…………………………………………………………………………………………. 65
2.4.2. Реализация класса ГП……………………………………………………………………………………………………… 67
2.4.3. Создание прогнозов с помощью ГП………………………………………………………………………………….. 69
2.4.4. Визуализация прогнозов ГП…………………………………………………………………………………………….. 70
2.4.5. Выход за рамки одномерных целевых функций…………………………………………………………………. 73
2.5. Упражнение……………………………………………………………………………………………………………………………… 75
Заключение……………………………………………………………………………………………………………………………………. 77
Глава 3. Настройка ГП с помощью функций среднего значения и ковариации……….. 78
3.1. Важность априорных знаний в байесовских моделях………………………………………………………………….. 79
3.2. Включение предварительных знаний в ГП………………………………………………………………………………… 82
3.3. Определение поведения целевой функции с помощью функции среднего значения……………………. 83
3.3.1. Использование функции нулевого среднего в качестве базовой стратегии………………………… 84
3.3.2. Использование постоянной функции с градиентным спуском…………………………………………….. 86
3.3.3. Использование линейной функции с градиентным спуском……………………………………………….. 90
3.3.4. Использование квадратичной функции с помощью реализации пользовательской функции среднего 92
3.4. Определение изменчивости и гладкости с помощью ковариационной функции…………………………… 95
3.4.1. Настройка масштабов функции ковариации……………………………………………………………………… 95
3.4.2. Управление гладкостью с помощью различных ковариационных функций…………………………. 99
3.4.3. Моделирование различных уровней изменчивости с помощью
множественных масштабов длины…………………………………………………………………………………………… 101
3.5. Упражнение……………………………………………………………………………………………………………………………. 104
Заключение………………………………………………………………………………………………………………………………….. 106
Часть II. Принятие решений с помощью байесовской оптимизации…… 107
Глава 4. Достижение наилучшего результата с помощью политик,
основанных на улучшениях………………………………………………………………………………………………… 109
4.1. Навигация по пространству поиска в БО………………………………………………………………………………….. 110
4.1.1. Цикл БО и политики……………………………………………………………………………………………………….. 110
4.1.2. Баланс между исследованием и эксплуатацией……………………………………………………………….. 120
4.2. Поиск улучшений в БО……………………………………………………………………………………………………………. 122
4.2.1. Измерение улучшения с помощью ГП…………………………………………………………………………….. 123
4.2.2. Вычисление вероятности улучшения……………………………………………………………………………… 127
4.2.3. Запуск политики PoI……………………………………………………………………………………………………….. 131
4.3. Оптимизация ожидаемого значения улучшения……………………………………………………………………….. 135
4.4. Упражнения……………………………………………………………………………………………………………………………. 139
4.4.1. Упражнение 1: поощрение исследования с помощью PoI………………………………………………… 139
4.4.2. Упражнение 2: БО для настройки гиперпараметров………………………………………………………… 140
Заключение………………………………………………………………………………………………………………………………….. 142
Глава 5. Исследование пространства поиска с помощью «многорукого бандита». 143
5.1. Введение в задачу многорукого бандита………………………………………………………………………………….. 144
5.1.1. Как найти наилучший игровой автомат в казино……………………………………………………………… 144
5.1.2. От MAB к БО………………………………………………………………………………………………………………….. 147
5.2. Как быть оптимистом в условиях неопределенности с помощью политики
верхней доверительной границы…………………………………………………………………………………………….. 149
5.2.1. Оптимизм в условиях неопределенности………………………………………………………………………… 149
5.2.2. Баланс между исследованием и эксплуатацией……………………………………………………………….. 152
5.2.3. Реализация с помощью BoTorch…………………………………………………………………………………….. 154
5.3. Интеллектуальная выборка с помощью политики выборки Томпсона……………………………………….. 157
5.3.1. Одна выборка для представления неизвестного……………………………………………………………… 157
5.3.2. Реализация с помощью BoTorch…………………………………………………………………………………….. 160
5.4. Упражнения……………………………………………………………………………………………………………………………. 166
5.4.1. Упражнение 1: Настройка плана эксплуатации для UCB………………………………………………….. 167
5.4.2. Упражнение 2: БО для настройки гиперпараметров………………………………………………………… 167
Заключение………………………………………………………………………………………………………………………………….. 168
Глава 6. Использование теории информации с политиками на основе энтропии.. 170
6.1. Измерение знаний с помощью теории информации…………………………………………………………………. 171
6.1.1. Измерение неопределенности с помощью энтропии……………………………………………………….. 171
6.1.2. Поиск пульта дистанционного управления с помощью энтропии………………………………………. 174
6.1.3. Бинарный поиск с применением энтропии………………………………………………………………………. 177
6.2. Энтропийный поиск в БО………………………………………………………………………………………………………… 183
6.2.1. Поиск оптимума с помощью теории информации…………………………………………………………….. 183
6.2.2. Реализация энтропийного поиска с помощью BoTorch…………………………………………………….. 187
6.3. Упражнения……………………………………………………………………………………………………………………………. 190
6.3.1. Упражнение 1: Включение предварительных (априорных) знаний в энтропийный поиск…… 190
6.3.2. Упражнение 2: Байесовская оптимизация для настройки гиперпараметров……………………… 192
Заключение………………………………………………………………………………………………………………………………….. 193
Часть III. Расширение байесовской оптимизации на специализированные сценарии 195
Глава 7. Максимизация производительности за счет оптимизации
пакетной обработки……………………………………………………………………………………………………………… 197
7.1. Одновременное выполнение нескольких оценок функций………………………………………………………… 198
7.1.1. Параллельное использование всех доступных ресурсов………………………………………………….. 198
7.1.2. Почему нельзя использовать обычные политики БО в пакетном режиме?……………………….. 201
7.2. Вычисление улучшения и верхней доверительной границы для набора точек…………………………… 203
7.2.1. Расширение эвристик оптимизации для пакетного режима………………………………………………. 203
7.2.2. Реализация пакетных политик PoI, EI и UCB…………………………………………………………………… 210
7.3. Упражнение 1: Расширение TS до пакетной оптимизации с помощью повторной выборки………… 216
7.4. Вычисление ценности пакета точек с помощью теории информации………………………………………… 217
7.4.1. Нахождение наиболее информативного пакета точек с помощью цикличного уточнения….. 217
7.4.2. Реализация пакетного энтропийного поиска с помощью BoTorch…………………………………….. 220
7.5. Упражнение 2: Оптимизация конструкции самолета…………………………………………………………………. 222
Заключение………………………………………………………………………………………………………………………………….. 225
Глава 8. Удовлетворение особых ограничений с помощью
ограниченной оптимизации………………………………………………………………………………………………… 227
8.1. Учет ограничений в задаче ограниченной оптимизации…………………………………………………………… 228
8.1.1. Ограничения могут изменить решение задачи оптимизации……………………………………………. 228
8.1.2. Структура БО, учитывающая ограничения……………………………………………………………………… 231
8.2. Принятие решений с учетом ограничений в БО……………………………………………………………………….. 232
8.3. Упражнение 1: Ручное вычисление ограниченной EI………………………………………………………………… 238
8.4. Реализация ограниченной EI с помощью BoTorch……………………………………………………………………. 239
8.5. Упражнение 2: Ограниченная оптимизация при конструировании самолета………………………………. 243
Заключение………………………………………………………………………………………………………………………………….. 245
Глава 9. Балансирование между полезностью и затратами
с помощью многовариантной оптимизации…………………………………………………………………… 246
9.1. Использование приближений с низкой точностью для изучения дорогостоящих явлений…………… 248
9.2. Разноточное моделирование с помощью ГП……………………………………………………………………………. 251
9.2.1. Форматирование разноточного набора данных……………………………………………………………….. 251
9.2.2. Обучение разноточного ГП…………………………………………………………………………………………….. 255
9.3. Баланс между информацией и затратами в разноточной оптимизации……………………………………… 260
9.3.1. Моделирование затрат на запросы различной точности………………………………………………….. 260
9.3.2. Оптимизация количества информации для управления оптимизацией…………………………….. 262
9.4. Измерение производительности в разноточной оптимизации…………………………………………………… 267
9.5. Упражнение 1: Визуализация средней производительности в разноточной оптимизации…………… 272
9.6. Упражнение 2: Разноточная оптимизация с использованием нескольких
низкоточных приближений………………………………………………………………………………………………………. 273
Заключение………………………………………………………………………………………………………………………………….. 275
Глава 10. Обучение на парных сравнениях с помощью оптимизации
предпочтений…………………………………………………………………………………………………………………………. 277
10.1. Оптимизация «черного ящика» с помощью парных сравнений……………………………………………….. 279
10.2. Формулировка задачи оптимизации предпочтений и форматирование данных
парного сравнения………………………………………………………………………………………………………………… 282
10.3. Обучение ГП, основанного на предпочтениях………………………………………………………………………… 286
10.4. Оптимизация предпочтений с помощью игры «Царь горы»…………………………………………………….. 290
Заключение………………………………………………………………………………………………………………………………….. 294
Глава 11. Оптимизация нескольких целевых функций одновременно……………………. 296
11.1. Балансирование нескольких целей оптимизации с помощью БО…………………………………………….. 297
11.2. Нахождение границы наиболее оптимальных точек данных……………………………………………………. 299
11.3. Стремление к улучшению оптимальной границы данных………………………………………………………… 307
11.4. Упражнение: Многоцелевая оптимизация для конструирования самолета………………………………. 313
Заключение………………………………………………………………………………………………………………………………….. 314
Часть IV. Специальные модели гауссовского процесса……………………………. 315
Глава 12. Масштабирование гауссовского процесса для больших наборов
данных……………………………………………………………………………………………………………………………………… 317
12.1. Обучение ГП на большом наборе данных………………………………………………………………………………. 319
12.1.1. Постановка задачи обучения……………………………………………………………………………………… 319
12.1.2. Обучение обычного ГП………………………………………………………………………………………………. 322
12.1.3. Проблемы с обучением обычного ГП………………………………………………………………………….. 324
12.2. Автоматический выбор репрезентативных точек из большого набора данных………………………… 327
12.2.1. Минимизация различий между двумя ГП…………………………………………………………………….. 327
12.2.2. Обучение модели небольшими пакетами……………………………………………………………………. 329
12.2.3. Реализация приближенной модели…………………………………………………………………………….. 332
12.3. Достижение лучшей оптимизации с учетом геометрии поверхности потерь……………………………… 338
12.4. Упражнение………………………………………………………………………………………………………………………….. 344
Заключение………………………………………………………………………………………………………………………………….. 346
Глава 13. Комбинирование гауссовских процессов с нейросетями………………………… 347
13.1. Данные, имеющие структуру………………………………………………………………………………………………….. 348
13.2. Нахождение сходства в структурированных данных……………………………………………………………….. 351
13.2.1. Использование ядра с GPyTorch………………………………………………………………………………… 352
13.2.2. Работа с изображениями в PyTorch…………………………………………………………………………….. 352
13.2.3. Вычисление ковариации двух изображений………………………………………………………………… 354
13.2.4. Обучение ГП на изображениях…………………………………………………………………………………… 355
13.3. Использование нейросетей для обработки сложных структурированных данных……………………… 359
13.3.1. Зачем использовать нейросети для моделирования?………………………………………………….. 359
13.3.2. Реализация комбинированной модели в GPyTorch………………………………………………………. 361
Заключение………………………………………………………………………………………………………………………………….. 368
ПРИЛОЖЕНИЕ. Решения для упражнений………………………………………………………………………… 369
П.1. Глава 2: Гауссовский процесс как распределение по функциям……………………………………………….. 369
П.2. Глава 3: Объединение предварительных знаний с функциями среднего и ковариации……………… 372
П.3. Глава 4: Достижение наилучшего результата с помощью политик,
основанных на улучшениях…………………………………………………………………………………………………….. 374
П.3.1. Упражнение 1: Поощрение исследований с помощью вероятности улучшения……………….. 375
П.3.2. Упражнение 2: БО для настройки гиперпараметров……………………………………………………….. 376
П.4. Глава 5: Исследование пространства поиска с помощью политик «многорукого бандита»…………. 382
П.4.1. Упражнение 1: Настройка плана исследования для верхней доверительной границы……… 383
П.4.2. Упражнение 2: БО для настройки гиперпараметров……………………………………………………….. 384
П.5. Глава 6: Использование теории информации с политиками, основанными на энтропии……………. 387
П.5.1. Упражнение 1: Включение предварительных знаний в энтропийный поиск…………………….. 388
П.5.2. Упражнение 2: БО для настройки гиперпараметров……………………………………………………….. 391
П.6. Глава 7: Увеличение пропускной способности с помощью пакетной оптимизации…………………….. 392
П.6.1. Упражнение 1: Расширение TS для пакетного режима с помощью повторной выборки…… 392
П.6.2. Упражнение 2: Оптимизация конструкции самолета……………………………………………………….. 393
П.7. Глава 8: Удовлетворение дополнительных ограничений с помощью ограниченной оптимизации. 397
П.7.1. Упражнение 1: Ручное вычисление ограниченной политики EI……………………………………….. 397
П.7.2. Упражнение 2: Ограниченная оптимизация конструкции самолета…………………………………. 400
П.8. Глава 9: Баланс между полезностью и затратами с помощью разноточной оптимизации…………… 402
П.8.1. Упражнение 1: Визуализация средней производительности при разноточной оптимизации 403
П.8.2. Упражнение 2: Разноточная оптимизация с использованием нескольких
низкоточных приближений……………………………………………………………………………………………………… 405
П.9. Глава 11: Оптимизация нескольких целевых функций одновременно……………………………………….. 407
П.10. Глава 12: Масштабирование гауссовских процессов на большие наборы данных……………………. 409
Предметный указатель………………………………………………………………………………………………………… 414
