Об авторе 11
О рецензенте 13
Признательности 15
Комментарии переводчика 17
Введение 19
Глава 1. Вычислительные графы и TensorFlow
25
Настройка среды программирования на языке Python 25
Создание среды 27
Установка библиотеки TensorFlow 31
Блокноты Jupyter 33
Элементарное введение в TensorFlow 35
Вычислительные графы 35
Тензоры 38
Создание и выполнение вычислительного графа 39
Вычислительный граф с типом tf.constant 40
Вычислительный граф с типом tf.Variable 40
Вычислительный граф с типом tf.placeholder 42
Различия между run и eval 44
Зависимости между узлами 45
Советы по созданию и закрытию сеанса 46
Глава 2. Один-единственный нейрон
49
Структура нейрона 49
Матричное обозначение 52
Совет по реализации на языке Python: циклы и NumPy 53
Активационные функции 55
Активационная функция тождественного отображения 55
Активационная функция сигмоидальная 56
Активационная функция tanh (гиперболический тангенс) 58
Активационная функция ReLU (выпрямленного линейного элемента) 58
Активационная функция ReLU с утечкой 60
Активационная функция Swish 61
Другие активационные функции 62
Стоимостная функция и градиентный спуск: причуды темпа заучивания 63
Темп заучивания на практическом примере 65
Пример линейной регрессии в TensorFlow 70
Набор данных для линейной регрессионной модели 72
Нейрон и стоимостная функция для линейной регрессии 75
Разумно достаточный и оптимизационный метрический показатель 79
Пример логистической регрессии 81
Стоимостная функция 81
Активационная функция 82
Набор данных 82
Реализация в TensorFlow 86
Ссылки на литературу 90
Глава 3. Нейронные сети прямого распространения
93
Сетевая архитектура 94
Выход нейронов 96
Сводка матричных размерностей 97
Пример: уравнения для сети с тремя слоями 97
Гиперпараметры в полносвязных сетях 98
Функция softmax для многоклассовой классификации 99
Краткое отступление: переподгонка 100
Практический пример переподгонки 100
Простой анализ ошибок 106
Набор данных Zalando 108
Построение модели с помощью TensorFlow 111
Сетевая архитектура 111
Модификация меток для функции softmax — кодировка с одним активным состоянием 113
Модель TensorFlow 116
Варианты градиентного спуска 119
Пакетный градиентный спуск 119
Стохастический градиентный спуск 120
Мини-пакетный градиентный спуск 121
Сравнение вариантов градиентного спуска 123
Примеры неправильных предсказаний 127
Инициализация весов 128
Эффективное добавление многочисленных слоев 130
Преимущества дополнительных скрытых слоев 132
Сравнение разных сетей 133
Советы по выбору правильной сети 137
Глава 4. Тренировка нейронных сетей
139
Динамическое ослабление темпа заучивания 139
Итерации или эпохи? 141
Ступенчатое ослабление 142
Пошаговое ослабление 143
Обратно-временное ослабление 146
Экспоненциальное ослабление 149
Естественное экспоненциальное ослабление 150
Реализация в TensorFlow 155
Применение описанных методов к набору данных Zalando 159
Широко используемые оптимизаторы 160
Экспоненциально взвешенные средние 160
Momentum 164
RMSProp 167
Adam 170
Какой оптимизатор следует использовать? 172
Пример оптимизатора собственной разработки 173
Глава 5. Регуляризация
179
Сложные сети и переподгонка 179
Что такое регуляризация? 183
О сетевой сложности 185
Норма lp 185
Регуляризация l2 185
Теоретическое обеспечение регуляризации l2 185
Реализация в TensorFlow 187
Регуляризация l1 196
Теоретическое обеспечение регуляризации l1 и ее реализации в TensorFlow 196
Веса действительно сходятся к нулю? 198
Отсев 200
Досрочная остановка 203
Дополнительные методы 204
Глава 6. Метрический анализ
207
Человеческая результативность и байесова ошибка 208
Краткая история человеческой результативности 211
Человеческая результативность на наборе данных MNIST 213
Смещение 214
Диаграмма метрического анализа 215
Переподгонка к тренировочному набору данных 216
Тестовый набор 217
Как подразделить набор данных 219
Распределение несбалансированных классов: что может произойти 223
Метрики прецизионности, полноты и F1 227
Наборы данных с разными распределениями 232
K-блочная перекрестная проверка 239
Ручной метрический анализ: пример 247
Глава 7. Гиперпараметрическая настройка
253
Черно-ящичная оптимизация 253
Замечания по черно-ящичным функциям 255
Задача гиперпараметрической настройки 256
Образец черно-ящичной задачи 257
Решеточный поиск 258
Случайный поиск 262
Оптимизация с переходом "от крупнозернистости к мелкозернистости" 265
Байесова оптимизация 269
Регрессия Надарая – Ватсона 269
Гауссов процесс 270
Стационарный процесс 271
Предсказание с помощью гауссовых процессов 271
Функция обнаружения 277
Верхняя доверительная граница 277
Пример 278
Отбор образцов на логарифмической шкале 285
Гиперпараметрическая настройка с набором данных Zalando 287
Краткое замечание о радиальной базисной функции 294
Глава 8. Сверточные и рекуррентные нейронные сети
297
Ядра и фильтры 297
Свертка 298
Примеры свертки 306
Сведение 311
Заполнение 314
Строительные блоки CNN-сети 315
Сверточные слои 315
Сводящие слои 316
Стековая укладка слоев 317
Пример CNN-сети 317
Введение в RNN-сети 322
Обозначения 323
Основная идея RNN-сетей 324
Почему именно "рекуррентная" сеть? 325
Учимся считать 325
Глава 9. Исследовательский проект
331
Описание задачи 331
Математическая модель 334
Регрессионная задача 335
Подготовка набора данных 340
Тренировка модели 347
Глава 10. Логистическая регрессия с нуля
353
Математический каркас логистической регрессии 354
Реализация на Python 357
Тестирование модели 359
Подготовка набора данных 359
Выполнение теста 360

Заключение 361
Предметный указатель 362