Опубликовано

“Машинное обучение для приложений высокого риска: подходы к ответственному искусственному интеллекту”

Машинное обучение для приложений высокого риска

Книга представляет собой комплексное руководство по применению искусственного интеллекта и машинного обучения (ИИ/ML)  с целью снижения рисков для современного бизнеса, связанного с использованием этих технологий. Рассмотрены основы управления рисками и компьютерной безопасности, нормативные акты, ответственность за качество продуктов, основанных на ML, а также объяснимые модели и методы их проверки, включая новый фреймворк управления рисками NIST AI. Читателю предложен углубленный взгляд на программирование с использованием Python и  подробными примерами для структурированных и неструктурированных данных. Особое внимание уделяется объяснимым бустинговым машинам, библиотеке XGBoost и методам повышения качества моделей ML. Представлены основанные на реальном опыте советы о том, как организовать успешную работу с приложениями высокого риска. Приведены практические примеры, иллюстрирующие важность и сложность внедрения ML в различных отраслях.

За последнее десятилетие мы стали свидетелями широкого внедрения технологий искусственного интеллекта и машинного обучения (ИИ/ML). Однако отсутствие контроля над их повсеместным внедрением привело к различным инцидентам с пагубными последствиями, которых можно было бы избежать при правильном управлении рисками. Прежде чем мы сможем реализовать истинные преимущества ИИ/ML, специалисты должны понять, как снизить риски, связанные с этой технологией.

В рамках подходов к ответственному использованию ИИ в книге описана целостная структура для улучшения технологии ИИ/МО, бизнес-процессов и культурных компетенций, основанная на лучших практиках управления рисками, кибербезопасности, конфиденциальности данных и прикладных социальных наук.

Авторы создали это руководство для специалистов по работе с данными, которые хотят улучшить работу систем ИИ и ML для организаций, потребителей и общества в целом.

  • Изучите технические методы разработки ответственного ИИ в таких вопросах как объяснимость, проверка и отладка моделей, управление предвзятостью, конфиденциальность данных и безопасность ML
  • Уделите особое внимание объяснимым бустинговым машинам, библиотеке XGBoost и методам повышения качества моделей
  • Узнайте, как создать успешную и эффективную систему управления рисками
  • Ознакомьтесь с обзором действующих стандартов, законов и критериев оценки технологий ИИ, включая новый фреймворк управления рисками NIST AI
  • Воспользуйтесь наглядными примерами углубленного программирования на Python , а также интерактивными ресурсами на GitHub и Colab

Книгу “Машинное обучение для приложений высокого риска: подходы к ответственному искусственному интеллекту” можно купить в нашем интенет-магазине.

Краткое оглавление…………………………………………………………………………………. 5

Отзывы о книге……………………………………………………………………………………… 15

Предисловие…………………………………………………………………………………………… 19

Введение………………………………………………………………………………………………… 21

Кому адресована эта книга………………………………………………………………………………………………………. 22

Что вы узнаете из этой книги…………………………………………………………………………………………………….. 22

Соответствие системе управления рисками искусственного интеллекта NIST………… 24

Структура книги………………………………………………………………………………………………………………………… 25

Часть I……………………………………………………………………………………………………………………………… 25

Часть II…………………………………………………………………………………………………………………………….. 26

Часть III…………………………………………………………………………………………………………………………… 26

Примеры наборов данных………………………………………………………………………………………………………… 26

Кредитные данные Тайваня………………………………………………………………………………………….. 27

Данные рентгенографии грудной клетки Kaggle………………………………………………………….. 28

Условные обозначения, принятые в этой книге………………………………………………………………………. 29

Архив с иллюстрациями к книге……………………………………………………………………………………………….. 29

Благодарности…………………………………………………………………………………………………………………………… 30

Часть I. Теория и практика управления рисками в приложениях ИИ            31

Глава 1. Современное управление рисками в ML…………………………………… 33

Обзор нормативно-правовой базы…………………………………………………………………………………………… 34

Закон ЕС об искусственном интеллекте……………………………………………………………………….. 34

Федеральные законы и правила США………………………………………………………………………….. 35

Государственные и муниципальные законы……………………………………………………………….. 36

Изначальная ответственность за качество продукта………………………………………………….. 37

Правоприменительная практика Федеральной торговой комиссии………………………….. 38

Авторитетные методики……………………………………………………………………………………………………………. 39

Инциденты с ИИ…………………………………………………………………………………………………………………………. 41

Культурные аспекты управления рисками машинного обучения………………………………………… 44

Организационная ответственность……………………………………………………………………………….. 44

Культура эффективного испытания……………………………………………………………………………… 46

Разнообразные и опытные команды…………………………………………………………………………….. 46

Испытание продукта на себе…………………………………………………………………………………………. 47

Двигайтесь быстро и ломайте устои…………………………………………………………………………….. 47

Организационные процессы управления рисками машинного обучения…………………………….. 48

Прогнозирование возможных отказов………………………………………………………………………….. 48

Известные отказы…………………………………………………………………………………………………… 49

Неспособность предвидения…………………………………………………………………………………. 49

Процессы управления модельными рисками……………………………………………………………….. 50

Уровни риска………………………………………………………………………………………………………….. 50

Документация модели……………………………………………………………………………………………. 51

Мониторинг модели……………………………………………………………………………………………….. 52

Инвентарный учет моделей…………………………………………………………………………………… 53

Проверка системы и аудит процессов………………………………………………………………….. 53

Управление изменениями………………………………………………………………………………………. 54

За пределами управления модельными рисками………………………………………………………… 54

Аудит и оценка модели………………………………………………………………………………………….. 55

Оценка воздействия………………………………………………………………………………………………… 55

Подача апелляции, отмена решения и отказ от участия……………………………………. 56

Парное и двойное программирование………………………………………………………………….. 56

Ограничение полномочий при развертывании модели………………………………………. 57

Награда за обнаружение ошибок…………………………………………………………………………. 57

Реагирование на инциденты с ИИ…………………………………………………………………………. 58

Пример: взлет и падение iBuying от Zillow………………………………………………………………………………. 60

Последствия…………………………………………………………………………………………………………………….. 61

Какие уроки мы можем извлечь?…………………………………………………………………………………… 61

Ресурсы……………………………………………………………………………………………………………………………………….. 64

Глава 2. Интерпретируемость и объяснимость……………………………………….. 65

Машинное обучение………………………………………………………………………………………………………………….. 65

Важные принципы интерпретируемости и объяснимости…………………………………………………….. 66

Объяснимые модели…………………………………………………………………………………………………………………… 71

Аддитивные модели……………………………………………………………………………………………………….. 71

Регрессия со штрафом……………………………………………………………………………………………. 71

Обобщенные аддитивные модели…………………………………………………………………………. 75

GA2M и объяснимые бустерные машины……………………………………………………………. 76

Деревья решений…………………………………………………………………………………………………………….. 76

Одиночные деревья решений………………………………………………………………………………… 76

Ограниченные модели XGBoost……………………………………………………………………………. 79

Экосистема объяснимых моделей машинного обучения……………………………………………. 79

Апостериорное объяснение………………………………………………………………………………………………………. 82

Атрибуция и важность признаков…………………………………………………………………………………. 83

Локальные объяснения и атрибуция признаков………………………………………………….. 84

Глобальная значимость признака………………………………………………………………………… 91

Суррогатные модели……………………………………………………………………………………………………… 95

Суррогатные модели дерева решений…………………………………………………………………. 95

Линейные модели и локально интерпретируемые объяснения………………………….. 97

Якоря и правила……………………………………………………………………………………………………… 99

Графическое представление характеристик модели………………………………………………….. 99

Частичная зависимость и индивидуальное условное ожидание……………………….. 99

Накопленный локальный эффект……………………………………………………………………….. 102

Профилирование кластеров………………………………………………………………………………………… 102

Трудноразрешимые проблемы апостериорного объяснения на практике…………………………. 103

Сочетание объяснимых моделей и апостериорных объяснений………………………………………… 107

Пример: алгоритмическая корректировка оценок………………………………………………………………… 109

Ресурсы…………………………………………………………………………………………………………………………………….. 112

Глава 3. Отладка систем машинного обучения…………………………………….. 113

Обучение…………………………………………………………………………………………………………………………………… 114

Воспроизводимость……………………………………………………………………………………………………… 115

Качество данных………………………………………………………………………………………………………….. 116

Спецификация модели для вывода в реальных условиях…………………………………………. 121

Бенчмарки и их альтернативы……………………………………………………………………………. 121

Калибровка…………………………………………………………………………………………………………… 121

Конструктная валидность…………………………………………………………………………………… 122

Предположения и ограничения…………………………………………………………………………… 123

Функции потерь по умолчанию………………………………………………………………………….. 123

Множественные сравнения…………………………………………………………………………………. 123

Будущее безопасного и надежного машинного обучения……………………………….. 124

Отладка модели……………………………………………………………………………………………………………………….. 124

Тестирование программного обеспечения…………………………………………………………………. 125

Традиционная оценка модели…………………………………………………………………………………….. 126

Распространенные ошибки ML…………………………………………………………………………………… 128

Смещение распределений……………………………………………………………………………………. 128

Эпистемическая неопределенность и разреженность данных………………………… 129

Нестабильность……………………………………………………………………………………………………. 130

Утечка……………………………………………………………………………………………………………………. 131

Петля обратной связи…………………………………………………………………………………………… 132

Переобучение……………………………………………………………………………………………………….. 132

Ложное обучение…………………………………………………………………………………………………. 133

Недостаточное обучение…………………………………………………………………………………….. 134

Неполная идентификация……………………………………………………………………………………. 134

Анализ остатков……………………………………………………………………………………………………………. 137

Анализ и визуализация остатков………………………………………………………………………… 137

Моделирование остатков……………………………………………………………………………………. 138

Локальный вклад в остатки…………………………………………………………………………………. 139

Анализ чувствительности……………………………………………………………………………………………. 141

Эталонные модели……………………………………………………………………………………………………….. 144

Исправление ошибок……………………………………………………………………………………………………. 145

Развертывание………………………………………………………………………………………………………………………….. 148

Безопасность в предметной области………………………………………………………………………….. 148

Мониторинг модели……………………………………………………………………………………………………… 150

Устаревание модели и дрейф концепта……………………………………………………………… 150

Обнаружение и устранение дрейфа……………………………………………………………………. 151

Мониторинг нескольких ключевых показателей эффективности……………………. 152

Значения вне диапазона………………………………………………………………………………………. 152

Обнаружение аномалий и эталонные модели…………………………………………………… 152

Аварийные выключатели…………………………………………………………………………………….. 153

Пример: смерть от автономного транспортного средства…………………………………………………… 154

Последствия………………………………………………………………………………………………………………….. 154

Неподготовленная правовая система…………………………………………………………………………. 154

Какие уроки мы можем извлечь?…………………………………………………………………………………. 155

Ресурсы…………………………………………………………………………………………………………………………………….. 156

Глава 4. Борьба с предвзятостью в машинном обучении……………………… 157

Определения предвзятости в ISO и NIST……………………………………………………………………………….. 159

Системная предвзятость………………………………………………………………………………………………. 160

Статистическая предвзятость……………………………………………………………………………………… 160

Человеческая предвзятость и культура науки о данных………………………………………….. 160

Правовые понятия предвзятости ML в США…………………………………………………………………………. 162

Кто обычно страдает от предвзятости систем ML……………………………………………………………….. 165

Ущерб от предвзятости, который испытывают люди…………………………………………………………… 167

Тестирование на предвзятость……………………………………………………………………………………………….. 169

Проверка данных………………………………………………………………………………………………………….. 169

Традиционные подходы: тестирование эквивалентных результатов…………………….. 172

Тестирование статистической значимости……………………………………………………….. 174

Проверка практической значимости………………………………………………………………….. 174

Новый взгляд: тестирование эквивалентности качества работы…………………………….. 176

Чего нам ожидать: тесты для более широкой экосистемы машинного обучения….. 178

Сводный план тестирования……………………………………………………………………………………….. 181

Смягчение предвзятости………………………………………………………………………………………………………….. 183

Технические факторы смягчения предвзятости…………………………………………………………. 184

