Машинное обучение и TensorFlow
Знакомство с машинным обучением и библиотекой TensorFlow похоже на первые уроки в автошколе, когда вы мучаетесь с параллельной парковкой, пытаетесь переключить передачу в нужный момент и не перепутать зеркала, лихорадочно вспоминая последовательность действий, в то время как ваша нога нервно подрагивает на педали газа. Это сложное, но необходимое упражнение. Так и в машинном обучении: прежде чем использовать современные системы распознавания лиц или алгоритмы прогнозирования на фондовом рынке, вам придется разобраться с соответствующим инструментарием и набором инструкций, чтобы затем без проблем создавать собственные системы.
Новички в машинном обучении оценят прикладную направленность этой книги, ведь ее цель — познакомить с основами, чтобы затем быстро приступить к решению реальных задач. От обзора концепций машинного обучения и принципов работы с TensorFlow, вы перейдете к базовым алгоритмам, изучите нейронные сети и сможете самостоятельно решать задачи классификации, кластеризации, регрессии и прогнозирования.
Предисловие..............................................................................................11
Благодарности...........................................................................................13
Об этой книге.............................................................................................15
Содержание книги..................................................................................................................15
Исходный код...........................................................................................................................16
Форум книги............................................................................................................................16
Об авторе...................................................................................................................................17
Об обложке...............................................................................................................................18
От издательства.......................................................................................................................18
Часть I. Ваше снаряжение для машинного обучения..........................19
Глава 1. Одиссея машинного обучения.........................................................21
1.1. Основы машинного обучения.....................................................................................24
1.1.1. Параметры..............................................................................................................27
1.1.2. Обучение и вывод................................................................................................28
1.2. Представление данных и признаки..........................................................................30
1.3. Метрики расстояния......................................................................................................37
1.4. Типы обучения.................................................................................................................40
1.4.1. Обучение с учителем...........................................................................................40
1.4.2. Обучение без учителя.........................................................................................43
1.4.3. Обучение с подкреплением..............................................................................44
1.5. Библиотека ТensorFlow................................................................................................46
1.6. Обзор предстоящих глав..............................................................................................48
1.7. Краткие итоги...................................................................................................................51
Глава 2. Основы TensorFlow........................................................................53
2.1. Убедитесь, что TensorFlow работает.........................................................................56
2.2. Представление тензоров ..............................................................................................57
2.3. Создание операторов.....................................................................................................62
2.4. Выполнение операторов во время сеанса...............................................................65
2.4.1. Представление кода как графа.........................................................................67
2.4.2. Настройка конфигурации сеансов.................................................................68
2.5. Написание кода в Jupyter.............................................................................................70
2.6. Использование переменных........................................................................................74
2.7. Сохранение и загрузка переменных.........................................................................76
2.8. Визуализация данных с помощью TensorBoard...................................................77
2.8.1. Использование метода скользящего среднего...........................................78
2.8.2. Визуализация метода скользящего среднего.............................................80
2.9. Краткие итоги...................................................................................................................82
Часть II. Основные алгоритмы обучения.............................................85
Глава 3. Линейная и нелинейная регрессия...................................................87
3.1. Формальные обозначения............................................................................................89
3.1.1. Как понять, что алгоритм регрессии работает?........................................92
3.2. Линейная регрессия.......................................................................................................95
3.3. Полиномиальная модель..............................................................................................99
3.4. Регуляризация..............................................................................................................102
3.5. Применение линейной регрессии..........................................................................106
3.6. Краткие итоги................................................................................................................108
Глава 4. Краткое введение в классификацию..............................................111
4.1. Формальные обозначения.........................................................................................114
4.2. Оценка эффективности..............................................................................................117
4.2.1. Правильность......................................................................................................117
4.2.2. Точность и полнота...........................................................................................118
4.2.3. Кривая ошибок ..................................................................................................120
4.3. Использование для классификации линейной регрессии.............................121
4.4. Использование логистической регрессии...........................................................127
4.4.1. Решение одномерной логистической регрессии....................................128
4.4.2. Решение двумерной логистической регрессии.......................................133
4.5. Многоклассовая классификация............................................................................136
4.5.1. Один против всех..............................................................................................137
4.5.2. Каждый против каждого.................................................................................138
4.5.3. Многоклассовая логистическая регрессия...............................................139
4.6. Применение классификации...................................................................................144
4.7. Краткие итоги................................................................................................................145
Глава 5. Автоматическая кластеризация данных.........................................147
5.1. Обход файлов в TensorFlow......................................................................................149
5.2. Извлечение признаков из звукозаписи................................................................151
5.3. Кластеризация методом k-средних........................................................................156
5.4. Сегментация звуковых данных...............................................................................160
5.5. Кластеризация с самоорганизующимися картами...........................................163
5.6. Применение кластеризации.....................................................................................169
5.7. Краткие итоги................................................................................................................170
Глава 6. Скрытое марковское моделирование.............................................171
6.1. Пример не интерпретируемой модели.................................................................173
6.2. Модель Маркова...........................................................................................................174
6.3. Скрытое марковское моделирование....................................................................178
6.4. Алгоритм прямого хода..............................................................................................180
6.5. Декодирование Витерби............................................................................................184
6.6. Применение скрытых марковских моделей.......................................................185
6.6.1. Моделирование видео......................................................................................185
6.6.2. Моделирование ДНК.......................................................................................186
6.6.3. Моделирование изображения.......................................................................186
6.7. Применение скрытых марковских моделей.......................................................186
6.8. Краткие итоги................................................................................................................187
Часть III. Парадигма нейронных сетей..............................................189
Глава 7. Знакомство с автокодировщиками................................................191
7.1. Нейронные сети............................................................................................................193
7.2. Автокодировщики........................................................................................................198
7.3. Пакетное обучение.......................................................................................................203
7.4. Работа с изображениями...........................................................................................204
7.5. Применение автокодировщиков.............................................................................210
7.6. Краткие итоги................................................................................................................211
Глава 8. Обучение с подкреплением...........................................................213
8.1. Формальные обозначения.........................................................................................216
8.1.1. Политика..............................................................................................................217
8.1.2. Выгода...................................................................................................................219
8.2. Применение обучения с подкреплением.............................................................221
8.3. Реализация обучения с подкреплением...............................................................223
8.4. Исследование других областей использования обучения
с подкреплением...................................................................................................................232
8.5. Краткие итоги................................................................................................................233
Глава 9. Сверточные нейронные сети.........................................................235
9.1. Недостатки нейронных сетей..................................................................................237
9.2. Сверточные нейронные сети....................................................................................238
9.3. Подготовка изображения..........................................................................................240
9.3.1. Создание фильтров...........................................................................................244
9.3.2. Свертывания с использованием фильтров...............................................246
9.3.3. Подвыборка с определением максимального значения
(max pooling)..................................................................................................................250
9.4. Использование сверточной нейронной сети в TensorFlow............................252
9.4.1. Оценка эффективности...................................................................................255
9.4.2. Обучения классификатора.............................................................................256
9.5. Советы и трюки по повышению эффективности..............................................257
9.6. Применение сверточных нейронных сетей.........................................................258
9.7. Краткие итоги................................................................................................................259
Глава 10. Рекуррентные нейронные сети....................................................261
10.1. Контекстная информация.......................................................................................262
10.2. Введение в рекуррентные нейронные сети.......................................................263
10.3. Использование рекуррентной нейронной сети...............................................265
10.4. Прогностическая модель данных временного ряда.......................................269
10.5. Применение рекуррентных нейронных сетей.................................................274
10.6. Краткие итоги.............................................................................................................274
Глава 11. Модели sequence-to-sequence для чат-бота..................................275
11.1. Построения на основе классификации и RNN................................................277
11.2. Архитектура seq2seq.................................................................................................280
11.3. Векторное представление символов...................................................................286
11.4. Собирая все вместе....................................................................................................289
11.5. Сбор данных диалога................................................................................................299
11.6. Краткие итоги.............................................................................................................301
Глава 12. Ландшафт полезности.................................................................303
12.1. Модель предпочтения..............................................................................................307
12.2. Встраивание изображения......................................................................................313
12.3. Ранжирование изображений..................................................................................317
12.4. Краткие итоги.............................................................................................................323
12.5. Что дальше?.................................................................................................................323
Приложение. Установка............................................................................325
П.1. Установка TensorFlow с помощью Docker..........................................................326
П.1.1. Установка Docker в ОС Windows...............................................................326
П.1.2. Установка Docker в ОС Linux......................................................................328
П.1.3. Установка Docker в macOS...........................................................................328
П.1.4. Как использовать Docker..............................................................................328
П.2. Установка Matplotlib..................................................................................................331