ТОМ 1. ОСНОВЫ
Глава 1. Введение в машинное обучение и глубокое обучение
Глава 2. Хаотичность и базовая статистика
Глава 3. Вероятность
Глава 4. Правило Байеса
Глава 5. Кривые и поверхности
Глава 6. Теория информации
Глава 7. Классификация
Глава 8. Обучение и тестирование
Глава 9. Избыточное обучение и недостаточное обучение
Глава 10. Нейроны
Глава 11. Обучение и мышление
Глава 12. Подготовка данных
Глава 13. Классификаторы
Глава 14. Ансамбли
Глава 15. Библиотека Scikit-learn
Глава 16. Нейронные сети прямого распространения
Глава 17. Функции активации
Глава 18. Обратное распространение
Глава 19. Оптимизаторы
ТОМ 2. ПРАКТИКА
Предисловие. Добро пожаловать!.....................................................................12
Глава 20. Глубокое обучение...............................................................................19
20.1. Зачем здесь эта глава ........................................................................................19
20.2. Обзор глубокого обучения................................................................................19
20.2.1. Тензоры.......................................................................................................21
20.3. Вход и выход слоев............................................................................................22
20.3.1. Входной слой ..............................................................................................22
20.3.2. Выходной слой............................................................................................23
20.4. Обзор слоев глубокого обучения......................................................................23
6  Содержание
20.4.1. Полносвязные слои ....................................................................................24
20.4.2. Функции активации...................................................................................25
20.4.3. Выпадающий слой......................................................................................26
20.4.4. Групповая нормализация ..........................................................................27
20.4.5. Свертка........................................................................................................29
20.4.6. Объединение слоев ....................................................................................31
20.4.7. Рекуррентные слои.....................................................................................32
20.4.8. Другие применяемые слои........................................................................33
20.5. Обзор схематических символов слоев.............................................................34
20.6. Некоторые примеры .........................................................................................35
20.7. Построение глубокого обучающегося..............................................................43
20.7.1. Начало .........................................................................................................45
20.8. Интерпретация результатов.............................................................................46
20.8.1. Удовлетворительное объяснение..............................................................50
Справочные материалы ............................................................................................52
Заимствованные рисунки .........................................................................................53
Глава 21. Нейронные сети свертки....................................................................54
21.1. Зачем здесь эта глава ........................................................................................54
21.2. Введение ............................................................................................................54
21.2.1. Два значения слова «глубина»...................................................................55
21.2.2. Сумма масштабированных величин.........................................................56
21.2.3. Разделение веса..........................................................................................59
21.2.4. Локальное воспринимаемое поле.............................................................61
21.2.5. Ядро.............................................................................................................62
21.3. Свертка...............................................................................................................63
21.3.1. Фильтры......................................................................................................66
21.3.2. С высоты птичьего полета.........................................................................69
21.3.3. Иерархии фильтров....................................................................................69
21.3.4. Дополнение пробелами (паддинг)............................................................76
21.3.5. Величина шага............................................................................................78
21.4. Многомерная свертка .......................................................................................80
21.4.1. Фильтры со многими каналами................................................................83
21.4.2. Большой шаг в иерархиях..........................................................................85
21.5. Свертка 1D .........................................................................................................86
21.6. Свертка 1×1........................................................................................................87
21.7. Слой свертки......................................................................................................89
21.7.1. Инициализация весов фильтров ...............................................................90
21.8. Транспонированная свертка ............................................................................91
21.9. Пример сети свертки ........................................................................................95
21.9.1. Сеть VGG16..................................................................................................98
21.9.2. Посмотрим на фильтры. Часть 1 .............................................................102
21.9.3. Посмотрим на фильтры. Часть 2 .............................................................107
21.10. Противники ...................................................................................................111
Справочные материалы ..........................................................................................114
Заимствованные рисунки .......................................................................................116
Содержание  7
Глава 22. Рекуррентные нейронные сети .....................................................117
22.1. Зачем здесь эта глава ......................................................................................117
22.2. Введение ..........................................................................................................118
22.3. Состояние ........................................................................................................121
22.3.1. Использование состояния .......................................................................122
22.4. Структура ячейки RNN....................................................................................126
22.4.1. Ячейка со многими состояниями............................................................129
22.4.2. Интерпретация величин состояния........................................................132
22.5. Организация входов .......................................................................................132
22.6. Обучение RNN .................................................................................................135
22.7. LSTM и GRU......................................................................................................138
22.7.1. Вентиль......................................................................................................138
22.7.2. LSTM ..........................................................................................................141
22.8. Структура RNN.................................................................................................146
22.8.1. Один или много входов и выходов .........................................................146
22.8.2. Глубокие RNN ...........................................................................................149
22.8.3. Двунаправленные RNN............................................................................150
22.8.4. Глубокие двунаправленные RNN ............................................................151
22.9. Пример.............................................................................................................151
Справочные материалы ..........................................................................................157
Глава 23. Keras. Часть 1.......................................................................................161
23.1. Зачем здесь эта глава ......................................................................................161
23.1.1. Структура этой главы...............................................................................162
23.1.2. Ноутбуки ...................................................................................................162
23.1.3. Предупреждения Python..........................................................................162
23.2. Библиотеки и отладка .....................................................................................163
23.2.1. Версии и стиль программирования........................................................164
23.2.2. Программирование на Python и отладка ...............................................165
23.3. Обзор................................................................................................................166
23.3.1. Что такое модель? ....................................................................................167
23.3.2. Тензоры и решетки ..................................................................................167
23.3.3. Установка Keras.........................................................................................167
23.3.4. Форма тензоров изображений ................................................................168
23.3.4. Графический процессор и ускорители....................................................171
23.4. Начало работы.................................................................................................171
23.4.1. Hello, World ...............................................................................................172
23.5. Подготовка данных .........................................................................................174
23.5.1. Переформатирование..............................................................................175
23.5.2. Загрузка данных ......................................................................................182
23.5.3. Глядя на данные .......................................................................................184
23.5.4. Разбиение на обучающий и тестовый наборы.......................................189
23.5.5. Исправление типа данных.......................................................................190
23.5.6. Нормализация данных.............................................................................191
23.5.7. Исправление маркировок........................................................................193
23.5.8. Вся предварительная обработка в одном месте ....................................197
8  Содержание
23.6. Создание модели.............................................................................................198
23.6.1. Преобразование решетки в список.........................................................199
23.6.2. Создание модели......................................................................................201
23.6.3. Компиляция модели ................................................................................206
23.6.4. Резюме создания модели.........................................................................209
23.7. Обучение модели.............................................................................................210
23.8. Обучение и использование модели ...............................................................213
23.8.1. Взгляд на выходные данные....................................................................214
23.8.2. Предсказание............................................................................................217
23.8.3. Анализ истории обучения .......................................................................221
23.9. Сохранение и загрузка....................................................................................223
23.9.1. Сохранение всего в одном файле............................................................223
23.9.2. Сохранение только весов.........................................................................224
23.9.3. Сохранение только архитектуры ............................................................224
23.9.4. Использование предварительно обученных программ ........................225
23.9.5. Сохранение шагов предварительной обработки ...................................226
23.10. Обратные вызовы..........................................................................................227
23.10.1. Контрольная точка .................................................................................227
23.10.2. Скорость обучения .................................................................................230
23.10.3. Ранняя остановка ...................................................................................231
Справочные материалы ..........................................................................................233
Заимствованные рисунки .......................................................................................235
Глава 24. Keras. Часть 2.......................................................................................236
24.1. Зачем здесь эта глава ......................................................................................236
24.2. Улучшение модели..........................................................................................236
24.2.1. Подсчет гиперпараметров.......................................................................237
24.2.2 Изменение одного гиперпараметра........................................................238
24.2.3. Другие пути улучшения ...........................................................................240
24.2.4. Добавление плотного слоя ......................................................................241
24.2.5. Меньше – больше .....................................................................................242
24.2.6. Добавление выпадения............................................................................244
24.2.7. Наблюдения ..............................................................................................249
24.3. Использование библиотеки Scikit-Learn .......................................................249
24.3.1. Упаковщик библиотеки Keras ..................................................................250
24.3.2. Кросс-валидация ......................................................................................253
24.3.3. Кросс-валидация с нормализацией........................................................257
24.3.4. Поиск гиперпараметров ..........................................................................259
24.4. Нейронные сети свертки (CNN) .....................................................................267
24.4.1. Сервисные слои........................................................................................268
24.4.2. Подготовка данных для сетей свертки ...................................................270
24.4.3. Слои свертки.............................................................................................273
24.4.4. Использование свертки для MNIST.........................................................279
24.4.5. Комбинации слоев ...................................................................................288
24.4.6. Увеличение данных изображения...........................................................290
24.4.7. Синтетические данные ............................................................................294
24.4.8. Поиск параметров для CNN.....................................................................296
Содержание  9
24.4. Рекуррентные нейронные сети (RNN)...........................................................296
24.5.1. Генерация последовательных данных....................................................296
24.5.2. Подготовка данных для RNN...................................................................299
24.5.3. Построение и обучение RNN ...................................................................305
24.5.4. Анализ работы RNN .................................................................................308
24.5.5. Более сложные наборы данных...............................................................315
24.5.6. Глубокая RNN............................................................................................317
24.5.7. Значение большого количества данных .................................................320
24.5.8. Возвращаемые последовательности.......................................................323
24.5.9. RNN с фиксацией состояния....................................................................327
24.5.10. Распределенные во времени слои ........................................................329
24.5.11. Генерирование текста ............................................................................333
24.6. Интерфейс прикладного программирования...............................................339
24.6.1. Входные слои............................................................................................341
24.6.2. Создание функциональной модели........................................................342
Справочные материалы ..........................................................................................347
Заимствованные рисунки .......................................................................................347
Глава 25. Автокодировщики..............................................................................348
25.1. Зачем здесь эта глава ......................................................................................348
25.2. Введение ..........................................................................................................349
25.2.1. Кодирование с потерями и без потерь ...................................................349
25.2.2. Доменное кодирование ...........................................................................350
25.2.3. Смешивание представлений данных .....................................................352
25.3. Простейший автокодировщик .......................................................................355
25.4. Более сложные автокодировщики .................................................................360
25.5. Исследование автокодировщиков .................................................................363
25.5.1. Скрытые переменные..............................................................................363
25.5.2. Параметрическое пространство..............................................................366
25.5.2. Смешивание скрытых переменных........................................................371
25.5.4. Прогнозирование нового входа ..............................................................373
25.6. Обсуждение .....................................................................................................374
25.7. Сверточный автокодировщик ........................................................................375
25.7.1. Смешивание скрытых переменных ........................................................377
25.7.2. Прогнозирование нового входа...............................................................379
25.8. Понижение уровня шума................................................................................380
25.9. Вариационные автокодировщики .................................................................382
25.9.1. Распределение скрытых переменных ....................................................383
25.9.2. Структура вариационного автокодировщика........................................384
25.10. Изучение VAE.................................................................................................390
Справочные материалы ..........................................................................................399
Заимствованные рисунки .......................................................................................400
Глава 26. Обучение с подкреплением............................................................401
26.1. Зачем здесь эта глава ......................................................................................401
26.2. Цели..................................................................................................................402
10  Содержание
26.2.1. Обучение новой игре ...............................................................................403
26.3. Структура обучения с подкреплением ..........................................................406
26.3.1. Шаг 1: агент выбирает действие..............................................................408
26.3.2. Шаг 2: отклик окружающей среды ..........................................................409
26.3.3. Шаг 3: агент обновляется.........................................................................410
26.3.4. Вариации простой версии .......................................................................411
26.3.5. Обратно к общей картине........................................................................412
26.3.6. Сохранение опыта....................................................................................413
26.3.7. Вознаграждения .......................................................................................414
26.4. Игра флиппер ..................................................................................................419
26.5. L-обучение.......................................................................................................421
26.5.1. Обработка непредсказуемости................................................................431
26.6. Q-обучение ......................................................................................................433
26.6.1. Q-величины и обновление ......................................................................434
26.6.2. Политика Q-обучения..............................................................................437
26.6.3. Собираем все вместе................................................................................439
26.6.4. Сходимость алгоритма Q-обучения........................................................440
26.6.5. Q-обучение в действии............................................................................441
26.7. SARSA ...............................................................................................................448
26.7.1. SARSA в действии .....................................................................................451
26.7.2. Сравнение Q-обучения и SARSA..............................................................457
26.8. Общая картина ................................................................................................461
26.9. Воспроизведение опыта .................................................................................462
26.10. Два применения ............................................................................................463
Справочные материалы ..........................................................................................465
Глава 27. Порождающие состязательные сети.............................................467
27.1. Зачем здесь эта глава ......................................................................................467
27.2. Метафора: фальшивые деньги .......................................................................468
27.2.1. Обучение на основе опыта.......................................................................471
27.2.2. Подделка с помощью нейронных сетей..................................................473
27.2.3. Циклы обучения .......................................................................................475
27.3. Почему антагонистические сети? ..................................................................477
27.4. Применение сетей GAN...................................................................................478
27.4.1. Дискриминатор ........................................................................................478
27.4.2. Генератор ..................................................................................................478
27.4.3. Обучение сети GAN ..................................................................................480
27.4.4. Играть в игру ............................................................................................482
27.5. Сеть GAN в действии .......................................................................................482
27.6. Сети DCGAN .....................................................................................................488
27.6.1. Эмпирические правила............................................................................490
27.7. Проблемы .........................................................................................................492
27.7.1. Использование больших образцов ..........................................................493
27.7.2. Модальный коллапс..................................................................................493
Справочные материалы ..........................................................................................495
Содержание  11
Глава 28. Применение для творчества...........................................................497
28.1. Зачем здесь эта глава ......................................................................................497
28.2. Визуализирующие фильтры...........................................................................497
28.2.1. Выбор сети................................................................................................497
28.2.2. Визуализация одного фильтра ................................................................498
28.2.3. Визуализация одного слоя.......................................................................501
28.3. Глубокие сновидения......................................................................................502
28.4. Нейронное преобразование стиля.................................................................507
28.4.1. Захват стиля в матрице............................................................................507
28.4.2. Общая картина .........................................................................................509
28.4.3. Потери содержания..................................................................................510
28.4.4. Потери стиля.............................................................................................512
28.4.5. Перенос стиля...........................................................................................516
28.4.6. Обсуждение ..............................................................................................522
28.5. Генерация другого текста этой книги............................................................524
Справочные материалы ..........................................................................................525
Заимствованные рисунки .......................................................................................526
Глава 29. Наборы данных ..................................................................................527
29.1. Общедоступные наборы данных....................................................................527
29.2. MNIST and Fashion-MNIST..............................................................................528
29.3. Наборы данных, встроенные в библиотеку...................................................528
29.3.1. scikit-learn.................................................................................................528
29.3.2. Keras ..........................................................................................................529
29.4. Коллекции кураторских наборов данных......................................................529
29.5. Некоторые новые наборы данных .................................................................530
Глава 30. Глоссарий..............................................................................................533
Предметный указатель.......................................................................................606