Научный подход и план эксперимента………………………………………………………………………. 184

Методы смягчения предвзятости………………………………………………………………………………… 186

Человеческий фактор в смягчении предвзятости……………………………………………………….. 190

Пример: вознаграждение за выявленные ошибки предвзятости…………………………………………. 193

Ресурсы…………………………………………………………………………………………………………………………………….. 196

Глава 5. Безопасность машинного обучения………………………………………… 197

Основы безопасности………………………………………………………………………………………………………………. 199

Состязательное мышление………………………………………………………………………………………….. 199

Триада CIA……………………………………………………………………………………………………………………. 200

Лучшие методы обеспечения безопасности для специалистов по данным……………. 201

Атаки на системы ML……………………………………………………………………………………………………………… 204

Атаки на целостность: манипулирование результатами машинного обучения…….. 204

Примеры состязательных атак……………………………………………………………………………. 205

Бэкдор-атаки………………………………………………………………………………………………………… 205

Атаки с отравлением данных……………………………………………………………………………… 206

Атаки путем подмены личности и уклонения……………………………………………………. 207

Атаки на объяснения машинного обучения………………………………………………………. 208

Атаки на конфиденциальность: извлеченная информация………………………………………. 209

Атаки извлечения и инверсии модели………………………………………………………………… 209

Атаки с выводом о членстве………………………………………………………………………………… 210

Общие проблемы безопасности ML………………………………………………………………………………………. 211

Меры противодействия…………………………………………………………………………………………………………… 214

Отладка модели в целях безопасности………………………………………………………………………. 214

Поиск состязательных примеров и анализ чувствительности…………………………. 214

Аудит на предмет инсайдерского отравления данных…………………………………….. 215

Тестирование на предвзятость……………………………………………………………………………. 215

Этический взлом: атаки с извлечением моделей……………………………………………….. 215

Мониторинг модели в целях безопасности………………………………………………………………… 216

Технологии повышения конфиденциальности…………………………………………………………… 218

Федеративное обучение………………………………………………………………………………………. 218

Дифференциальная приватность………………………………………………………………………… 218

Робастное машинное обучение…………………………………………………………………………………… 221

Универсальные контрмеры………………………………………………………………………………………….. 221

Пример: реальные атаки уклонения………………………………………………………………………………………. 224

Атаки уклонения…………………………………………………………………………………………………………… 224

Какие уроки мы можем извлечь?…………………………………………………………………………………. 225

Ресурсы…………………………………………………………………………………………………………………………………….. 226

Часть II. Управление рисками ИИ в действии……………………. 227

Глава 6. Объяснимые бустинговые машины и модели XGBoost…………… 229

Уточнение определений и прозрачность машинного обучения………………………………………….. 229

Аддитивность или взаимодействия…………………………………………………………………………….. 230

Переход к причинно-следственной связи с ограничениями……………………………………… 231

Частичная зависимость и индивидуальное условное ожидание……………………………… 231

Значения Шепли…………………………………………………………………………………………………………… 234

Документация модели………………………………………………………………………………………………….. 235

Семейство объяснимых моделей GAM………………………………………………………………………………….. 236

Elastic Net — штрафуемая GLM с альфа- и лямбда-поиском……………………………………. 236

Обобщенные аддитивные модели……………………………………………………………………………….. 239

GA2M и объяснимые бустинговые машины………………………………………………………………. 244

XGBoost с ограничениями и апостериорными пояснениями……………………………………………….. 247

XGBoost с ограничениями и без ограничений……………………………………………………………. 247

Объяснение поведения модели с помощью частичной зависимости и ICE…………….. 253

Суррогатные модели дерева решений как метод объяснения………………………………….. 255

Пояснения на основе значений Шепли……………………………………………………………………….. 259

Проблемы со значениями Шепли………………………………………………………………………………… 262

Более информированный выбор модели……………………………………………………………………. 266

Ресурсы…………………………………………………………………………………………………………………………………….. 268

Глава 7. Объяснение классификатора изображений PyTorch……………….. 271

Как работает классификация рентгенограмм грудной клетки……………………………………………. 272

Новый взгляд на объяснимые модели и методы апостериорного объяснения…………………… 273

Обзор объяснимых моделей………………………………………………………………………………………… 273

Методы окклюзии…………………………………………………………………………………………………………. 274

Градиентные методы……………………………………………………………………………………………………. 274

Объяснимый ИИ для отладки моделей……………………………………………………………………….. 275

Объяснимые модели………………………………………………………………………………………………………………… 275

ProtoPNet и ее варианты………………………………………………………………………………………………. 276

Другие объяснимые модели глубокого обучения……………………………………………………… 277

Обучение и объяснение классификатора изображений PyTorch………………………………………… 278

Обучающие данные……………………………………………………………………………………………………… 278

Решение проблемы дисбаланса наборов данных……………………………………………………… 279

Дополнение данных и обрезка изображений…………………………………………………………….. 280

Обучение модели………………………………………………………………………………………………………….. 282

Оценка и метрики………………………………………………………………………………………………………….. 284

Создание апостериорных объяснений с помощью Captum……………………………………… 284

Окклюзия……………………………………………………………………………………………………………………….. 285

input*gradient………………………………………………………………………………………………………… 286

Интегрированные градиенты………………………………………………………………………………. 287

Послойное распространение релевантности…………………………………………………….. 289

Оценка пояснений модели……………………………………………………………………………………………. 290

Надежность апостериорных объяснений…………………………………………………………………… 291

Заключение………………………………………………………………………………………………………………………………. 295

Ресурсы…………………………………………………………………………………………………………………………………….. 296

Глава 8. Выбор и отладка моделей XGBoost…………………………………………. 299

Уточнение определений: отладка моделей ML……………………………………………………………………. 299

Выбор модели……………………………………………………………………………………………………………….. 300

Анализ чувствительности……………………………………………………………………………………………. 300

Анализ остатков……………………………………………………………………………………………………………. 302

Исправление………………………………………………………………………………………………………………….. 303

Выбор лучшей модели XGBoost…………………………………………………………………………………………….. 304

Анализ чувствительности XGBoost……………………………………………………………………………………….. 309

Стресс-тестирование модели XGBoost………………………………………………………………………. 310

Методика стресс-тестирования…………………………………………………………………………………… 311

Изменение данных для моделирования условий рецессии………………………………………. 312

Поиск состязательных примеров………………………………………………………………………………… 314

Анализ остатков для XGBoost………………………………………………………………………………………………… 318

Анализ и визуализация остатков………………………………………………………………………………… 319

Сегментный анализ ошибок………………………………………………………………………………………… 323

Моделирование остатков…………………………………………………………………………………………….. 325

Исправление выбранной модели……………………………………………………………………………………………. 327

Чрезмерная важность признака PAY_0………………………………………………………………………. 328

Разные ошибки……………………………………………………………………………………………………………… 330

Заключение………………………………………………………………………………………………………………………………. 333

Ресурсы…………………………………………………………………………………………………………………………………….. 334

Глава 9. Отладка классификатора изображений PyTorch…………………….. 335

Уточнение понятий: отладка моделей DL…………………………………………………………………………….. 337

Отладка классификатора изображений PyTorch………………………………………………………………….. 341

Качество данных и утечки…………………………………………………………………………………………… 341

Тестирование программного обеспечения для DL……………………………………………………. 343

Анализ чувствительности моделей DL……………………………………………………………………….. 344

Тестирование на смещение домена и субпопуляции………………………………………… 345

Примеры состязательных атак……………………………………………………………………………. 349

Возмущение вычислительных гиперпараметров………………………………………………. 352

Устранение проблем…………………………………………………………………………………………………….. 352

Исправление данных……………………………………………………………………………………………. 353

Исправления программного обеспечения………………………………………………………….. 355

Исправления чувствительности………………………………………………………………………………….. 359

Внесение шума……………………………………………………………………………………………………… 359

Другие способы улучшения стабильности………………………………………………………… 360

Заключение………………………………………………………………………………………………………………………………. 363

Ресурсы…………………………………………………………………………………………………………………………………….. 364

Глава 10. Тестирование и исправление предвзятости
с помощью XGBoost……………………………………………………………………………… 365

Уточнение понятий: управление предвзятостью в ML………………………………………………………… 366

Обучение модели………………………………………………………………………………………………………….. 369

Оценка моделей на предмет предвзятости…………………………………………………………………………….. 373

Способы тестирования для групп……………………………………………………………………………….. 374

Тестирование качества прогнозов……………………………………………………………………… 376

Традиционное тестирование показателей исходов………………………………………….. 381

Индивидуальная справедливость……………………………………………………………………………….. 384

Опосредованная предвзятость…………………………………………………………………………………….. 388

Исправление предвзятости……………………………………………………………………………………………………… 389

Предварительная обработка……………………………………………………………………………………….. 390

Внутренняя обработка…………………………………………………………………………………………………. 394

Постобработка……………………………………………………………………………………………………………… 398

Выбор модели……………………………………………………………………………………………………………….. 399

Заключение………………………………………………………………………………………………………………………………. 404

Ресурсы…………………………………………………………………………………………………………………………………….. 406

Глава 11. Атака красной команды на XGBoost……………………………………. 407

Уточнение понятий………………………………………………………………………………………………………………….. 408

Триада CIA……………………………………………………………………………………………………………………. 408

Атаки……………………………………………………………………………………………………………………………… 409

Контрмеры…………………………………………………………………………………………………………………….. 411

Обучение модели……………………………………………………………………………………………………………………… 412

Атаки с участием красной команды………………………………………………………………………………………. 417

Атаки с извлечением моделей……………………………………………………………………………………… 417

Атаки с состязательными примерами…………………………………………………………………………. 421

Атаки вывода о членстве……………………………………………………………………………………………… 423

Отравление данных……………………………………………………………………………………………………… 425

Бэкдоры…………………………………………………………………………………………………………………………. 427

Заключение………………………………………………………………………………………………………………………………. 431

Ресурсы…………………………………………………………………………………………………………………………………….. 432

Часть III. Заключение…………………………………………………………………. 435

Глава 12. Как добиться успеха в машинном обучении высокого риска.. 437

Кто в команде?…………………………………………………………………………………………………………………………. 438

Наука или техника?…………………………………………………………………………………………………………………. 440

Метод анализа данных………………………………………………………………………………………………… 440

Научный метод…………………………………………………………………………………………………………….. 442

Оценка опубликованных результатов и заявлений………………………………………………………………. 443

Применяйте внешние стандарты……………………………………………………………………………………………. 445

Смягчение рисков на основе здравого смысла……………………………………………………………………… 448

Заключение………………………………………………………………………………………………………………………………. 452

Ресурсы…………………………………………………………………………………………………………………………………….. 452

Предметный указатель…………………………………………………………………………. 453

Об авторах……………………………………………………………………………………………. 457

Об изображении на обложке………………………………………………………………… 459

Опубликовано

Искусственный интеллект для периферийных устройств: осваиваем встраиваемые системы для машинного обучения

Искусственный интеллект для периферийных устройств

В книге исследованы возможности использования искусственного интеллекта при работе с периферийными устройствами, датчиками и Интернетом вещей. Рассмотрены алгоритмы, применяемые при реализации периферийного ИИ, паттерны проектирования программных и аппаратных компонентов Интернета вещей, рассчитанных на последующее машинное обучение. Продемонстрировано, как подбирать и фильтровать данные, развертывать, развивать и поддерживать сети умных устройств.

Для специалистов по искусственному интеллекту и Интернету вещей

Животное на обложке книги “Искусственный интеллект для периферийных устройств” — сибирский горный козел (Capra sibirica). Особей этого вида можно встретить по всей Азии в таких странах, как Российская Федерация, Китай, Монголия, Пакистан и Казахстан. Сибирские горные козлы — это, по сути, крупный вид диких козлов.

Парадигма периферийного, или пограничного, искусственного интеллекта (Edge AI) заставляет прямо сейчас пересматривать привычные принципы взаимодействия компьютеров с окружающей средой.

Устройства, объединенные в Интернет вещей (IoT) самостоятельно принимают решения, опираясь на те 99% сенсорных данных, которые ранее просто отбрасывались ради экономии средств, полосы передачи данных или из-за ограничений питания. При помощи таких технологий как машинное обучение для встраиваемых систем можно учитывать информацию о человеческом поведении и развертывать приложения на любой платформе – от исключительно маломощных микроконтроллеров до встраиваемых устройств, работающих под Linux.

