"Эта книга - замечательное введение в теорию и практику решения задач с помощью нейронных сетей. Она охватывает ключевые моменты, необходимые для построения эффективных приложений, а также обеспечивает достаточную основу для понимания результатов новых исследований по мере их появления. Я рекомендую эту книгу всем, кто заинтересован в освоении практического машинного обучения."
- Пит Уорден, технический руководитель направления TensorFlow
Благодаря серии недавних достижений глубокое обучение значительно усилило всю область машинного обучения. В наше время даже программисты, почти ничего не знающие об этой технологии, могут использовать простые и эффективные инструменты для реализации программ, которые способны обучаться на основе данных. В настоящем практическом руководстве показано, что и как следует делать.
За счет применения конкретных примеров, минимума теории и двух фреймворков Python производственного уровня - Scikit-Learn и TensorFlow - автор книги Орельен Жерон поможет вам получить интуитивное представление о концепциях и инструментах, предназначенных для построения интеллектуальных систем. Вы узнаете о ряде приемов, начав с простой линейной регрессии и постепенно добравшись до глубоких нейронных сетей. Учитывая наличие в каждой главе упражнений, призванных закрепить то, чему вы научились, для начала работы нужен лишь опыт программирования.
Author(s): Жерон Орельен
Publisher: Диалектика
Year: 2018
Language: Russian
Pages: 690
Благодарности......Page 16
Цунами машинного обучения......Page 18
Цель и подход......Page 19
Предварительные требования......Page 20
Дорожная карта......Page 21
Другие ресурсы......Page 22
Типографские соглашения, используемые в книге......Page 23
Использование примеров кода......Page 24
Ждем ваших отзывов!......Page 25
Часть I. Основы машинногообучения......Page 26
Глава 1. Введение в машинное обучение......Page 28
Что такое машинное обучение?......Page 29
Для чего используют машинное обучение?......Page 30
Типы систем машинного обучения......Page 33
Обучение с учителем и без учителя......Page 34
Пакетное и динамическое обучение......Page 41
Обучение на основе образцов или на основе моделей......Page 44
Недостаточный размер обучающих данных......Page 51
Нерепрезентативные обучающие данные......Page 53
Несущественные признаки......Page 55
Переобучение обучающих данных......Page 56
Недообучение обучающих данных......Page 58
Шаг назад......Page 59
Испытание и проверка......Page 60
Упражнения......Page 62
Работа с реальными данными......Page 64
Постановка задачи......Page 66
Выбор критерия качества работы......Page 69
Создание рабочей области......Page 72
Загрузка данных......Page 76
Беглый взгляд на структуру данных......Page 78
Создание испытательного набора......Page 82
Визуализация географических данных......Page 88
Поиск связей......Page 91
Экспериментирование с комбинациями атрибутов......Page 94
Подготовка данных для алгоритмов машинного обучения......Page 95
Очистка данных......Page 96
Обработка текстовых и категориальных атрибутов......Page 99
Специальные трансформаторы......Page 103
Масштабирование признаков......Page 104
Конвейеры трансформации......Page 105
Выбор и обучение модели......Page 107
Обучение и оценка с помощью обучающего набора......Page 108
Более подходящая оценка с использованием перекрестной проверки......Page 109
Решетчатый поиск......Page 112
Рандомизированный поиск......Page 115
Анализ лучших моделей и их ошибок......Page 116
Оценка системы с помощью испытательного набора......Page 117
Запуск, наблюдение и сопровождение системы......Page 118
Упражнения......Page 119
MNIST......Page 122
Обучение двоичного классификатора......Page 125
Измерение правильности с использованием перекрестной проверки......Page 126
Матрица неточностей......Page 128
Точность и полнота......Page 130
Соотношение точность/полнота......Page 132
Кривая ROC......Page 136
Многоклассовая классификация......Page 140
Анализ ошибок......Page 143
Многозначная классификация......Page 147
Многовыходовая классификация......Page 149
Упражнения......Page 151
Глава 4. Обучение моделей......Page 154
Линейная регрессия......Page 155
Нормальное уравнение......Page 157
Вычислительная сложность......Page 160
Градиентный спуск......Page 161
Пакетный градиентный спуск......Page 164
Стохастический градиентный спуск......Page 168
Мини-пакетный градиентный спуск......Page 171
Полиномиальная регрессия......Page 173
Кривые обучения......Page 175
Гребневая регрессия......Page 180
Лассо-регрессия......Page 183
Эластичная сеть......Page 185
Раннее прекращение......Page 186
Оценивание вероятностей......Page 188
Обучение и функция издержек......Page 190
Границы решений......Page 191
Многопеременная логистическая регрессия......Page 194
Упражнения......Page 198
Линейная классификация SVM......Page 200
Классификация с мягким зазором......Page 201
Нелинейная классификация SVM......Page 204
Полиномиальное ядро......Page 205
Добавление признаков близости......Page 207
Гауссово ядро RBF......Page 208
Вычислительная сложность......Page 210
Регрессия SVM......Page 211
Функция решения и прогнозы......Page 213
Цель обучения......Page 214
Квадратичное программирование......Page 216
Двойственная задача......Page 217
Параметрически редуцированные методы SVM......Page 218
Динамические методы SVM......Page 221
Упражнения......Page 223
Обучение и визуализация дерева принятия решений......Page 224
Вырабатывание прогнозов......Page 226
Оценивание вероятностей классов......Page 228
Алгоритм обучения CART......Page 229
Вычислительная сложность......Page 230
Гиперпараметры регуляризации......Page 231
Регрессия......Page 233
Неустойчивость......Page 236
Упражнения......Page 237
Глава 7. Ансамблевое обучение и случайные леса......Page 240
Классификаторы с голосованием......Page 241
Бэггинг и вставка......Page 244
Бэггинг и вставка в Scikit-Learn......Page 246
Оценка на неиспользуемых образцах......Page 247
Случайные леса......Page 249
Значимость признаков......Page 251
Бустинг......Page 252
AdaBoost......Page 253
Градиентный бустинг......Page 257
Стекинг......Page 262
Упражнения......Page 265
Глава 8. Понижение размерности......Page 268
“Проклятие размерности”......Page 269
Проекция......Page 271
Обучение на основе многообразий......Page 273
Предохранение дисперсии......Page 275
Главные компоненты......Page 276
Использование Scikit-Learn......Page 278
Выбор правильного количества измерений......Page 279
Алгоритм РСА для сжатия......Page 280
Инкрементный анализ главных компонентов......Page 282
Ядерный анализ главных компонентов......Page 283
Выбор ядра и подстройка гиперпараметров......Page 284
LLE......Page 287
Другие приемы понижения размерности......Page 289
Упражнения......Page 290
Часть II. Нейронные сети и глубокое обучение......Page 292
Глава 9. Подготовка к работе с TensorFlow......Page 294
Создание первого графа и его прогон в сеансе......Page 298
Управление графами......Page 300
Жизненный цикл значения узла......Page 301
Линейная регрессия с помощью TensorFlow......Page 302
Реализация градиентного спуска......Page 303
Расчет градиентов вручную......Page 304
Использование autodiff......Page 305
Передача данных алгоритму обучения......Page 307
Сохранение и восстановление моделей......Page 309
Визуализация графа и кривых обучения с использованием TensorBoard......Page 310
Пространства имен......Page 314
Модульность......Page 315
Совместное использование переменных......Page 317
Упражнения......Page 321
Глава 10. Введение в искусственные нейронные сети......Page 324
От биологических нейронов к искусственным нейронам......Page 325
Биологические нейроны......Page 326
Логические вычисления с помощью нейронов......Page 327
Персептрон......Page 329
Многослойный персептрон и обратная связь......Page 334
Обучение многослойного персептрона с помощью высокоуровневого API-интерфейса TensorFlow......Page 337
Стадия построения......Page 339
Стадия выполнения......Page 344
Использование нейронной сети......Page 345
Точная настройка гиперпараметров нейронной сети......Page 346
Количество скрытых слоев......Page 347
Количество нейронов на скрытый слой......Page 348
Функции активации......Page 349
Упражнения......Page 350
Глава 11. Обучение глубоких нейронных сетей......Page 352
Проблемы исчезновения и взрывного роста градиентов......Page 353
Инициализация Ксавье и Хе......Page 354
Ненасыщаемые функции активации......Page 357
Пакетная нормализация......Page 360
Отсечение градиентов......Page 366
Повторное использование модели TensorFlow......Page 367
Повторное использование моделей из других фреймворков......Page 371
Замораживание низкоуровневых слоев......Page 372
Кеширование замороженных слоев......Page 373
Зоопарки моделей......Page 374
Предварительное обучение без учителя......Page 375
Предварительное обучение на вспомогательной задаче......Page 376
Более быстрые оптимизаторы......Page 377
Моментная оптимизация......Page 378
Ускоренный градиент Нестерова......Page 379
AdaGrad......Page 381
Оптимизация Adam......Page 383
Планирование скорости обучения......Page 386
Раннее прекращение......Page 389
Регуляризация и £2......Page 390
Отключение......Page 391
Регуляризация на основе шах-нормы......Page 394
Дополнение данных......Page 396
Практические рекомендации......Page 398
Упражнения......Page 399
Глава 12. Использование TensorFlow для распределения вычислений между устройствами и серверами......Page 402
Множество устройств на единственной машине......Page 403
Установка......Page 404
Управление оперативной памятью графического процессора......Page 407
Размещение операций на устройствах......Page 409
Параллельное выполнение......Page 413
Зависимости управления......Page 415
Множество устройств на множестве серверов......Page 416
Открытие сеанса......Page 418
Прикрепление операций между задачами......Page 419
Фрагментация переменных среди множества серверов параметров......Page 420
Разделение состояния между сеансами с использованием контейнеров ресурсов......Page 422
Асинхронное взаимодействие с использованием очередей TensorFlow......Page 424
Загрузка данных напрямую из графа......Page 430
Распараллеливание нейронных сетей в кластере TensorFlow......Page 439
Одна нейронная сеть на устройство......Page 440
Репликация внутри графа или между графами......Page 441
Параллелизм модели......Page 444
Параллелизм данных......Page 446
Упражнения......Page 452
Глава 13. Сверточные нейронные сети......Page 454
Строение зрительной коры головного мозга......Page 455
Сверточный слой......Page 457
Фильтры......Page 459
Наложение множества карт признаков......Page 460
Реализация с помощью TensorFlow......Page 463
Требования к памяти......Page 465
Объединяющий слой......Page 467
Архитектуры сверточных нейронных сетей......Page 468
LeNet-5......Page 470
AlexNet......Page 471
GoogLeNet......Page 473
ResNet......Page 477
Упражнения......Page 483
Глава 14. Рекуррентные нейронные сети......Page 486
Рекуррентные нейроны......Page 487
Входные и выходные последовательности......Page 490
Базовые рекуррентные нейронные сети в TensorFlow......Page 492
Статическое развертывание во времени......Page 493
Обработка входных последовательностей переменной длины......Page 496
Обучение рекуррентных нейронных сетей......Page 498
Обучение классификатора последовательностей......Page 499
Обучение для прогнозирования временных рядов......Page 501
Креативная рекуррентная нейронная сеть......Page 506
Глубокие рекуррентные нейронные сети......Page 507
Распределение глубокой рекуррентной нейронной сети между множеством графических процессоров......Page 508
Применение отключения......Page 509
Трудность обучения в течение многих временных шагов......Page 511
Ячейка LSTM......Page 512
Ячейка GRU......Page 515
Векторные представления слов......Page 517
Сеть “кодировщик-декодировщик” для машинного перевода......Page 520
Упражнения......Page 524
Глава 15. Автокодировщики......Page 526
Эффективные представления данных......Page 527
Выполнение анализа главных компонентов с помощью понижающего линейного автокодировщика......Page 529
Многослойные автокодировщики......Page 530
Реализация с помощью TensorFlow......Page 531
Связывание весов......Page 533
Обучение по одному автокодировщику за раз......Page 534
Визуализация реконструкций......Page 537
Визуализация признаков......Page 538
Предварительное обучение без учителя с использованием многослойных автокодировщиков......Page 539
Шумоподавляющие автокодировщики......Page 541
Реализация с помощью TensorFlow......Page 542
Разреженные автокодировщики......Page 544
Реализация с помощью TensorFlow......Page 545
Вариационные автокодировщики......Page 546
Генерирование цифр......Page 550
Другие автокодировщики......Page 551
Упражнения......Page 553
Глава 16. Обучение с подкреплением......Page 556
Обучение для оптимизации наград......Page 557
Поиск политики......Page 559
Введение в OpenAI Gym......Page 561
Политики в форме нейронных сетей......Page 565
Оценка действий: проблема присваивания коэффициентов доверия......Page 568
Градиенты политики......Page 569
Марковские процессы принятия решений......Page 575
Обучение методом временных разностей и Q-обучение......Page 580
Политики исследования......Page 582
Приближенное Q-обучение и глубокое Q-обучение......Page 583
Обучение играть в игру Ms. Рас-Man с использованием алгоритма сети DQN 584 Упражнения......Page 595
Спасибо!......Page 596
Глава 1. Введение в машинное обучение......Page 597
Глава 4. Обучение моделей......Page 600
Глава 5. Методы опорных векторов......Page 603
Глава 6. Деревья принятия решений......Page 605
Глава 7. Ансамблевое обучение и случайные леса......Page 606
Глава 8. Понижение размерности......Page 608
Глава 9. Подготовка к работе с TensorFlow......Page 611
Глава 10. Введение в искусственные нейронные сети......Page 614
Глава 11. Обучение глубоких нейронных сетей......Page 617
Глава 12. Использование TensorFlow для распределения вычислений между устройствами и серверами......Page 619
Глава 13. Сверточные нейронные сети......Page 622
Глава 14. Рекуррентные нейронные сети......Page 625
Глава 15. Автокодировщики......Page 627
Глава 16. Обучение с подкреплением......Page 630
Постановка задачи и выяснение общей картины......Page 634
Получение данных......Page 635
Исследование данных......Page 636
Подготовка данных......Page 637
Составление окончательного списка перспективных моделей......Page 638
Точная настройка системы......Page 639
Запуск!......Page 640
Приложение В. Двойственная задача SVM......Page 641
Ручное дифференцирование......Page 644
Символическое дифференцирование......Page 645
Численное дифференцирование......Page 646
Автоматическое дифференцирование в прямом режиме......Page 648
Автоматическое дифференцирование в обратном режиме......Page 649
СетиХопфилда......Page 652
Машины Больцмана......Page 654
Ограниченные машины Больцмана......Page 656
Глубокие сети доверия......Page 657
Самоорганизующиеся карты......Page 660
Предметный указатель......Page 663