
егодня машинное обучение – основной практический аппарат для применения искусственного интеллекта. Книга, основанная на стэнфордском учебном курсе, не ограничивается разбором конкретных библиотек, а описывает высокоуровневый подход к разработке систем машинного обучения, который упрощает их поддержку и развитие, позволяет избежать переобучения, искажения результатов. Рассказано, как сделать новую систему машинного обучения или нейронную сеть, надёжной, репрезентативной и расширяемой, а также качественно доработать уже существующие системы. Также показано, как подобрать библиотеки и алгоритмы с учётом имеющегося множества данных и действующих бизнес-требований, конструировать признаки и отслеживать метрики.
Книга адресована программистам и специалистам по data science
Ключевые особенности
- Инжиниринг данных и выбор нужных метрик, помогающих правильно решить задачу
- Автоматизация процесса, позволяющая непрерывно разрабатывать, оценивать, развёртывать и обновлять модели
- Разработка мониторинговой системы, позволяющей быстро обнаруживать и устранять проблемы, которые могут возникать в реальном использовании
- Выстраивание платформы машинного обучения, которая была бы применима сразу во многих практических ситуациях
- Ответственный подход к разработке систем машинного обучения
Чем эта книга не является
Эта книга не является введением в ML. Существует множество книг, курсов и ресурсов, посвященных теориям машинного обучения, и поэтому в этой книге эти концепции уходят в сторону, чтобы сосредоточиться на практических аспектах машинного обучения. Чтобы быть конкретным, книга предполагает, что читатели имеют базовое понимание следующих тем:
- Модели машинного обучения , такие как кластеризация, логистическая регрессия, деревья решений, совместная фильтрация и различные архитектуры нейронных сетей, включая упреждающую, рекуррентную, сверточную и трансформирующую.
- Методы машинного обучения , такие как контролируемое и неконтролируемое, градиентный спуск, функция цели/потери, регуляризация, обобщение и настройка гиперпараметров.
- Такие метрики , как точность, F1, точность, полнота, ROC, среднеквадратическая ошибка и логарифмическая вероятность.
- Статистические концепции, такие как дисперсия, вероятность и нормальное/длинное распределение.
- Общие задачи машинного обучения, такие как языковое моделирование, обнаружение аномалий, классификация объектов и машинный перевод.
Книга основана на стэнфордском учебном курсе
Отзывы о книге……………………………………………………………………………………… 13
Предисловие…………………………………………………………………………………………… 15
Для кого предназначена эта книга?…………………………………………………………………………………………. 16
Чего вы не найдете в книге?………………………………………………………………………………………………………. 17
Навигация по книге……………………………………………………………………………………………………………………. 18
Репозиторий GitHub и сообщество…………………………………………………………………………………………… 19
Используемые обозначения………………………………………………………………………………………………………. 19
Использование примеров кода…………………………………………………………………………………………………. 20
Платформа онлайн-обучения O’Reilly……………………………………………………………………………………… 20
Как с нами связаться?………………………………………………………………………………………………………………… 21
Благодарности…………………………………………………………………………………………………………………………… 21
Глава 1. Обзор ML-систем……………………………………………………………………… 23
Когда использовать ML?…………………………………………………………………………………………………………… 24
Примеры использования машинного обучения………………………………………………………………………. 30
Понимание систем машинного обучения………………………………………………………………………………… 33
Машинное обучение в исследованиях и в производстве……………………………………………. 33
Различные участники процесса и их требования……………………………………………….. 34
Приоритеты вычислений……………………………………………………………………………………….. 36
Данные…………………………………………………………………………………………………………………….. 39
Объективность………………………………………………………………………………………………………… 40
Интерпретируемость……………………………………………………………………………………………… 41
Обсуждение…………………………………………………………………………………………………………….. 42
ML-системы в сравнении с традиционным ПО……………………………………………………………. 42
Итоги…………………………………………………………………………………………………………………………………………… 44
Глава 2. Введение в проектирование ML-систем……………………………………. 46
Цели для бизнеса и для ML……………………………………………………………………………………………………….. 46
Требования к ML-системам………………………………………………………………………………………………………. 49
Надежность…………………………………………………………………………………………………………………….. 49
Масштабируемость………………………………………………………………………………………………………… 50
Обслуживаемость…………………………………………………………………………………………………………… 51
Адаптивность………………………………………………………………………………………………………………….. 51
Итеративный процесс………………………………………………………………………………………………………………… 52
Формулирование ML-задач……………………………………………………………………………………………………… 54
Типы ML-задач……………………………………………………………………………………………………………….. 55
Классификация или регрессия?…………………………………………………………………………….. 55
Бинарная или мультиклассовая классификация?……………………………………………….. 56
Мультиклассовая или многометочная классификация?…………………………………….. 57
Несколько способов сформулировать задачу…………………………………………………….. 58
Целевые функции……………………………………………………………………………………………………………. 59
Разделение целей……………………………………………………………………………………………………. 60
Данные или разум?……………………………………………………………………………………………………………………. 62
Итоги…………………………………………………………………………………………………………………………………………… 64
Глава 3. Основы проектирования баз данных……………………………………….. 67
Источники данных…………………………………………………………………………………………………………………….. 68
Форматы данных……………………………………………………………………………………………………………………….. 70
JSON…………………………………………………………………………………………………………………………………. 71
Row-Major или Column-Major?……………………………………………………………………………………… 72
Текстовый формат или двоичный?……………………………………………………………………………….. 74
Модели данных………………………………………………………………………………………………………………………….. 75
Реляционная модель……………………………………………………………………………………………………….. 76
NoSQL………………………………………………………………………………………………………………………………. 79
Документальная модель………………………………………………………………………………………… 80
Графовая модель……………………………………………………………………………………………………. 81
Структурированные или неструктурированные данные?………………………………………….. 82
Хранение и обработка данных…………………………………………………………………………………………………. 84
Транзакционная и аналитическая обработка данных……………………………………………….. 84
ETL: извлечение, преобразование, загрузка………………………………………………………………… 87
Режимы потока данных…………………………………………………………………………………………………………….. 89
Передача данных через базы данных………………………………………………………………………….. 89
Передача данных через сервисы…………………………………………………………………………………… 89
Передача данных в режиме реального времени………………………………………………………….. 91
Пакетная обработка или потоковая?……………………………………………………………………………………….. 93
Итоги…………………………………………………………………………………………………………………………………………… 95
Глава 4. Обучающие данные…………………………………………………………………. 98
Семплирование………………………………………………………………………………………………………………………….. 99
Невероятностное семплирование…………………………………………………………………………………. 99
Простое случайное семплирование……………………………………………………………………………. 101
Стратифицированное семплирование………………………………………………………………………… 101
Взвешенное семплирование………………………………………………………………………………………… 101
Резервуарное семплирование……………………………………………………………………………………… 102
Семплирование по важности………………………………………………………………………………………. 103
Разметка……………………………………………………………………………………………………………………………………. 104
Ручные метки………………………………………………………………………………………………………………… 104
Множественность меток………………………………………………………………………………………. 105
Родословная данных……………………………………………………………………………………………. 106
Естественные метки……………………………………………………………………………………………………… 107
Длина петли обратной связи……………………………………………………………………………….. 109
Справляемся с недостатками меток……………………………………………………………………………. 110
Слабый контроль…………………………………………………………………………………………………. 111
Частичный контроль……………………………………………………………………………………………. 114
Трансферное обучение………………………………………………………………………………………… 115
Активное обучение………………………………………………………………………………………………. 116
Несбалансированность классов…………………………………………………………………………………………….. 118
Проблемы несбалансированности классов……………………………………………………………….. 118
Справляемся с несбалансированностью классов……………………………………………………… 120
Использование правильных оценочных метрик……………………………………………….. 121
Методы уровня данных: ресемплинг…………………………………………………………………. 124
Методы уровня алгоритма………………………………………………………………………………….. 125
Обучение с учетом затрат…………………………………………………………………………… 126
Потеря, сбалансированная по классу……………………………………………………….. 126
Фокальная потеря………………………………………………………………………………………… 127
Аугментация данных……………………………………………………………………………………………………………….. 128
Простые преобразования с сохранением меток………………………………………………………… 128
Возмущения…………………………………………………………………………………………………………………… 129
Синтез данных………………………………………………………………………………………………………………. 131
Итоги…………………………………………………………………………………………………………………………………………. 132
Глава 5. Конструирование признаков………………………………………………….. 135
Признаки сконструированные или автоматически генерируемые?……………………………………. 135
Общий обзор методов конструирования признаков…………………………………………………………….. 138
Обработка отсутствующих значений…………………………………………………………………………. 138
Удаление пропусков…………………………………………………………………………………………….. 140
Заполнение пропусков…………………………………………………………………………………………. 141
Масштабирование……………………………………………………………………………………………………….. 141
Дискретизация………………………………………………………………………………………………………………. 143
Кодирование категориальных признаков………………………………………………………………….. 144
Пересечение признаков………………………………………………………………………………………………… 146
Дискретный и непрерывный позиционный эмбеддинг……………………………………………… 147
Утечка данных…………………………………………………………………………………………………………………………. 149
Основные причины утечки данных…………………………………………………………………………….. 151
Случайная разбивка коррелированных по времени данных вместо разбивки по времени 151
Масштабирование перед разделением………………………………………………………………. 152
Заполнение отсутствующих данных статистикой из тестовой части…………….. 152
Плохая обработка дублированных данных перед разделением…………………….. 152
Групповая утечка…………………………………………………………………………………………………. 153
Утечка из процесса генерации данных………………………………………………………………. 153
Обнаружение утечек данных………………………………………………………………………………………. 154
Конструирование хороших признаков………………………………………………………………………………….. 154
Важность признаков…………………………………………………………………………………………………….. 155
Обобщение признаков………………………………………………………………………………………………….. 157
Итоги…………………………………………………………………………………………………………………………………………. 158
Глава 6. Разработка модели и ее автономная оценка……………………………. 161
Разработка и обучение модели………………………………………………………………………………………………. 162
Оценка ML-моделей……………………………………………………………………………………………………… 162
Шесть шагов по выбору модели…………………………………………………………………………. 163
Избегайте ловушки «хочу самое новое»……………………………………………………. 164
Начните с простых моделей……………………………………………………………………….. 164
Избегайте предубеждений при выборе модели………………………………………… 165
Оценивайте хорошую производительность в сравнении с предыдущими хорошими показателями производительности……………………………………………………………………………………. 165
Проанализируйте компромиссы………………………………………………………………… 166
Поймите предположения вашей модели……………………………………………………. 167
Ансамбли………………………………………………………………………………………………………………………. 168
Бэггинг…………………………………………………………………………………………………………………… 170
Бустинг………………………………………………………………………………………………………………….. 171
Стекинг………………………………………………………………………………………………………………….. 172
Отслеживание экспериментов и управление версиями…………………………………………….. 173
Отслеживание экспериментов…………………………………………………………………………….. 173
Управление версиями…………………………………………………………………………………………… 175
Отладка ML-моделей…………………………………………………………………………………………… 176
Распределенное обучение……………………………………………………………………………………………. 179
Параллелизм данных…………………………………………………………………………………………… 180
Параллелизм моделей………………………………………………………………………………………….. 181
AutoML………………………………………………………………………………………………………………………….. 183
Программная часть AutoML: настройка гиперпараметров…………………………….. 183
Аппаратная часть AutoML: архитектурный поиск и оптимизаторы обучения 185
Четыре этапа разработки ML-модели………………………………………………………………………… 186
Этап 1. До машинного обучения………………………………………………………………………… 187
Этап 2. Простейшие ML-модели…………………………………………………………………………. 187
Этап 3. Оптимизация простых моделей……………………………………………………………… 188
Этап 4. Сложные модели…………………………………………………………………………………….. 188
Автономная оценка модели…………………………………………………………………………………………………….. 188
Базовые конфигурации………………………………………………………………………………………………… 189
Методы оценки……………………………………………………………………………………………………………… 191
Тест на возмущение……………………………………………………………………………………………… 191
Тест на инвариантность………………………………………………………………………………………. 192
Тест на ожидаемые изменения……………………………………………………………………………. 192
Калибровка модели……………………………………………………………………………………………… 193
Оценка достоверности…………………………………………………………………………………………. 194
Оценка на основе срезов……………………………………………………………………………………… 195
Итоги…………………………………………………………………………………………………………………………………………. 198
Глава 7. Развертывание модели и совершенствование
ее сервиса прогнозирования…………………………………………………………………. 201
Мифы о развертывании ML……………………………………………………………………………………………………. 203
Миф 1: вы можете развертывать только одну или две модели за раз……………………… 203
Миф 2: если мы ничего не делаем, производительность модели
остается такой же…………………………………………………………………………………………………………. 204
Миф 3: нет нужды в частом обновлении модели………………………………………………………. 205
Миф 4: большинству ML-инженеров не нужно беспокоиться
о масштабировании……………………………………………………………………………………………………… 205
Пакетное прогнозирование или онлайн-прогнозирование?………………………………………………… 206
От пакетного прогнозирования к онлайн-прогнозированию……………………………………. 209
Объединение пакетного и потокового конвейеров……………………………………………………. 211
Сжатие модели…………………………………………………………………………………………………………………………. 213
Низкоранговая факторизация……………………………………………………………………………………… 214
Дистилляция знаний…………………………………………………………………………………………………….. 215
Прунинг…………………………………………………………………………………………………………………………. 215
Квантизация………………………………………………………………………………………………………………….. 216
ML в облаке и на периферийных устройствах……………………………………………………………………… 218
Компиляция и оптимизация модели под граничные устройства……………………………… 220
Оптимизация модели……………………………………………………………………………………………. 222
Использование ML для оптимизации ML………………………………………………………….. 224
ML в браузерах…………………………………………………………………………………………………………….. 227
Итоги…………………………………………………………………………………………………………………………………………. 228
Глава 8. Сдвиги в распределении данных и мониторинг……………………… 232
Причины сбоев ML-систем……………………………………………………………………………………………………… 233
Сбои программной системы………………………………………………………………………………………… 234
Сбои, характерные для ML…………………………………………………………………………………………. 235
Данные в производстве отличаются от данных при обучении……………………….. 235
Граничные случаи……………………………………………………………………………………………….. 237
Вырожденные петли обратной связи…………………………………………………………………. 238
Обнаружение вырожденных петель обратной связи……………………………….. 240
Исправление вырожденных петель обратной связи…………………………………. 240
Сдвиги в распределении данных……………………………………………………………………………………………. 242
Типы сдвигов данных…………………………………………………………………………………………………… 242
Ковариационный сдвиг……………………………………………………………………………………….. 243
Сдвиг меток…………………………………………………………………………………………………………… 245
Концептуальный дрейф……………………………………………………………………………………….. 245
Общие сдвиги в распределении данных…………………………………………………………………….. 246
Обнаружение сдвигов в распределении данных……………………………………………………….. 247
Статистические методы………………………………………………………………………………………. 247
Временные рамки окон для обнаружения сдвигов……………………………………………. 249
Устранение сдвигов распределения данных……………………………………………………………… 252
Мониторинг и наблюдаемость……………………………………………………………………………………………….. 254
Специфичные для мониторинга ML метрики…………………………………………………………….. 255
Мониторинг метрик, связанных с точностью……………………………………………………. 255
Мониторинг прогнозов………………………………………………………………………………………… 256
Мониторинг признаков………………………………………………………………………………………… 257
Мониторинг сырых данных………………………………………………………………………………… 259
Инструменты мониторинга………………………………………………………………………………………….. 260
Журналы……………………………………………………………………………………………………………….. 260
Информационные панели……………………………………………………………………………………. 261
Оповещения…………………………………………………………………………………………………………… 262
Наблюдаемость……………………………………………………………………………………………………………. 263
Итоги…………………………………………………………………………………………………………………………………………. 265
Глава 9. Непрерывное обучение и тестирование в производстве………….. 268
Непрерывное обучение…………………………………………………………………………………………………………… 269
Переобучение без сохранения состояния или обучение с его сохранением?…………. 270
Почему нужно непрерывное обучение?……………………………………………………………………… 272
Проблемы непрерывного обучения…………………………………………………………………………….. 274
Доступ к свежим данным…………………………………………………………………………………….. 274
Оценка…………………………………………………………………………………………………………………… 276
Алгоритмы…………………………………………………………………………………………………………….. 277
Четыре этапа непрерывного обучения……………………………………………………………………….. 278
Этап 1: ручное переобучение без сохранения состояния………………………………… 278
Этап 2: автоматизированное переобучение……………………………………………………… 279
Требования…………………………………………………………………………………………………… 280
Этап 3: автоматизированное обучение с сохранением состояния………………….. 281
Требования…………………………………………………………………………………………………… 281
Этап 4: непрерывное обучение…………………………………………………………………………… 282
Требования…………………………………………………………………………………………………… 282
Как часто надо обновлять модели?……………………………………………………………………………. 282
Ценность свежих данных…………………………………………………………………………………….. 283
Итерация данных или итерация моделей?…………………………………………………………. 284
Тестирование в производстве…………………………………………………………………………………………………. 284
Теневое развертывание………………………………………………………………………………………………… 285
A/B-тестирование…………………………………………………………………………………………………………. 286
Канареечный релиз………………………………………………………………………………………………………. 287
Тестирование чередованием……………………………………………………………………………………….. 288
Бандиты…………………………………………………………………………………………………………………………. 290
Контекстные бандиты как стратегия исследования…………………………………………. 291
Итоги…………………………………………………………………………………………………………………………………………. 293
Глава 10. Инфраструктура и инструменты для MLOps…………………………. 296
Хранение и вычисление…………………………………………………………………………………………………………… 299
Публичное облако или собственный ЦОД?……………………………………………………………….. 302
Среда разработки……………………………………………………………………………………………………………………. 305
Настройка среды разработки……………………………………………………………………………………… 305
IDE…………………………………………………………………………………………………………………………. 306
Стандартизация среды разработки……………………………………………………………………………. 308
От разработки к производству: контейнеры………………………………………………………………. 310
Управление ресурсами……………………………………………………………………………………………………………. 313
Cron, планировщик и оркестратор……………………………………………………………………………… 313
Управление рабочим процессом обработки данных………………………………………………… 316
ML-платформа…………………………………………………………………………………………………………………………. 321
Развертывание модели…………………………………………………………………………………………………. 322
Хранилища моделей…………………………………………………………………………………………………….. 323
Хранилища признаков…………………………………………………………………………………………………. 327
Создать или купить?…………………………………………………………………………………………………….. 329
Итоги…………………………………………………………………………………………………………………………………………. 331
Глава 11. Человеческая сторона машинного обучения…………………………. 334
Пользовательский опыт…………………………………………………………………………………………………………… 334
Обеспечение согласованности……………………………………………………………………………………. 335
Борьба с «преимущественно верными» прогнозами…………………………………………………. 335
Система бэкапов…………………………………………………………………………………………………………… 337
Структура команды…………………………………………………………………………………………………………………. 337
Кросс-функциональное взаимодействие между командами…………………………………….. 338
«Универсальные» специалисты по обработке данных…………………………………………….. 339
Подход 1: создание отдельных команд для управления процессами…………….. 339
Подход 2: специалисты по обработке данных управляют всем процессом…… 340
Ответственный ИИ…………………………………………………………………………………………………………………… 342
Безответственный ИИ: исследования инцидентов…………………………………………………….. 343
Пример 1: предвзятость автоматизированной оценки……………………………………… 344
Провал 1: постановка неправильной цели………………………………………………… 345
Провал 2: недостаточная оценка присущих модели предубеждений……. 345
Провал 3: отсутствие прозрачности………………………………………………………….. 346
Пример 2: опасность «анонимизированных» данных………………………………………. 347
Советы по созданию ответственного ИИ……………………………………………………………………. 349
Выясните источники искажений модели……………………………………………………………. 349
Поймите ограничения подхода, основанного на данных………………………………… 351
Оцените компромиссы между разными пожеланиями……………………………………… 351
Продумывайте всё заранее………………………………………………………………………………….. 352
Создайте карточки моделей………………………………………………………………………………… 353
Установите процессы для смягчения смещений………………………………………………… 354
Будьте в курсе тенденций ответственного ИИ…………………………………………………… 355
Итоги…………………………………………………………………………………………………………………………………………. 355
Заключение………………………………………………………………………………………….. 358
Предметный указатель…………………………………………………………………………. 359
Об авторе……………………………………………………………………………………………… 365
Об обложке…………………………………………………………………………………………… 366

Чип Хьюен – основательница компании Claypot AI. Занималась разработкой систем машинного обучения в компаниях NVIDIA, Snorkel AI, Netflix, Primer, преподаёт в Стэнфордском университете курс CS 329S по проектированию систем машинного обучения.
-
Проектирование систем машинного обучения
1125 ₽
956 ₽