Изучив это практическое руководство, разработчики-профессионалы, менеджеры по продукту и руководители смогут подобрать инструментарий для решения разнообразных промышленных, коммерческих и научных задач с применением периферийных вычислений. В книге исследованы все этапы рабочего процесса: сбор данных, оптимизация модели, тонкая настройка и тестирование модели. Изучив предложенный материал, можно уверенно проектировать и поддерживать устройства с искусственным интеллектом и программировать встраиваемые модули с возможностями машинного обучения. Авторы подробно разъясняют, как сориентироваться в этой формирующейся отрасли и приступить к коммерческим разработкам.

В этой книге:

  • Как наработать опыт в области машинного обучения и искусственного интеллекта для работы с периферийными устройствами
  • Как понять, какие проекты эффективнее всего выполняются с привлечением периферийного искусственного интеллекта
  • Какие ключевые паттерны применяются при проектировании приложений для периферийных вычислений на основе искусственного интеллекта
  • Как внедрить итеративный подход к разработке систем с искусственным интеллектом
  • Как собрать команду, обладающую всем спектром описанных в книге навыков и способную решать реальные задачи
  • Как ответственно подходить к разработке устройств, оснащённых искусственным интеллектом

Книгу “Искусственный интеллект для периферийных устройств: осваиваем встраиваемые системы для машинного обучения“.

Опубликовано

Машинное обучение с малым объемом кодирования: практическое введение в искусственный интеллект на основе проектов

Машинное обучение с малым объемом кодирования

В книге подробно представлены три проблемно-ориентированных вида машинного обучения (Machine learning, ML): автоматизированное обучение AutoML без кодирования, обучение BigQuery ML с малым объемом кодирования и обучение с применением пользовательского кода на основе библиотек scikit-learn и Keras. При этом от читателя не требуется глубоких предварительных знаний в ML или программировании, но базовые навыки в этих областях будут полезны.  Специализированные библиотеки, фреймворки ML, репозиторий GitHub  и другие инструменты описаны по мере их необходимости. В каждом конкретном случае ключевые концепции ML раскрыты с использованием реальных наборов данных для решения реальных задач. Рассмотрено применение AutoML для прогнозирования продаж, использование BigQuery ML для обучения линейных регрессионных моделей, обучение пользовательских ML-моделей на Python для прогнозирования оттока клиентов и ряд других популярных бизнес-кейсов.

Для студентов, начинающих ML-инженеров и аналитиков данных

Животное на обложке книги — это зеленая лягушка (Lithobates clamitans). Она способна издавать громкий звук “бонг”, который похож на звучание ослабленной струны банджо.

Вы узнаете:

  • Как различать структурированные и неструктурированные данные и разбираться с проблемами, которые могут встретиться
  • Как визуализировать и анализировать данные
  • Как предварительно обрабатывать данные для ввода в модель машинного обучения
  • Чем отличаются регрессионная и классификационная модели обучения с учителем
  • Как сравнивать различные типы моделей ML и их архитектуры, начиная с моделей без кода и с малым объемом кода и заканчивая моделями пользовательского обучения
  • Как проектировать, внедрять и настраивать модели ML
  • Как экспортировать данные в репозиторий GitHub для хранения и управления ими

Для кого предназначена книга

Цель этой книги — научить читателей формулировать задачи ML для струк-турированных (табличных) данных, подготавливать свои данные для рабочих процессов ML.
Вы также научитесь создавать и применять модели ML с помощью различных решений без кода, с малым объемом кода и с привлечением базовых пользовательских кодов.
Вы пройдете пошаговые процедуры, позволяющие понять эти решения в контексте конкретной бизнес-задачи.
Основная аудитория этой книги — специалисты по бизнес-анализу, аналитике данных, студенты и начинающие гражданские специалисты по обработке данных.
Книга будет интересна людям, которые стремятся очень быстро научиться применять ML в своей работе, используя такие инструменты, как автоматизированное машинное обучение (AutoML), BigQuery ML (с применением SQL) и пользовательское машинное обучение на Python. Предполагается, что читатель имеет некоторое базовое знакомство с анализом данных

Что есть и чего нет в этой книге

Эта книга была написана, чтобы помочь вам сделать первые шаги в мире ML, а не для того, чтобы превратить вас в эксперта. Мы не рассматриваем тео-рию ML в деталях и не охватываем все области статистики и математики, требующиеся высококвалифицированному специалисту по обработке данных. Мы излагаем теорию, необходимую для проектов, описываемых в этой книге, а обсуждение более сложных задач выходит за рамки данной книги. Однако мы даем много ссылок на ресурсы, где вы можете погрузиться в ма-териал, вызывающий у вас дополнительный интерес.

Книгу “Машинное обучение с малым объемом кодирования: практическое введение в искусственный интеллект на основе проектов“.

Отзывы на книгу………………………………………………………………………………………………………………………. 11

Предисловие……………………………………………………………………………………………………………………………. 13

Для кого предназначена эта книга?…………………………………………………………………………………………………. 14

Что есть и чего нет в этой книге………………………………………………………………………………………………………. 15

Соглашения об используемых обозначениях…………………………………………………………………………………… 16

Использование примеров кода……………………………………………………………………………………………………….. 16

Онлайн-обучение O’Reilly………………………………………………………………………………………………………………… 17

Наши контакты………………………………………………………………………………………………………………………………. 17

Благодарности……………………………………………………………………………………………………………………………….. 18

Глава 1. Влияние данных на принятие решений в машинном обучении…………………….. 19

Что такое цель или вариант использования ML?……………………………………………………………………………… 19

Рабочий процесс корпоративного ML………………………………………………………………………………………………. 22

Определение бизнес-цели или постановка задачи………………………………………………………………… 23

Сбор данных……………………………………………………………………………………………………………………….. 23

Предварительная обработка данных……………………………………………………………………………………. 25

Анализ данных……………………………………………………………………………………………………………………. 26

Преобразование данных и выбор признаков………………………………………………………………………… 27

Что предпочесть: выбор модели или автоматизированное ML (бескодовое решение)……………. 28

Обучение, оценка и настройка модели…………………………………………………………………………………. 29

Тестирование модели………………………………………………………………………………………………………….. 30

Развертывание модели (обслуживание)……………………………………………………………………………….. 31

Поддержание актуальности моделей……………………………………………………………………………………. 31

Резюме………………………………………………………………………………………………………………………………………….. 32

Глава 2. Первый шаг: данные……………………………………………………………………………………………….. 33

Примеры использования машинного обучения и подходящих к ним наборов данных………………………… 33

Пример 1. Розничная торговля: ценообразование………………………………………………………………… 34

Пример 2. Здравоохранение: кампания по профилактике сердечно-сосудистых заболеваний…. 34

Пример 3. Энергетика: кампания по маркетингу……………………………………………………………………. 35

Пример 4. Страхование: прогнозирование продаж на основе затрат на рекламу в различных медиаканалах           36

Пример 5. Финансы: выявление мошенничества………………………………………………………………….. 36

Пример 6. Энергетика: прогнозирование производства электроэнергии………………………………… 37

Пример 7. Телекоммуникации: прогнозирование оттока клиентов…………………………………………. 38

Пример 8. Автомобилестроение: улучшение эффективности пользовательской модели………… 38

Данные и типы файлов…………………………………………………………………………………………………………………… 39

Количественные и качественные данные…………………………………………………………………………….. 39

Структурированные, неструктурированные и слабоструктурированные данные…………………….. 40

Типы файлов данных………………………………………………………………………………………………………….. 41

Как обрабатываются данные……………………………………………………………………………………………….. 42

Обзор облачных сервисов GitHub и Google Colab……………………………………………………………………………… 43

Используйте GitHub для создания хранилища данных ваших проектов………………………………….. 43

Использование Google Colaboratory для проектов искусственного интеллекта
с малым объемом кода………………………………………………………………………………………………………… 46

Создание блокнота Colaboratory Python Jupyter……………………………………………………………. 47

Импорт библиотек и наборов данных с помощью Pandas……………………………………………… 47

Валидация данных………………………………………………………………………………………………………. 51

Небольшой разведочный анализ данных…………………………………………………………………….. 56

Резюме………………………………………………………………………………………………………………………………………….. 60

Глава 3. Библиотеки и фреймворки машинного обучения…………………………………………… 61

Автоматизированное машинное обучение (AutoML) без кодирования………………………………………………. 61

Как работает AutoML………………………………………………………………………………………………………………………. 69

Машинное обучение как сервис………………………………………………………………………………………………………. 73

ML-фреймворки с малым объемом кода………………………………………………………………………………………….. 77

ML-фреймворки с использованием языка структурированных запросов (SQL-ML)…………………. 77

Google BigQuery ML…………………………………………………………………………………………………….. 78

Amazon Aurora ML и Redshift ML………………………………………………………………………………….. 78

Библиотеки ML с открытым кодом………………………………………………………………………………………… 79

AutoKeras……………………………………………………………………………………………………………………. 79

Auto-sklearn………………………………………………………………………………………………………………… 79

Auto-PyTorch………………………………………………………………………………………………………………. 80

Резюме………………………………………………………………………………………………………………………………………….. 80

Глава 4. Использование AutoML для прогнозирования продаж на основе затрат на рекламу в различных медиаканалах…………………………………………………………………………………………………………………………… 83

Пример использования в бизнесе: прогнозирования продаж на основе затрат на рекламу в различных медиаканалах       83

Рабочий процесс проекта…………………………………………………………………………………………………….. 84

Набор данных проекта………………………………………………………………………………………………………… 85

Разведочный анализ набора данных с помощью Pandas, Matplotlib и Seaborn…………………………………… 85

Загрузка данных во фрейм данных Pandas блокнота Google Colab………………………………………… 86

Разведочный анализ рекламного набора данных………………………………………………………………….. 87

Описательный анализ: проверка данных……………………………………………………………………… 87

Разведочный анализ данных……………………………………………………………………………………….. 89

Экспорт рекламного набора данных…………………………………………………………………………….. 94

Использование AutoML для обучения модели линейной регрессии…………………………………………………… 96

Обучение без кодирования с помощью Vertex AI…………………………………………………………………… 96

Создайте управляемый набор данных в Vertex AI…………………………………………………………………. 96

Выберите цель модели………………………………………………………………………………………………………… 97

Обучение модели………………………………………………………………………………………………………………. 102

Оценка эффективности модели………………………………………………………………………………………….. 106

Важность модельных признаков (атрибуция признаков)……………………………………………………… 108

Прогнозирование с помощью вашей модели………………………………………………………………………. 108

Резюме………………………………………………………………………………………………………………………………………… 116

Глава 5. Использование AutoML для обнаружения мошеннических транзакций…… 117

Пример использования в бизнесе: обнаружение мошенничества в финансовых транзакциях………….. 117

Рабочий процесс проекта…………………………………………………………………………………………………… 118

Набор данных проекта………………………………………………………………………………………………………. 119

Разведочный анализ набора данных с помощью Pandas, Matplotlib и Seaborn…………………………………. 120

Загрузка данных во фрейм Pandas блокнота Google Colab…………………………………………………… 120

Разведочный анализ набора данных………………………………………………………………………………….. 122

Описательный анализ……………………………………………………………………………………………….. 122

Разведочный анализ данных……………………………………………………………………………………… 124

Экспорт набора данных……………………………………………………………………………………………………… 132

Классификационные модели и метрики………………………………………………………………………………………….. 132

Использование AutoML для обучения классификационной модели…………………………………………………. 135

Создание управляемого набора данных и выбор цели модели…………………………………………….. 136

Изучение статистики набора данных………………………………………………………………………………….. 137

Обучение модели………………………………………………………………………………………………………………. 137

Оценка эффективности модели………………………………………………………………………………………….. 140

Значимость признаков модели…………………………………………………………………………………………… 141

Получение прогнозов………………………………………………………………………………………………………… 142

Резюме………………………………………………………………………………………………………………………………………… 144

Глава 6. Использование BigQuery ML для обучения модели линейной регрессии. 145

