
Представляем новую книгу Дмитрия Малова: “Глубокое обучение и анализ данных. Практическое руководство“.
Книга о принципах глубокого обучения, описывающая построение и развитие нейронных сетей с нуля. На материале обширных практических наработок в сфере распознавания образов и обработки естественного языка продемонстрированы возможности популярной библиотеки Pytorch, а также Keras и Tensorflow. Особое внимание уделено разбору базовых алгоритмов, реализованных на языке Python, которые помогут самостоятельно освоить работу с нейронными сетями, написав собственное приложение для глубокого обучения на основе данных из браузера.
Для Python-разработчиков и специалистов Data Science
Как говорил Артур Кларк, «любая достаточно продвинутая технология неотличима от магии» («третий закон Кларка»). На наших глазах именно так начинает восприниматься глубокое обучение – технология, зародившаяся в 1959 году.
Эта книга поможет вам сделать первые шаги в изучении важнейших современных библиотек глубокого обучения – Keras, PyTorch и Tensorflow. В ней просто и последовательно раскрываются принципы обработки изображений и естественного языка при помощи базовых алгоритмов, реализованных на Python. В книгу включён проект по построению собственной системы глубокого обучения на основе данных из обычного браузера.
Введение. 9
Чему обучит книга?. 10
Для кого эта книга?. 11
Глава 1. Основы машинного обучения. 13
Линейная алгебра. 13
Скаляр. 13
Вектор. 13
Матрица. 14
Тензор. 14
Норма. 17
Теория информации и теория вероятностей. 17
Случайная величина. 18
Распределение вероятности. 18
Условная вероятность. 19
Маргинальное распределение вероятности. 20
Цепное правило. 20
Математическое ожидание. 20
Дисперсия. 21
Ковариация. 21
Правило Байеса. 21
Наиболее часто используемые распределения вероятности. 22
Машинное обучение: основные понятия, подходы и типы задач. 22
Задача Т. 23
Опыт Е. 24
Активация нейронов в нейросетевых моделях. 26
Основы языка программирования Python. 26
Базовые типы. 27
Интерактивный режим работы Python. 27
Переменные в Python. 28
Числа: целые, вещественные. 28
Строки. 29
Списки. 31
Кортежи. 32
Словари. 33
Операторы сравнения. 34
Логические операторы. 34
Операторы ветвления. 35
Циклы. 36
Работа со строками. 37
Срезы строк. 38
Функции. 38
Сценарный режим программирования. 40
Функциональное программирование. 41
Основы объектно-ориентированного программирования. 49
Полезные приемы. 51
Основы разработки программного обеспечения. 53
Глава 2. Основные алгоритмы машинного обучения. 55
Предобработка данных. 55
Алгоритмы снижения размерности данных. 58
Линейные методы. 59
Нелинейные методы. 66
Линейная регрессия. 76
Логистическая регрессия. 77
Дерево решений. 78
Метод опорных векторов. 80
Наивный байесовский классификатор. 81
Алгоритм k ближайших соседей. 83
Алгоритм k средних. 84
Случайный лес. 86
Алгоритмы градиентного бустинга. 88
Глава 3. Основы глубокого обучения. 91
Алгоритм обратного распространения ошибки. 91
Перцептрон. 92
Цепь Маркова. 94
Машина Больцмана. 94
Сеть Хопфилда. 96
Глубокая сеть доверия. 97
Глубокая сверточная сеть. 97
Капсульные нейронные сети. 99
Нейронная сеть с блоком внимания (трансформеры) 101
Рекуррентные нейронные сети. 103
Автокодировщики. 104
Генеративно-состязательные сети. 105
Практические примеры. 106
Система проактивной локализации пользователей киберфизической системы. 109
Концепция системы проактивной локализации. 116
Глава 4. Основы data science. 119
Методология CRISP-DM.. 119
Бизнес-анализ. 120
Анализ данных. 121
Подготовка данных. 122
Моделирование. 124
Оценка результата. 125
Внедрение. 126
Роли специалистов в команде ML-разработки. 127
Современные тренды data science. 129
Борьба с DeepFake-контентом. 129
Интерес бизнеса к полноценным (end-to-end) решениям на основе
машинного обучения. 130
Low-code- и no-code-платформы для ML-разработки. 130
Методы оптимизации (квантования) обученной нейросетевой модели. 130
MLOps 131
Full-stack deep learning-разработчик. 131
Обучение без учителя. 132
Few-shot-, one-shot-, zero-shot-обучение. 132
Обзор современных библиотек для ML-разработки. 133
TensorFlow.. 134
CNTK.. 135
PyTorch. 135
Keras 136
Theano. 136
Torch. 137
Caffe. 137
MxNet 138
Chainer 138
Глава 5. Задачи глубокого обучения. 141
Аугментация данных. 141
Методы аугментации данных. 141
Глубокое обучение в задачах компьютерного зрения. 142
Установка OpenCV.. 142
Загрузка и отображение изображений. 143
Рисование на изображении. 144
Задача оптического распознавания символов. 144
Обработка естественного языка. 148
Методы и инструменты обработки текста. 148
Статистические методы. 148
Текстовая классификация. 149
Извлечение текста. 150
Обработка аудио. 151
Задача идентификации спикера. 151
Как мы представляем звук в цифровом виде?. 152
Подготовка аудиоданных для модели глубокого обучения. 153
Спектр. 153
Аудиомодели глубокого обучения. 154
Какие проблемы решает глубокое обучение аудио?. 155
Классификация аудио. 155
Аудиоразделение и сегментация. 155
Классификация музыкальных жанров. 156
Создание и транскрипция музыки. 156
Распознавание голоса. 156
Преобразование речи в текст и текста в речь. 157
Обработка видеопоследовательности. 157
Декодирование и кодирование. 158
Интерполяция с отслеживанием. 159
Глава 6. Знакомство с TensorFlow.. 161
Начало работы с TensorFlow.. 161
Определение и запуск нейронной сети. 163
Определение нейронной сети. 163
Запуск нейронной сети. 164
Классификация изображений с помощью TensorFlow.. 165
Построение модели для трансферного обучения. 167
Обучение модели. 167
Тонкая настройка модели (fine tuning) 168
Обработка текста с TensorFlow.. 168
Представление текста в виде тензоров. 169
Векторизация текста. 171
Ограничение размера словарного запаса. 171
Текстовое представление набора слов через мешок слов. 171
Обучение классификатора мешка слов. 172
Обучение классификатора как одной сети. 173
Биграммы, триграммы и n-граммы. 174
Автоматический расчет векторов мешка слов. 175
Частота слова и обратная частота документа. 175
Сжатые векторные характеристики. 177
Рекуррентные нейронные сети для обработки текста. 184
Пересмотр последовательностей переменных. 188
Классификация аудио с TensorFlow.. 189
Импортирование набора данных речевых мини-команд. 189
Преобразование сигналов в спектрограммы. 192
Построение и обучение модели. 193
Оценка точности модели. 195
Глава 7. Знакомство с Keras 197
Функции. 197
Преимущества. 197
Установка пакетов. 198
Установка Keras с использованием Python. 200
TensorFlow.. 200
Theano. 201
Доступные модули. 201
Модуль Backend. 202
Модуль Utils 205
Основная концепция слоев в Keras 206
Форма ввода. 210
Модуль Initializers 210
Модуль Constraints 215
Модуль Regularizers 216
Функции активации. 217
linear 217
elu. 218
selu. 218
relu. 219
softmax. 220
softplus 220
softsign. 221
tanh. 221
sigmoid. 222
hard_sigmoid. 222
exponential 223
Классификация изображений с Keras 223
Трансферное обучение. 227
Keras для классификации аудио. 229
Предварительная настройка. 229
Построение кривых амплитуды. 230
Работа с tf.Keras 231
Классификация изображений с использованием TensorFlow 2.x. 231
Импортирование набора данных. 232
Предварительная обработка данных. 232
Компиляция и обучение модели глубокого обучения. 233
Классификация текста с использованием TensorFlow и Keras 234
Предварительная подготовка. 234
Импорт текста. 234
Очистка и предварительная обработка текста. 235
Заполнение текстовых последовательностей. 236
Создание тестовой выборки. 236
Построение и компиляция модели. 236
Обучение модели глубокого обучения. 236
Импорт тестовых данных. 237
Прогноз по набору тестов. 237
Глава 8. Знакомство с PyTorch. 239
Основы PyTorch. 239
Загрузка данных, устройств и CUDA.. 239
Создание параметров. 239
Пакет Autograd. 240
Процедура оптимизации. 240
Функция ошибки. 241
Модель. 241
Набор данных. 243
Метрика качества. 245
Классификация аудио с PyTorch. 245
Тензоры. 247
Классификация изображений с PyTorch. 247
PyTorch для компьютерного зрения. 247
Загрузка данных. 248
Обучение модели. 249
Классификация текста с PyTorch. 251
Подготовка конвейеров обработки данных. 252
Создание пакета данных и итератора. 252
Определение модели. 253
Глава 9. Разработка веб-приложения для демонстрации моделей
глубокого обучения. 259
Разработка веб-приложения на Django. 259
Пару слов о Heroku. 261
Заключение. 267
Предметный указатель. 268

Малов Дмитрий Александрович, с 2017 по 2021 – научный сотрудник института Санкт-Петербургского Федерального исследовательского центра Российской академии наук, лаборатория больших данных в социокиберфизических системах, автор более 20 научных статей и монографии. Сфера профессиональных интересов – распознавание образов, синтетические данные. Является генеральным директором стартапа «Квант», занимающегося прикладными исследованиями в сфере квантовых вычислений.