Пример использования в бизнесе: прогнозирование выработки электроэнергии……………………………… 145

Очистка набора данных с помощью SQL в BigQuery……………………………………………………………………….. 146

Загрузка набора данных в BigQuery……………………………………………………………………………………. 147

Разведочный анализ данных в BigQuery с помощью SQL…………………………………………………….. 151

Использование функции Null для проверки наличия нулевых значений……………………….. 151

Функции Min и Max для определения допустимых диапазонов данных…………………………. 152

Сохранение результатов запроса с помощью инструкции DDL в BigQuery……………………. 154

Модели линейной регрессии………………………………………………………………………………………………………….. 157

Выбор признаков и корреляция………………………………………………………………………………………….. 160

Google Colaboratory……………………………………………………………………………………………………………. 162

Построение связей признаков с целевым параметром………………………………………………………… 166

Оператор CREATE MODEL в BigQuery ML………………………………………………………………………….. 169

Использование оператора CREATE MODEL………………………………………………………………. 169

Просмотр оценочных метрик обученной модели…………………………………………………………. 170

Использование функции ML.PREDICT для составления прогнозов……………………………… 171

Знакомство с объяснимым искусственным интеллектом (Explainable AI)…………………………………………… 173

Объяснимый ИИ в BigQuery ML………………………………………………………………………………………….. 174

Изменение инструкции CREATE MODEL…………………………………………………………………….. 174

Использование функции ML.GLOBAL_EXPLAIN………………………………………………………….. 175

Использование функции ML.EXPLAIN_PREDICT для вычисления
локальных объяснений……………………………………………………………………………………………… 175

Упражнения………………………………………………………………………………………………………………………. 177

Нейронные сети в BigQuery ML……………………………………………………………………………………………………… 178

Краткий обзор нейронных сетей…………………………………………………………………………………………. 178

Функции активации и нелинейность……………………………………………………………………………………. 179

Обучение глубокой нейронной сети в BigQuery ML………………………………………………………………. 181

Упражнения………………………………………………………………………………………………………………………. 184

Использование Cloud Shell для просмотра вашего файла в облачном хранилище…………………………… 184

Резюме………………………………………………………………………………………………………………………………………… 186

Глава 7. Обучение пользовательских моделей ML на Python……………………………………. 187

Пример использования в бизнесе: прогнозирование оттока клиентов…………………………………………….. 187

Выбор между решениями ML без кода, с малым объемом кода и с пользовательским кодом……………. 189

Анализ набора данных с помощью Pandas, Matplotlib и Seaborn………………………………………………………. 190

Загрузка данных во фрейм данных Pandas блокнота Google Colab………………………………………. 191

Анализ и очистка набора данных об оттоке клиентов………………………………………………………….. 193

Проверка и преобразование типов данных………………………………………………………………… 193

Изучение сводной статистики…………………………………………………………………………………….. 197

Изучение комбинаций категориальных столбцов………………………………………………………… 199

Изучение взаимодействия между числовыми и категориальными столбцами……………….. 202

Преобразование признаков с помощью Pandas и scikit-learn………………………………………………… 206

Выбор признаков………………………………………………………………………………………………………. 206

Кодирование категориальных признаков с помощью scikit-learn…………………………………… 208

Обобщение и разделение данных………………………………………………………………………………. 211

Построение модели логистической регрессии с использованием scikit-learn…………………………………….. 212

Логистическая регрессия……………………………………………………………………………………………………. 212

Обучение и оценка модели в scikit-learn………………………………………………………………………………. 214

Метрики оценки классификации…………………………………………………………………………………………. 216

Предоставление прогнозов с помощью модели, обученной в scikit-learn………………………………. 219

Знакомство с пайплайнами scikit-learn…………………………………………………………………………………. 221

Построение нейронной сети с использованием Keras…………………………………………………………………….. 224

Введение в Keras………………………………………………………………………………………………………………. 224

Обучение классификатора нейронной сети с использованием Keras……………………………………. 225

Построение пользовательских ML-моделей на основе Vertex AI……………………………………………………… 230

Резюме………………………………………………………………………………………………………………………………………… 239

Глава 8. Улучшение эффективности пользовательской модели……………………………… 241

Пример использования в бизнесе: ценообразование на аукционе по продаже
подержанных автомобилей……………………………………………………………………………………………………………. 241

Усовершенствование модели в scikit-learn……………………………………………………………………………………… 243

Загрузка в блокнот уже существующей модели……………………………………………………………………. 243

Загрузка наборов данных и разделение данных на обучающие, оценочные и тестовые……….. 244

Изучение модели линейной регрессии в scikit-learn……………………………………………………………… 245

Инжиниринг признаков и совершенствование пайплайна предварительной обработки………… 248

Поиск простых улучшений…………………………………………………………………………………………. 248

Пересечение признаков…………………………………………………………………………………………….. 251

Настройка гиперпараметров………………………………………………………………………………………………. 253

Стратегия настройки гиперпараметров………………………………………………………………………. 253

Настройка гиперпараметров в scikit-learn……………………………………………………………………. 255

Улучшение модели в Keras……………………………………………………………………………………………………………. 258

Знакомство со слоями предварительной обработки Keras…………………………………………………… 258

Создание набора данных и слоев предварительной обработки для вашей модели………………. 259

Построение модели нейронной сети…………………………………………………………………………………… 262

Настройка гиперпараметров в Keras………………………………………………………………………………….. 263

Настройка гиперпараметров в BigQuery ML……………………………………………………………………………………. 267

Загрузка и преобразование данных аукциона автомобилей…………………………………………………. 268

Обучение модели линейной регрессии и использование условия TRANSFORM……………………. 270

Настройка гиперпараметров в BigQuery ML………………………………………………………………………… 273

Регуляризация………………………………………………………………………………………………………….. 273

Настройка гиперпараметров в инструкции CREATE MODEL……………………………………….. 275

Опции настройки гиперпараметров для больших моделей……………………………………………………………… 277

Обучение и настройка Vertex AI………………………………………………………………………………………….. 277

Автоматическая настройка модели с помощью Amazon SageMaker……………………………………… 278

Машинное обучение Azure…………………………………………………………………………………………………. 278

Резюме………………………………………………………………………………………………………………………………………… 278

Глава 9. Путешествие в мир искусственного интеллекта продолжается………………… 279

Дальнейшее погружение в науку о данных…………………………………………………………………………………….. 279

Работа с неструктурированными данными………………………………………………………………………….. 280

Работа с изображениями…………………………………………………………………………………………… 280

Работа с текстовыми данными…………………………………………………………………………………… 282

Генеративный искусственный интеллект…………………………………………………………………………….. 284

Объяснимый искусственный интеллект………………………………………………………………………………. 285

Практика машинного обучения……………………………………………………………………………………………………… 288

Непрерывное обучение и оценка…………………………………………………………………………………………………… 289

Резюме………………………………………………………………………………………………………………………………………… 290

Предметный указатель………………………………………………………………………………………………………… 291

Об авторах……………………………………………………………………………………………………………………………… 293

Об изображении на обложке………………………………………………………………………………………………. 295

Опубликовано

Машинное обучение с использованием Python. Сборник рецептов: практические решения от предобработки до глубокого обучения, 2 изд.

Машинное обучение с использованием Python. Сборник рецептов.

Книга содержит около 200 задач машинного обучения, таких как загрузка и обработка текстовых или числовых данных, отбор модели и многие другие. Рассмотрена работа с языком Python, библиотеками pandas и scikit-learn. Коды примеров можно вставлять, объединять и адаптировать, создавая собственное приложение. Приведены рецепты решений с использованием: векторов, матриц и массивов; данных из CSV, JSON, SQL, баз данных, облачных хранилищ и других источников; обработки данных, текста, изображений, дат и времени; умень-шения размерности и методов выделения или отбора признаков; оценивания и отбора моделей; линейной и логистической регрессии, деревьев, лесов и k ближайших соседей; опорно-векторных машин (SVM), наивных байесовых классификаторов, кластеризации и нейронных сетей; сохранения и загрузки натренированных моделей.
Во втором издании все примеры обновлены, рассмотрены задачи и фреймворки глубокого обучения, расширены разделы с тензорами, нейронными сетями и библиотекой глубокого обучения PyTorch.

Для разработчиков систем машинного обучения

В книге Вы найдете рецепты для:

  • векторов, матриц и массивов;
  • работы с данными из CSV, JSON, SQL, базами данных, облачными хранилищами и другими источниками;
  • обработки числовых и категориальных данных, текста, изображений, дат и времени;
  • уменьшения размерности с использованием методов выделения или отбора признаков;
  • оценивания и отбора моделей;
  • сохранения и загрузки натренированных моделей.

Научитесь решать задачи с использованием:

  • линейной и логистической регрессии, деревьев, лесов и k ближайших соседей;
  • опорно-векторных машин (SVM), наивных байесовых классификаторов, кластеризации и нейронных сетей.

Крис успешно воспользовался форматом книги рецептов. В ней есть простые и понятные учебные задачи для начинающих специалистов, ценная информация для самоподготовки перед собеседованием на должность аналитика данных, полезные для опытных профессиона-лов ссылки и многое другое. Книгу также удобно использовать как краткий, но всесторонний справочник.Джастин Бозонье

Листать

Для кого предназначена книга

Данная книга не является введением в машинное (само)обучение. Если вы не чувствуете себя уверенно в области основных понятий машинного обучения либо никогда не проводили время за изучением машинного обучения, то не покупайте эту книгу. Она предназначена для практикующих специалистов машинного обучения, которые, чувствуя себя комфортно с теорией и понятиями машинного обучения, извлекут пользу из краткого справочника, содержащего программный код для решения задач, с которыми они сталкиваются, работая ежедневно с машинным обучением.

Для кого не предназначена книга

Данная книга не должна быть вашим первым изданием по этой теме. Если вы незнакомы с такими понятиями, как перекрестная проверка, случайный лес и градиентный спуск, то вы, вероятно, не извлечете из этой книги такой же пользы, которую можно получить от одного из многих высококачественных текстов, специально предназначенных для ознакомления с этой темой. Я рекомендую прочитать одну из таких книг, а затем вернуться к этой книге, чтобы узнать рабочие, практические решения для задач машинного обучения.

Книгу “Машинное обучение с использованием Python. Сборник рецептов: практические решения от предобработки до глубокого обучения, 2 изд. можно купить со скидкой в интернет-магазине издательства “БХВ“.

Кайл Галлатин

Кайл Галлатин (Kyle Gallatin) — инженер-программист команды разработчиков ПО для крупнейшей торговой площадки Etsy с многолетним опытом работы в качестве аналитика данных, специалиста по данным и инженера по машинному обучению.

 

 

Chris Albon

Крис Элбон (Chris Albon) — аналитик данных и политолог с десятилетним опытом применения статистического обучения, искусственного интеллекта и разработки программного обеспечения для политических, социальных и гуманитарных проектов — от мониторинга выборов до оказания помощи в случае стихийных бедствий. В настоящее время является ведущим аналитиком данных в компании BRCK, продвигающей интернет-технологии на африканский рынок.

Опубликовано

Новинка: “Машинное обучение с PyTorch и Scikit-Learn”

Машинное обучение с PyTorch и Scikit-Learn

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

Для программистов в области машинного обучения

Разрабатывайте модели машинного и глубокого обучения с помощью Python

Перед вами не только исчерпывающее руководство по машинному и глубокому обучению с использованием Python,  фреймворка PyTorch и библиотеки scikit-learn. но и справочник, к которому вы будете постоянно возвращаться при создании систем машинного обучения. Книга подробно описывает все основные методы машинного обучения и содержит четкие пояснения, визуализации и примеры. Автор стремится научить читателя принципам самостоятельного создания моделей и приложений, а не просто следовать жестким инструкциям.

Описаны новые дополнения к библиотеке scikit-learn. Рассмотрены различные методы машинного и глубокого обучения для классификации текста и изображений. Рассказано о генеративно-состязательных сетях (GAN) для синтеза новых данных и обучения интеллектуальных агентов  Освещены последние тенденции в области глубокого обучения, включая введение в графовые нейронные сети и крупномасштабные преобразователи, используемые для обработки естественного языка (NLP). Книга  будет полезна как начинающим разработчикам на Python, слабо знакомым с машинным обучением, так и опытным, желающим углубить свои знания.

Вы изучите:

  • фреймворки, модели и методы машинного обучения, применимые к широкому кругу задач и наборов данных;
  • библиотеку scikit-learn для машинного обучения и фреймворк PyTorch для глубокого обучения;
  • приемы обучения классификаторов на изображениях, тексте и т. д.;
  • средства создания и обучения нейронных сетей, преобразователей и графических нейронных сетей;
  • передовые методы оценки и настройки моделей.

Вы сможете глубже понять:

  • прогнозирование непрерывных целевых результатов с помощью регрессионного анализа;
  • особенности текстовых данных и данных из социальных сетей с помощью тонального анализа.

Книгу “Машинное обучение с PyTorch и Scikit-Learn” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Вступительное слово…………………………………………………………………………………………………………………… 15

Об авторах……………………………………………………………………………………………………………………………………. 17

Предисловие……………………………………………………………………………………………………………………………….. 19

Для кого эта книга?…………………………………………………………………………………………………………………………. 20

О чем рассказывает книга?…………………………………………………………………………………………………………….. 20

Как получить максимальную отдачу от этой книги?…………………………………………………………………………… 22

Скачивание примеров кода…………………………………………………………………………………………………………….. 23

Скачивание цветных изображений………………………………………………………………………………………………….. 23

Соглашения и условные обозначения……………………………………………………………………………………………… 24

Глава 1. Как помочь компьютеру учиться на данных?………………………………………………………………… 25

1.1. Интеллектуальные машины для преобразования данных в знания…………………………………………….. 25

1.2. Три типа машинного обучения………………………………………………………………………………………………….. 26

1.2.1. Предсказание будущего при помощи обучения с учителем………………………………………………… 27

Прогнозирование меток классов в задаче классификации…………………………………………………. 28

Прогнозирование непрерывного значения в задаче регрессии………………………………………….. 29

1.2.2. Применение обучения с подкреплением для решения интерактивных задач……………………… 30

1.2.3. Обнаружение скрытых структур с помощью обучения без учителя…………………………………….. 31

Поиск подгрупп путем кластеризации……………………………………………………………………………….. 32

Уменьшение размерности для сжатия данных………………………………………………………………….. 32

1.3. Введение в основную терминологию и обозначения………………………………………………………………….. 33

1.3.1. Соглашения и условные обозначения, используемые в этой книге……………………………………. 33

1.3.2. Терминология машинного обучения…………………………………………………………………………………. 35

1.4. Общие принципы построения систем машинного обучения………………………………………………………… 36

1.4.1. Предварительная обработка: приведение данных к нужному виду…………………………………….. 36

1.4.2. Обучение и выбор прогностической модели……………………………………………………………………… 37

1.4.3. Оценка моделей и прогнозирование незнакомых экземпляров данных………………………………. 38

1.5. Использование Python для машинного обучения……………………………………………………………………….. 38

1.5.1. Установка Python и пакетов из Python Package Index…………………………………………………………. 39

1.5.2. Использование дистрибутива Python Anaconda и менеджера пакетов………………………………… 39

1.5.3. Пакеты для научных вычислений, науки о данных и машинного обучения…………………………. 40

1.6. Заключение……………………………………………………………………………………………………………………………… 42

Глава 2. Простые алгоритмы машинного обучения для задач классификации…………………………. 43

2.1. Искусственные нейроны: краткий экскурс в историю машинного обучения………………………………….. 43

2.1.1. Формальное определение искусственного нейрона…………………………………………………………… 44

2.1.2. Правило обучения персептрона……………………………………………………………………………………….. 46

2.2. Реализация алгоритма обучения персептрона на Python……………………………………………………………. 49

2.2.1. Объектно-ориентированный API персептрона………………………………………………………………….. 49

2.2.2. Обучение модели персептрона на наборе данных Iris……………………………………………………….. 52

2.3. Адаптивные линейные нейроны и сходимость обучения…………………………………………………………….. 57

2.3.1. Минимизация функции потерь с помощью градиентного спуска…………………………………………. 58

2.3.2. Реализация Adaline на Python…………………………………………………………………………………………… 61

2.3.3. Улучшение градиентного спуска за счет масштабирования признаков………………………………. 65

2.3.4. Крупномасштабное машинное обучение и стохастический градиентный спуск……………………. 67

2.4. Заключение……………………………………………………………………………………………………………………………… 71

Глава 3. Знакомство с классификаторами машинного обучения на основе scikit-learn…………….. 73

3.1. Выбор алгоритма классификации……………………………………………………………………………………………… 73

3.2. Первые шаги с scikit-learn: обучение персептрона……………………………………………………………………… 74

3.3. Моделирование вероятностей классов с помощью логистической регрессии………………………………. 79

3.3.1. Логистическая регрессия и условные вероятности……………………………………………………………. 79

3.3.2. Изучение весов модели с помощью логистической функции потерь…………………………………… 83

3.3.3. Преобразование Adaline в алгоритм логистической регрессии…………………………………………… 86

3.3.4. Обучение модели логистической регрессии с помощью scikit-learn……………………………………… 89

3.3.5. Борьба с переобучением путем регуляризации…………………………………………………………………. 92

3.4. Классификация по наибольшему отступу с помощью метода опорных векторов………………………….. 95

3.4.1. Смысл максимизации зазора……………………………………………………………………………………………. 95

3.4.2. Работа с нелинейно разделимым случаем при использовании резервных переменных………. 96

3.4.3. Альтернативные реализации алгоритмов в scikit-learn………………………………………………………. 98

3.5. Решение нелинейных задач с использованием ядерного варианта SVM…………………………………….. 99

3.5.1. Ядерные методы для линейно неразделимых данных……………………………………………………….. 99

3.5.2. Использование ядерного трюка для поиска разделяющих гиперплоскостей
в многомерном пространстве………………………………………………………………………………………………….. 101

3.6. Обучение дерева решений……………………………………………………………………………………………………… 104

3.6.1. Максимизация IG: получение наибольшей отдачи от затраченных усилий……………………….. 105

3.6.2. Построение дерева решений…………………………………………………………………………………………. 110

3.6.3. Объединение нескольких деревьев решений с помощью случайных лесов………………………. 112

3.7. K-ближайшие соседи: «ленивый» алгоритм обучения………………………………………………………………. 115

3.8. Заключение……………………………………………………………………………………………………………………………. 118

Глава 4. Предварительная обработка данных для создания качественных
обучающих наборов…………………………………………………………………………………………………………………… 120

4.1. Как поступать с отсутствующими данными?……………………………………………………………………………… 120

4.1.1. Выявление пропущенных значений в табличных данных………………………………………………… 121

4.1.2. Исключение обучающих записей или признаков с пропущенными значениями…………………. 122

4.1.3. Подстановка пропущенных значений……………………………………………………………………………… 123

4.1.4. API оценивателя scikit-learn……………………………………………………………………………………………. 124

4.2. Работа с категориальными данными……………………………………………………………………………………….. 125

4.2.1. Категориальное кодирование данных при помощи pandas………………………………………………. 126

4.2.2. Сопоставление порядковых признаков…………………………………………………………………………… 126

4.2.3. Кодирование меток классов……………………………………………………………………………………………. 127

4.2.4. Позиционное кодирование номинальных признаков……………………………………………………….. 128

4.2.5. Кодирование порядковых признаков………………………………………………………………………………. 131

4.3. Разделение набора данных на обучающие и тестовые наборы………………………………………………… 131

4.4. Приведение признаков к одному масштабу……………………………………………………………………………… 134

4.5. Выбор значимых признаков…………………………………………………………………………………………………….. 136

4.5.1. Регуляризация L1 и L2 как штраф за сложность модели………………………………………………….. 136

4.5.2. Геометрическая интерпретация регуляризации L2………………………………………………………….. 137

4.5.3. Разреженные решения с регуляризацией L1…………………………………………………………………… 139

4.5.4. Последовательные алгоритмы отбора признаков……………………………………………………………. 142

4.6. Оценка важности признаков с помощью случайных лесов………………………………………………………… 147

4.7. Заключение……………………………………………………………………………………………………………………………. 150

Глава 5. Сжатие данных путем уменьшения размерности…………………………………………………………. 151

5.1. Уменьшение размерности без учителя с помощью метода главных компонент…………………………. 151

5.1.1. Основные этапы метода главных компонент…………………………………………………………………… 152

5.1.2. Пошаговый процесс извлечения основных компонент…………………………………………………….. 154

5.1.3. Общая и объясненная дисперсия…………………………………………………………………………………… 156

5.1.4. Преобразование признаков……………………………………………………………………………………………. 157

5.1.5. Анализ основных компонент в scikit-learn………………………………………………………………………… 160

5.1.6. Оценка вклада признаков………………………………………………………………………………………………. 163

5.2. Сжатие данных с учителем с помощью линейного дискриминантного анализа…………………………… 165

5.2.1. Сравнение методов PCA и LDA……………………………………………………………………………………… 165

5.2.2. Как устроен алгоритм LDA?……………………………………………………………………………………………. 166

5.2.3. Вычисление матриц разброса………………………………………………………………………………………… 167

5.2.4. Выбор линейных дискриминантов для нового подпространства признаков………………………. 169

5.2.5. Проецирование точек данных на новое функциональное пространство…………………………… 171

5.2.6. Реализация LDA при помощи scikit-learn…………………………………………………………………………. 171

5.3. Нелинейное уменьшение размерности и визуализация……………………………………………………………. 173

5.3.1. Зачем рассматривать нелинейное уменьшение размерности?…………………………………………. 174

5.3.2. Визуализация данных с помощью алгоритма t-SNE…………………………………………………………. 175

5.4. Заключение……………………………………………………………………………………………………………………………. 178

Глава 6. Современные методы оценки моделей и настройки гиперпараметров…………………….. 179

6.1. Оптимизация рабочих процессов с помощью конвейеров…………………………………………………………. 179

6.1.1. Загрузка набора данных по раку молочной железы в Висконсине…………………………………….. 179

6.1.2. Объединение преобразователей и оценивателей в конвейер………………………………………….. 181

6.2. Использование k-кратной перекрестной проверки для оценки производительности модели………. 183

6.2.1. Перекрестная проверка с отложенными данными…………………………………………………………… 183

6.2.2. k-кратная перекрестная проверка………………………………………………………………………………….. 184

6.3. Алгоритмы отладки с использованием кривых обучения и валидации……………………………………….. 188

6.3.1. Диагностика смещения и дисперсии с помощью кривых обучения……………………………………. 188

6.3.2. Устранение переобучения и недообучения с помощью кривых валидации……………………….. 191

6.4. Точная настройка моделей с помощью поиска по сетке……………………………………………………………. 193

6.4.1. Настройка гиперпараметров с помощью поиска по сетке………………………………………………… 193

6.4.2. Изучение обширных конфигураций гиперпараметров с помощью
рандомизированного поиска……………………………………………………………………………………………………. 195

6.4.3. Поиск гиперпараметров методом последовательного деления пополам…………………………… 197

6.4.4. Выбор алгоритма методом вложенной перекрестной проверки………………………………………… 199

6.5. Обзор различных показателей оценки эффективности…………………………………………………………….. 201

6.5.1. Чтение матрицы несоответствий……………………………………………………………………………………. 201

6.5.2. Оптимизация правильности и полноты модели классификации……………………………………….. 203

6.5.3. Построение рабочей характеристики приемника…………………………………………………………….. 205

6.5.4. Метрики оценки многоклассовой классификации…………………………………………………………….. 208

6.5.5. Борьба с дисбалансом классов……………………………………………………………………………………….. 209

6.6. Заключение……………………………………………………………………………………………………………………………. 211

Глава 7. Объединение различных моделей для ансамблевого обучения………………………………… 212

7.1. Обучение ансамблей моделей…………………………………………………………………………………………………. 212

7.2. Объединение классификаторов по методу большинства голосов……………………………………………… 216

7.2.1. Реализация простого мажоритарного классификатора…………………………………………………….. 216

7.2.2. Использование принципа мажоритарного голосования для прогнозирования…………………… 220

7.2.3. Оценка и настройка ансамблевого классификатора………………………………………………………… 223

7.3. Бэггинг: создание ансамбля классификаторов из исходного набора данных………………………………. 228

7.3.1. Коротко о бэггинге…………………………………………………………………………………………………………. 229

7.3.2. Применение бэггинга для классификации экземпляров набора данных Wine……………………. 230

7.4. Использование «слабых учеников» в механизме адаптивного бустинга…………………………………….. 234

7.4.1. Как работает адаптивный бустинг?…………………………………………………………………………………. 234

7.4.2. Применение AdaBoost с помощью scikit-learn…………………………………………………………………… 238

7.5. Градиентный бустинг: обучение ансамбля на основе градиентов потерь…………………………………… 241

7.5.1. Сравнение AdaBoost с градиентным бустингом……………………………………………………………….. 241

7.5.2. Описание обобщенного алгоритма градиентного бустинга……………………………………………….. 242

7.5.3. Применение алгоритма градиентного бустинга для классификации………………………………….. 243

7.5.4. Иллюстрация применения градиентного бустинга для классификации……………………………… 245

7.5.5. Использование XGBoost………………………………………………………………………………………………… 247

7.6. Заключение……………………………………………………………………………………………………………………………. 249

Глава 8. Применение машинного обучения для смыслового анализа текста…………………………… 250

8.1. Подготовка набора данных с обзорами фильмов на IMDb………………………………………………………… 250

8.1.1. Получение набора данных c обзорами фильмов……………………………………………………………… 251

8.1.2. Преобразование набора данных в более удобный формат……………………………………………… 251

8.2. Знакомство с моделью мешка слов………………………………………………………………………………………….. 253

8.2.1. Преобразование слов в векторы признаков……………………………………………………………………. 253

8.2.2. Оценка релевантности слов с помощью частоты термина и обратной частоты документа… 255

8.2.3. Очистка текстовых данных…………………………………………………………………………………………….. 257

8.2.4. Получение токенов из документов………………………………………………………………………………….. 259

8.3. Обучение модели логистической регрессии для классификации документов……………………………… 260

8.4. Работа с большими данными: онлайн-алгоритмы и внешнее обучение…………………………………….. 263

8.5. Моделирование тем с использованием скрытого распределения Дирихле………………………………… 266

8.5.1. Разбор текстовых документов с помощью LDA……………………………………………………………….. 267

8.5.2. Реализация LDA в библиотеке scikit-learn……………………………………………………………………….. 267

8.6. Заключение……………………………………………………………………………………………………………………………. 270

Глава 9. Прогнозирование непрерывных целевых переменных
с помощью регрессионного анализа………………………………………………………………………………………….. 272

9.1. Знакомство с линейной регрессией………………………………………………………………………………………….. 272

9.1.1. Простая линейная регрессия………………………………………………………………………………………….. 273

9.1.2. Множественная линейная регрессия………………………………………………………………………………. 273

9.2. Изучение набора данных Ames Housing…………………………………………………………………………………… 274

9.2.1. Загрузка набора данных Ames Housing в DataFrame……………………………………………………….. 275

9.2.2. Визуализация важных характеристик набора данных………………………………………………………. 277

9.2.3. Просмотр отношений с помощью матрицы корреляции…………………………………………………… 278

9.3. Реализация обычной модели линейной регрессии методом наименьших квадратов………………….. 280

9.3.1. Нахождение регрессии для параметров регрессии с градиентным спуском……………………….. 281

9.3.2. Оценка коэффициента регрессионной модели с помощью scikit-learn……………………………….. 284

9.4. Обучение устойчивой регрессионной модели с использованием RANSAC…………………………………. 286

9.5. Оценка производительности моделей линейной регрессии………………………………………………………. 289

9.6. Использование методов регуляризации для регрессии…………………………………………………………….. 293

9.7. Переход от прямой линии к кривой: полиномиальная регрессия……………………………………………….. 294

9.7.1. Добавление полиномиальных членов с помощью scikit-learn……………………………………………. 295

9.7.2. Моделирование нелинейных отношений в наборе данных Ames Housing…………………………. 296

9.8. Моделирование нелинейных отношений с использованием случайных лесов……………………………. 299

9.8.1. Регрессия на основе алгоритма дерева решений……………………………………………………………. 299

9.8.2. Регрессия на основе случайного леса…………………………………………………………………………….. 301

9.9. Заключение……………………………………………………………………………………………………………………………. 303

Глава 10. Работа с неразмеченными данными: кластерный анализ…………………………………………. 304

10.1. Группировка объектов по сходству с использованием k-средних…………………………………………….. 304

10.1.1. Кластеризация методом k-средних с использованием scikit-learn…………………………………… 304

10.1.2. Более разумный способ размещения начальных центроидов: алгоритм k-средних++…….. 309

10.1.3. Жесткая и мягкая кластеризация………………………………………………………………………………… 310

10.1.4. Использование метода локтя для нахождения оптимального количества кластеров……… 312

10.1.5. Количественная оценка качества кластеризации с помощью силуэтных графиков………… 313

10.2. Организация кластеров в виде иерархического дерева………………………………………………………….. 318

10.2.1. Группировка кластеров снизу вверх……………………………………………………………………………. 318

10.2.2. Выполнение иерархической кластеризации с матрицей расстояний……………………………… 319

10.2.3. Прикрепление дендрограмм к тепловой карте…………………………………………………………….. 323

10.2.4. Агломеративная кластеризация с помощью scikit-learn…………………………………………………. 324

10.3. Обнаружение областей высокой плотности с помощью DBSCAN…………………………………………….. 325

10.4. Заключение………………………………………………………………………………………………………………………….. 330

Глава 11. Построение многослойной искусственной нейронной сети с нуля…………………………… 331

11.1. Моделирование сложных функций с помощью искусственных нейросетей………………………………. 331

11.1.1. Вкратце об однослойной нейронной сети…………………………………………………………………….. 332

11.1.2. Знакомство с архитектурой многослойной нейронной сети…………………………………………… 334

11.1.3. Активация нейронной сети прямого распространения………………………………………………….. 336

11.2. Классификация рукописных цифр………………………………………………………………………………………….. 338

11.2.1. Получение и подготовка набора данных MNIST…………………………………………………………… 339

11.2.2. Реализация многослойного персептрона…………………………………………………………………….. 342

11.2.3. Обучающий цикл нейронной сети……………………………………………………………………………….. 346

11.2.4. Оценка производительности нейронной сети………………………………………………………………. 351

11.3. Обучение искусственной нейронной сети……………………………………………………………………………….. 354

11.3.1. Вычисление функции потерь………………………………………………………………………………………. 354

11.3.2. Подробнее о механизме обратного распространения…………………………………………………… 356

11.3.3. Обучение нейронных сетей с помощью обратного распространения…………………………….. 358

11.4. О сходимости в нейронных сетях…………………………………………………………………………………………… 361

11.5. Несколько заключительных слов о реализации нейронной сети……………………………………………… 362

11.6. Заключение………………………………………………………………………………………………………………………….. 363

Глава 12. Глубокое обучение нейронных сетей на основе PyTorch………………………………………….. 364

12.1. PyTorch и производительность обучения……………………………………………………………………………….. 364

12.1.1. Проблемы с быстродействием……………………………………………………………………………………. 364

12.1.2. Что такое PyTorch?…………………………………………………………………………………………………….. 366

12.1.3. Как мы будем изучать PyTorch?………………………………………………………………………………….. 367

12.2. Первые шаги с PyTorch…………………………………………………………………………………………………………. 367

12.2.1. Установка PyTorch……………………………………………………………………………………………………… 367

12.2.2. Создание тензоров в PyTorch…………………………………………………………………………………….. 369

12.2.3. Управление типом данных и формой тензора……………………………………………………………… 369

12.2.4. Применение к тензорам математических операций……………………………………………………… 370

12.2.5. Разделение, стекирование и конкатенация тензоров…………………………………………………… 371

12.3. Построение конвейеров ввода в PyTorch………………………………………………………………………………. 373

12.3.1. Создание объекта DataLoader из существующих тензоров…………………………………………… 373

12.3.2. Объединение двух тензоров в совместный набор данных……………………………………………. 374

12.3.3. Перемешивание, группировка и повторение……………………………………………………………….. 375

12.3.4. Создание набора данных из файлов на локальном диске…………………………………………….. 377

12.3.5. Получение доступных наборов данных из библиотеки torchvision.datasets…………………….. 380

12.4. Построение нейросетевой модели в PyTorch…………………………………………………………………………. 384

12.4.1. Модуль нейронной сети PyTorch (torch.nn)………………………………………………………………….. 384

12.4.2. Построение модели линейной регрессии…………………………………………………………………….. 384

12.4.3. Обучение модели с помощью модулей torch.nn и torch.optim………………………………………… 388

12.4.4. Построение многослойного персептрона для классификации цветков
в наборе данных Iris……………………………………………………………………………………………………………… 389

12.4.5. Оценка обученной модели на тестовом наборе данных……………………………………………….. 391

12.4.6. Сохранение и повторная загрузка обученной модели………………………………………………….. 392

12.5. Выбор функций активации для многослойных нейронных сетей……………………………………………… 393

12.5.1. Несколько слов о логистической функции……………………………………………………………………. 393

12.5.2. Оценка вероятностей классов в мультиклассовой классификации с помощью
функции softmax……………………………………………………………………………………………………………………. 395

12.5.3. Расширение выходного спектра с использованием гиперболического тангенса…………….. 396

12.5.4. Спрямленная линейная активация……………………………………………………………………………… 398

12.6. Заключение………………………………………………………………………………………………………………………….. 399

Глава 13. Углубленное знакомство с PyTorch……………………………………………………………………………. 400

13.1. Основные возможности PyTorch……………………………………………………………………………………………. 401

13.2. Граф вычислений PyTorch…………………………………………………………………………………………………….. 401

13.2.1. Вкратце о графе вычислений……………………………………………………………………………………… 401

13.2.2. Создание графа в PyTorch…………………………………………………………………………………………. 402

13.3. Тензорные объекты PyTorch для хранения и обновления параметров модели………………………… 403

13.4. Вычисление градиентов с помощью автоматического дифференцирования……………………………. 405

13.4.1. Вычисление градиентов потерь по обучаемым переменным………………………………………… 405

13.4.2. Как работает автоматическое дифференцирование?………………………………………………….. 406

13.4.3. Состязательные примеры………………………………………………………………………………………….. 407

13.5. Упрощение реализации популярных архитектур с помощью модуля torch.nn…………………………… 407

13.5.1. Реализация моделей на основе nn.Sequential………………………………………………………………. 407

13.5.2. Выбор функции потерь………………………………………………………………………………………………. 409

13.5.3. Решение задачи классификации XOR…………………………………………………………………………. 409

13.5.4. Более гибкое построение моделей с помощью nn.Module…………………………………………….. 414

13.5.5. Создание в PyTorch пользовательских слоев………………………………………………………………. 416

13.6. Проект № 1: прогнозирование расхода топлива автомобиля…………………………………………………… 420

13.6.1. Работа со столбцами признаков………………………………………………………………………………….. 420

13.6.2. Обучение регрессионной модели DNN………………………………………………………………………… 423

13.7. Проект № 2: классификация рукописных цифр из набора MNIST…………………………………………….. 425

13.8. API PyTorch более высокого уровня: краткое введение в PyTorch-Lightning…………………………….. 428

13.8.1. Настройка модели PyTorch Lightning……………………………………………………………………………. 428

13.8.2. Настройка загрузчиков данных для Lightning……………………………………………………………….. 431

13.8.3. Обучение модели с помощью класса PyTorch Lightning Trainer……………………………………… 432

13.8.4. Оценка модели с помощью TensorBoard……………………………………………………………………… 433

13.9. Заключение………………………………………………………………………………………………………………………….. 436

Глава 14. Классификация изображений с помощью глубоких сверточных нейронных сетей… 437

14.1. Функциональные блоки CNN…………………………………………………………………………………………………. 437

14.1.1. Устройство CNN и понятие иерархии признаков………………………………………………………….. 438

14.1.2. Выполнение дискретных сверток………………………………………………………………………………… 439

Дискретные свертки в одном измерении……………………………………………………………………… 440

Заполнение входных данных для управления размером выходных карт признаков……….. 442

Определение размера вывода свертки……………………………………………………………………….. 443

Вычисление дискретной двумерной свертки………………………………………………………………… 445

14.1.3. Слои подвыборки………………………………………………………………………………………………………. 448

14.2. Практическая реализация CNN…………………………………………………………………………………………….. 449

14.2.1. Работа с несколькими входными или цветовыми каналами………………………………………….. 450

14.2.2. Регуляризация L2 и прореживание……………………………………………………………………………… 452

14.2.3. Функции потерь для задач классификации………………………………………………………………….. 456

14.3. Реализация глубокой CNN с использованием PyTorch……………………………………………………………. 458

14.3.1. Архитектура многослойной CNN…………………………………………………………………………………. 458

14.3.2. Загрузка и предварительная обработка данных…………………………………………………………… 459

14.3.3. Реализация CNN с использованием модуля torch.nn……………………………………………………. 460

Настройка слоев CNN в PyTorch…………………………………………………………………………………. 460

Создание CNN в PyTorch……………………………………………………………………………………………. 461

14.4. Классификация улыбающихся лиц с помощью CNN……………………………………………………………….. 466

14.4.1. Загрузка набора данных CelebA………………………………………………………………………………….. 466

14.4.2. Преобразование изображений и дополнение данных…………………………………………………… 467

14.4.3. Обучение классификатора улыбки на основе CNN………………………………………………………. 473

14.5. Заключение………………………………………………………………………………………………………………………….. 479

Глава 15. Моделирование последовательных данных с помощью
рекуррентных нейронных сетей………………………………………………………………………………………………… 480

15.1. Знакомство с понятием последовательных данных………………………………………………………………… 480

15.1.1. Моделирование последовательных данных: порядок имеет значение………………………….. 481

15.1.2. Данные временнх рядов — особый тип последовательных данных……………………………. 481

15.1.3. Способы представления последовательностей…………………………………………………………… 481

15.1.4. Различные категории моделирования последовательности…………………………………………. 482

15.2. RNN для моделирования последовательностей…………………………………………………………………….. 484

15.2.1. Определение потока данных в RNN……………………………………………………………………………. 484

15.2.2. Вычисление активаций в RNN……………………………………………………………………………………. 486

15.2.3. Скрытая и выходная рекуррентность………………………………………………………………………….. 488

15.2.4. Проблемы изучения дальних взаимодействий…………………………………………………………….. 491

15.2.5. Ячейки долгой краткосрочной памяти…………………………………………………………………………. 492

15.3. Реализация RNN для моделирования последовательностей в PyTorch…………………………………… 494

15.3.1. Проект № 1: предсказание эмоциональной окраски отзывов на фильмы IMDb……………… 494

Подготовка данных отзывов на фильмы……………………………………………………………………… 495

Слои встраивания для кодирования предложений………………………………………………………. 499

Построение модели RNN……………………………………………………………………………………………. 501

Построение модели RNN для задачи анализа тональности………………………………………….. 502

Подробнее о двунаправленной RNN…………………………………………………………………………… 504

15.3.2. Проект № 2: моделирование языка на уровне символов в PyTorch………………………………. 506

Предварительная обработка набора данных………………………………………………………………. 507

Построение модели RNN символьного уровня…………………………………………………………….. 511

Этап оценки: создание новых отрывков текста……………………………………………………………. 513

15.4. Заключение………………………………………………………………………………………………………………………….. 517

Глава 16. Трансформеры: улучшение обработки естественного языка с помощью механизмов внимания             518

16.1. Добавляем к RNN механизм внимания…………………………………………………………………………………… 519

16.1.1. Как внимание помогает RNN извлекать информацию?………………………………………………… 519

16.1.2. Оригинальный механизм внимания для RNN………………………………………………………………. 520

16.1.3. Обработка входных данных с использованием двунаправленной RNN…………………………. 520

16.1.4. Генерация выходных данных из векторов контекста……………………………………………………. 522

16.1.5. Вычисление весов внимания………………………………………………………………………………………. 522

16.2. Знакомство с механизмом самовнимания……………………………………………………………………………….. 523

16.2.1. Начнем с базовой формы самовнимания…………………………………………………………………….. 524

16.2.2. Параметризация механизма самовнимания: взвешенное скалярное произведение………. 527

16.3. Внимание — это все, что нам нужно: знакомство с архитектурой Transformer………………………….. 530

16.3.1. Кодирование контекстных встраиваний с помощью многоголового внимания……………….. 531

16.3.2. Обучение языковой модели: декодер и маскированное многоголовое внимание…………… 535

16.3.3. Детали реализации: позиционное кодирование и нормализация слоев…………………………. 536

16.4. Построение больших языковых моделей с использованием неразмеченных данных……………….. 538

16.4.1. Предварительное обучение и тонкая настройка моделей трансформеров……………………. 539

16.4.2. Использование неразмеченных данных с помощью GPT……………………………………………… 541

16.4.3. Использование GPT-2 для создания нового текста……………………………………………………… 545

16.4.4. Двунаправленное предварительное обучение модели BERT……………………………………….. 547

16.4.5. Лучшее из двух миров: BART……………………………………………………………………………………… 550

16.5. Тонкая настройка модели BERT в PyTorch…………………………………………………………………………….. 553

16.5.1. Загрузка набора данных обзора фильмов IMDb…………………………………………………………… 554

16.5.2. Токенизация набора данных………………………………………………………………………………………. 555

16.5.3. Загрузка и тонкая настройка предварительно обученной модели BERT……………………….. 557

16.5.4. Удобная тонкая настройка трансформера с помощью API Trainer………………………………… 560

16.6. Заключение………………………………………………………………………………………………………………………….. 564

Глава 17. Генеративно-состязательные сети и синтез новых данных……………………………………… 566

17.1. Знакомство с генеративно-состязательными сетями………………………………………………………………. 566

17.1.1. Начнем с автокодировщиков………………………………………………………………………………………. 567

17.1.2. Генеративные модели для синтеза новых данных……………………………………………………….. 569

17.1.3. Генерация новых экземпляров данных с помощью GAN………………………………………………. 570

17.1.4. Функции потерь сетей генератора и дискриминатора в модели GAN…………………………….. 572

17.2. Строим собственную GAN с нуля…………………………………………………………………………………………… 574

17.2.1. Обучение моделей GAN в Google Colab………………………………………………………………………. 574

17.2.2. Реализация сетей генератора и дискриминатора…………………………………………………………. 577

17.2.3. Определение набора обучающих данных……………………………………………………………………. 580

17.2.4. Обучение модели GAN……………………………………………………………………………………………….. 582

17.3. Улучшение качества синтезированных изображений с помощью сверточной GAN
и метрики Вассерштейна………………………………………………………………………………………………………. 588

17.3.1. Транспонированная свертка………………………………………………………………………………………. 588

17.3.2. Пакетная нормализация…………………………………………………………………………………………….. 590

17.3.3. Реализация генератора и дискриминатора………………………………………………………………….. 592

17.3.4. Меры несходства между двумя распределениями………………………………………………………… 598

17.3.5. Практическое применение EM-расстояния для построения GAN………………………………….. 602

17.3.6. Штраф за градиент…………………………………………………………………………………………………….. 603

17.3.7. Реализация WGAN-GP для обучения модели DCGAN………………………………………………….. 603

17.3.8. Схлопывание мод распределения………………………………………………………………………………. 606

17.4. Другие применения GAN……………………………………………………………………………………………………….. 608

17.5. Заключение………………………………………………………………………………………………………………………….. 609

Глава 18. Графовые нейронные сети: выявление зависимостей
в структурированных графовых данных………………………………………………………………………………….. 610

18.1. Введение в графовые данные………………………………………………………………………………………………. 611

18.1.1. Неориентированные графы……………………………………………………………………………………….. 611

18.1.2. Ориентированные графы…………………………………………………………………………………………… 612

18.1.3. Помеченные графы……………………………………………………………………………………………………. 612

18.1.4. Представление молекул в виде графов………………………………………………………………………. 613

18.2. Что такое графовая свертка?………………………………………………………………………………………………… 614

18.2.1. Причина использования графовых сверток…………………………………………………………………. 614

18.2.2. Реализация базовой свертки графа……………………………………………………………………………. 616

18.3. Построение GNN в PyTorch с нуля…………………………………………………………………………………………. 620

18.3.1. Определение модели NodeNetwork…………………………………………………………………………….. 620

18.3.2. Реализация слоя графовой свертки NodeNetwork……………………………………………………….. 622

18.3.3. Добавочный слой глобального объединения для работы с графами разного размера…… 623

18.3.4. Подготовка загрузчика данных DataLoader………………………………………………………………….. 625

18.3.5. Использование NodeNetwork для прогнозирования…………………………………………………….. 627

18.4. Построение GNN с использованием геометрической библиотеки PyTorch……………………………….. 628

18.5. Другие слои GNN и новейшие разработки……………………………………………………………………………… 634

18.5.1. Спектральные графовые свертки……………………………………………………………………………….. 634

18.5.2. Объединение…………………………………………………………………………………………………………….. 635

18.5.3. Нормализация……………………………………………………………………………………………………………. 637

18.5.4. Дополнительная литература по графовым нейронным сетям………………………………………. 639

18.6. Заключение………………………………………………………………………………………………………………………….. 640

Глава 19. Обучение с подкреплением для принятия решений в сложных условиях………………… 641

19.1. Введение в обучение на собственном опыте………………………………………………………………………….. 642

19.1.1. Ключевые идеи обучения с подкреплением…………………………………………………………………. 642

19.1.2. Определение интерфейса агент-среда в системе обучения с подкреплением……………….. 643

19.2. Теоретические основы RL…………………………………………………………………………………………………….. 645

19.2.1. Марковские процессы принятия решений……………………………………………………………………. 645

Математическая основа марковских процессов принятия решений………………………………. 645

Визуальное представление марковского процесса………………………………………………………. 647

19.2.2. Эпизодические и непрерывные задачи……………………………………………………………………….. 648

19.2.3. Терминология RL: отдача, стратегия и функция ценности……………………………………………. 648

Отдача………………………………………………………………………………………………………………………. 648

Стратегия………………………………………………………………………………………………………………….. 650

Функция ценности………………………………………………………………………………………………………. 650

19.2.4. Уравнение Беллмана в динамическом программировании…………………………………………… 652

19.3. Алгоритмы обучения с подкреплением…………………………………………………………………………………… 653

19.3.1. Динамическое программирование………………………………………………………………………………. 653

Оценка стратегии: прогнозирование функции ценности с помощью
динамического программирования……………………………………………………………………………… 654

Улучшение стратегии с помощью известной функции ценности……………………………………. 655

Итерация стратегии……………………………………………………………………………………………………. 655

Итерация ценности…………………………………………………………………………………………………….. 655

19.3.2. Обучение с подкреплением по методу Монте-Карло…………………………………………………….. 656

Нахождение функции ценности состояния с использованием MC…………………………………. 656

Нахождение функции ценности действия с использованием MC…………………………………… 657

Поиск оптимальной стратегии с помощью MC-управления…………………………………………… 657

Улучшение стратегии: вычисление жадной стратегии на основе функции
ценности действия……………………………………………………………………………………………………… 657

19.3.3. Обучение на временнх разностях……………………………………………………………………………… 658

Прогнозирование ценности с TD…………………………………………………………………………………. 658

Алгоритм on-policy TD (SARSA)…………………………………………………………………………………… 660

Алгоритм off-policy TD (Q-обучение)……………………………………………………………………………. 660

19.4. Реализация первого алгоритма RL………………………………………………………………………………………… 661

19.4.1. Знакомство с набором инструментов OpenAI Gym………………………………………………………… 661

Работа с готовыми средами в OpenAI Gym………………………………………………………………….. 661

Пример клетчатого мира…………………………………………………………………………………………….. 663

Реализация среды клетчатого мира в OpenAI Gym………………………………………………………. 664

19.4.2. Решение задачи клетчатого мира с помощью Q-обучения…………………………………………… 670

19.5. Обзор глубокого Q-обучения…………………………………………………………………………………………………. 673

19.5.1. Применение алгоритма Q-обучения в моделях DQN……………………………………………………. 674

Глобальная память……………………………………………………………………………………………………. 674

Определение целей для расчета потерь……………………………………………………………………… 676

19.5.2. Реализация алгоритма глубокого Q-обучения……………………………………………………………… 677

19.6. Краткое содержание главы и книги………………………………………………………………………………………… 680

Yuxi (Hayden) Liu

Юси (Хэйден) Лю — инженер-программист, отдел машинного обучения в Google. Он разрабатывает и совершенствует модели и системы машинного обучения для оптимизации рекламы в крупнейшей поисковой системе мира.

 

 

Vahid Mirjalili

Вахид Мирджалили — исследователь глубокого обучения, специализирующийся на приложениях CV. Вахид получил степень доктора философии. Степень в области машиностроения и компьютерных наук Мичиганского государственного университета.

 

 

Sebastian Raschka

Себастьян Рашка — доцент кафедры статистики в Университете Висконсин-Мэдисон, специализирующийся на исследованиях в области машинного обучения и глубокого обучения. Будучи ведущим преподавателем искусственного интеллекта в Grid AI, Себастьян планирует и дальше следовать своей страсти — помогать людям осваивать машинное обучение и искусственный интеллект.

Опубликовано

Встречайте: “Прикладное машинное обучение и искусственный интеллект для инженеров”

Прикладное машинное обучение и искусственный интеллект для инженеров

Книга рассказывает о применении искусственного интеллекта и машинного обучения в бизнесе и инженерной практике. Подробно описаны популярные алгоритмы машинного обучения и разъяснено, когда их целесообразно использовать. Приведены примеры построения моделей машинного обучения на языке Python с помощью библиотеки Scikit-Learn, а также создания нейронных сетей посредством библиотек Keras и TensorFlow. Изложены базовые принципы и способы оценки регрессионных моделей, моделей бинарной и многоклассовой классификации. Показаны примеры создания модели распознавания лиц и обнаружения объектов, языковых моделей, отвечающих на естественно-языковые вопросы и переводящих текст на другие языки. Рассмотрено использование набора облачных API Cognitive Services для внедрения ИИ в различные приложения.

Для инженеров и разработчиков программного обеспечения

Птица на обложке книги — это праздничный попугай (Amazona festiva), известный как праздничный амазон. Попугаи этого вида обитают в тропических лесах, лесополосах и прибрежных мангровых зарослях нескольких стран Южной Америки, включая Бразилию, Колумбию, Эквадор, Перу и Боливию. Их редко можно встретить вдали от воды.

В то время как многие руководства по искусственному интеллекту (ИИ) представляют собой скорее учебники по математике, в этой книге математики практически нет.

Вместо этого автор помогает инженерам и разработчикам программного обеспечения интуитивно понять и использовать ИИ для решения технических и бизнес-задач. Эта книга научит вас практическим навыкам, необходимым для внедрения ИИ и машинного обучения в вашей компании.

В книге приводятся примеры и иллюстрации из курсов по искусственному интеллекту и машинному обучению, которые автор преподает в компаниях и исследовательских институтах по всему миру. Здесь нет пустых слов и страшных уравнений — только полезная информация для инженеров и разработчиков программного обеспечения, дополненная практическими примерами.

Эта книга поможет вам:

  • узнать, что такое машинное обучение и глубокое обучение;
  • понять, как работают популярные алгоритмы машинного обучения и когда их следует применять;
  • построить модели машинного обучения на языке Python с помощью библиотеки Scikit-Learn, а также создать нейронные сети, используя библиотеки Keras и TensorFlow;
  • обучать и оценивать регрессионные модели, а также модели бинарной и многоклассовой классификации;
    создавать модели распознавания лиц и обнаружения объектов;
  • строить языковые модели, отвечающие на естественно-языковые вопросы и переводящие текст на другие языки;
  • использовать набор облачных API Cognitive Services для внедрения ИИ в создаваемые вами приложения.

Решение задач, которые невозможно решить алгоритмически!

Книгу “Прикладное машинное обучение и искусственный интеллект для инженеров” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Отзывы о книге
“Прикладное машинное обучение и искусственный интеллект
для инженеров”. 11

Об авторе. 17

Об изображении на обложке. 18

Предисловие. 19

Введение. 21

Кто должен прочитать эту книгу. 21

Почему я написал эту книгу. 22

Использование примеров кода из книги. 23

Как организована эта книга. 24

Условные обозначения и соглашения. 25

Благодарности. 25

Часть I. Машинное обучение с помощью Scikit-Learn. 27

ГЛАВА 1. Машинное обучение. 29

Что такое машинное обучение?. 30

Машинное обучение в сравнении с искусственным интеллектом.. 33

Обучение с учителем и без учителя. 35

Обучение без учителя с помощью кластеризации k средних. 36

Применение кластеризации k средних к данным о клиентах. 39

Сегментирование клиентов по более чем двум измерениям.. 43

Обучение с учителем.. 47

Метод k ближайших соседей. 49

Использование k ближайших соседей для классификации цветов. 51

Резюме. 55

ГЛАВА 2. Регрессионные модели. 57

Линейная регрессия. 57

Деревья решений. 61

Случайные леса. 65

Градиентно-бустинговые машины.. 66

Метод опорных векторов. 69

Меры точности для регрессионных моделей. 70

Использование регрессии для прогнозирования тарифов на такси. 74

Резюме. 79

ГЛАВА 3. Классификационные модели. 81

Логистическая регрессия. 82

Меры точности для классификационных моделей. 84

Категориальные данные. 88

Бинарная классификация. 90

Классификация пассажиров, плывших на “Титанике”. 91

Обнаружение мошенничества с кредитными картами. 95

Мультиклассовая классификация. 100

Построение модели распознавания цифр. 102

Резюме. 105

ГЛАВА 4. Классификация текста. 107

Подготовка текста к классификации. 107

Анализ настроений. 111

Наивный Байес. 115

Фильтрация спама. 118

Рекомендательные системы.. 122

Косинусное сходство. 123

Построение системы рекомендаций фильмов. 124

Резюме. 126

ГЛАВА 5. Метод опорных векторов. 128

Принцип работы метода опорных векторов. 128

Ядра. 131

Ядерные трюки. 132

Настройка гиперпараметров. 134

Нормализация данных. 138

Конвейеризация. 142

Использование SVM для распознавания лиц. 143

Резюме. 149

ГЛАВА 6. Анализ главных компонент. 151

Что такое анализ главных компонент. 152

Фильтрация шумов. 159

Анонимизация данных. 161

Визуализация высокоразмерных данных. 163

Обнаружение аномалий. 167

Использование PCA для обнаружения мошенничества с кредитными картами  168

Использование РСА для прогнозирования выхода из строя
подшипников. 172

Обнаружение многомерных аномалий. 178

Резюме. 178

ГЛАВА 7. Операционализация моделей машинного обучения. 180

Обращение к Python-модели из Python-клиента. 181

Версионирование файлов Pickle. 184

Обращение к Python-модели из C#-клиента. 185

Сохранение модели машинного обучения в контейнере. 187

Использование ONNX для преодоления языковой лакуны.. 189

Построение моделей машинного обучения на C# с помощью ML.NET. 193

Анализ настроений с помощью ML.NET. 194

Сохранение и загрузка моделей ML.NET. 197

Добавление возможностей машинного обучения в Excel 197

Резюме. 201

Часть II.  Глубокое обучение с помощью Keras и TensorFlow.. 203

ГЛАВА 8. Глубокое обучение. 205

Понимание нейронных сетей. 206

Обучение нейронных сетей. 211

Резюме. 213

ГЛАВА 9. Нейронные сети. 215

Построение нейронных сетей с помощью Keras и TensorFlow.. 216

Определение размеров нейронной сети. 219

Использование нейронной сети для прогнозирования стоимости проезда
в такси. 221

Бинарная классификация с помощью нейронных сетей. 225

Выполнение прогнозирования. 227

Обучение нейронной сети для обнаружения мошенничества
с кредитными картами. 228

Мультиклассовая классификация с помощью нейронных сетей. 232

Обучение нейронной сети для распознавания лиц. 235

Отсев. 238

Сохранение и загрузка моделей. 240

Обратные вызовы Keras. 241

Резюме. 244

ГЛАВА 10. Классификация изображений с помощью сверточных нейронных сетей  246

Понимание работы сверточных нейронных сетей. 247

Использование Keras и TensorFlow для построения CNN.. 250

Обучение CNN распознаванию арктических диких животных. 255

Предварительно обученные CNN.. 260

Использование ResNet50V2 для классификации изображений. 263

Трансферное обучение. 265

Использование трансферного обучения для идентификации диких животных Арктики  268

Аугментация данных. 272

Аугментация изображений с помощью ImageDataGenerator. 272

Аугментация изображений с помощью аугментационных слоев. 275

Применение аугментации для изображений дикой природы Арктики. 276

Глобальный пулинг. 279

Классификация аудио с помощью CNN.. 281

Резюме. 288

ГЛАВА 11. Обнаружение и распознавание лиц. 290

Обнаружение лиц. 291

Обнаружение лиц с помощью алгоритма Виолы — Джонса. 291

Использование реализации алгоритма Виолы — Джонса в OpenCV.. 294

Обнаружение лиц с помощью сверточных нейронных сетей. 296

Извлечение лиц из фотографий. 300

Распознавание лиц. 302

Применение трансферного обучения для распознавания лиц. 303

Совершенствование трансферного обучения с помощью весов для конкретной задачи  307

ArcFace. 310

Собираем все вместе: обнаружение и распознавание лиц на фотографиях. 311

Работа с неизвестными лицами: классификация по закрытым и открытым наборам   317

Резюме. 319

ГЛАВА 12. Обнаружение объектов. 320

R-CNN.. 321

Mask R-CNN.. 324

YOLO.. 330

YOLOv3 и Keras. 332

Обнаружение нестандартных объектов. 337

Обучение пользовательской модели обнаружения объектов
с помощью службы Custom Vision. 337

Использование экспортированной модели. 345

Резюме. 347

ГЛАВА 13. Обработка естественного языка. 349

Подготовка текста. 350

Эмбеддинги слов. 353

Классификация текста. 354

Автоматизация векторизации текста. 357

Использование TextVectorization в модели анализа настроений. 358

Учет порядка слов в прогнозах. 361

Рекуррентные нейронные сети (RNN) 362

Использование предварительно обученных моделей для классификации текста  364

Нейронный машинный перевод. 366

Кодировщик-декодировщик LSTM.. 366

Трансформерные кодировщики-декодировщики. 369

Построение NMT-модели на основе трансформера. 371

Использование предварительно обученных моделей для перевода
текста. 380

Двунаправленное представление кодировщика на основе трансформеров (BERT) 381

Построение системы ответов на вопросы на основе BERT. 382

Тонкая настройка BERT для выполнения анализа настроений. 386

Резюме. 390

ГЛАВА 14. Azure Cognitive Services. 392

Знакомство с Azure Cognitive Services. 393

Ключи и конечные точки. 395

Обращения к API-интерфейсам Azure Cognitive Services. 398

Контейнеры Azure Cognitive Services. 401

Сервис Computer Vision. 402

Сервис Language. 412

Сервис Translator 415

Сервис Speech. 416

Собираем все вместе: Contoso Travel 418

Резюме. 423

Предметный указатель. 424

 

 

 

 

Опубликовано

Уже в продаже: “Проектирование систем машинного обучения”

Проектирование систем машинного обучения

егодня машинное обучение – основной практический аппарат для применения искусственного интеллекта. Книга, основанная на стэнфордском учебном курсе, не ограничивается разбором конкретных библиотек, а описывает высокоуровневый подход к разработке систем машинного обучения, который упрощает их поддержку и развитие, позволяет избежать переобучения, искажения результатов. Рассказано, как сделать новую систему машинного обучения или нейронную сеть, надёжной, репрезентативной и расширяемой, а также качественно доработать уже существующие системы. Также показано, как подобрать библиотеки и алгоритмы с учётом имеющегося множества данных и действующих бизнес-требований, конструировать признаки и отслеживать метрики.

Книга адресована программистам и специалистам по 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 по проектированию систем машинного обучения.