JavaScript для глубокого обучения: TensorFlow.js

JavaScript для глубокого обучения: TensorFlow.js

JavaScript для глубокого обучения: TensorFlow.js
Автор: Байлесчи Стэн, Нильсон Эрик, Цэй Шэнкуинг, Шолле Франсуа
Дата выхода: 2021
Издательство: Питер
Количество страниц: 576
Размер файла: 25,2 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

От издательства....24

Об иллюстрации на обложке....23

Об авторах....22

Благодарности....17

Введение....15

Предисловие....13

Об этой книге....19

Для кого предназначено издание....19

Структура издания....20

О коде....21

Дискуссионный форум книги....21

Часть I. Актуальность и основные понятия....25

Глава 1. Глубокое обучение и JavaScript....26

1.1. Искусственный интеллект, машинное обучение, нейронные сети и глубокое обучение....29

1.1.1. Искусственный интеллект....29

1.1.2. Машинное обучение: отличия от традиционного программирования....30

1.1.3. Нейронные сети и глубокое обучение....36

1.1.4. Почему глубокое обучение? И почему именно сейчас?....40

1.2. Какой смысл в сочетании JavaScript и машинного обучения....42

1.2.1. Глубокое обучение с помощью Node.js....49

1.2.2. Экосистема JavaScript....50

1.3. Почему именно TensorFlow.js....52

1.3.1. Краткая история TensorFlow, Keras и TensorFlow.js....52

1.3.2. Почему именно TensorFlow.js: краткое сравнение с аналогичными библиотеками....56

1.3.3. Как TensorFlow.js используется в мире....57

1.3.4. Что вы узнаете о TensorFlow.js из этой книги, а что — нет....58

Упражнения....59

Резюме....60

Часть II. Введение в TensorFlow.js....61

Глава 2. Приступим: простая линейная регрессия в TensorFlow.js....62

2.1. Пример 1. Предсказание продолжительности скачивания с помощью TensorFlow.js....63

2.1.1. Обзор проекта: предсказание продолжительности....63

2.1.2. Примечания относительно листингов и команд консоли....64

2.1.3. Создание и форматирование данных....65

2.1.4. Описываем простую модель....68

2.1.5. Подгонка модели к обучающим данным....71

2.1.6. Используем обученную модель для предсказаний....74

2.1.7. Резюме нашего первого примера....75

2.2. Внутреннее устройство Model.fit(): анализируем градиентный спуск из примера 1....76

2.2.1. Основные идеи оптимизации на основе градиентного спуска....76

2.2.2. Обратное распространение ошибки: внутри градиентного спуска....82

2.3. Множественная линейная регрессия....86

2.3.1. Набор данных стоимости жилья в Бостоне....86

2.3.2. Получаем из GitHub и запускаем проект Boston-housing....87

2.3.3. Доступ к данным о бостонских ценах на недвижимость....89

2.3.4. Точная формулировка задачи проекта Boston-housing....91

2.3.5. Небольшое отступление: нормализация данных....93

2.3.6. Линейная регрессия по набору данных Boston-housing....97

2.4. Интерпретация модели....101

2.4.1. Выясняем смысл усвоенных весов....102

2.4.2. Извлекаем из модели внутренние веса....103

2.4.3. Нюансы интерпретируемости....104

Упражнения....105

Резюме....106

Глава 3. Вводим нелинейность: теперь не только взвешенные суммы....107

3.1. Нелинейность: что это такое и где может пригодиться....108

3.1.1. Развиваем чутье на нелинейность в нейронных сетях....110

3.1.2. Гиперпараметры и их оптимизация....118

3.2. Нелинейность на выходе модели: модели для классификации....121

3.2.1. Бинарная классификация....122

3.2.2. Измерение качества работы бинарных классификаторов: точность, полнота, безошибочность и кривые ROC....126

3.2.3. Кривая ROC: наглядное представление соотношения плюсов и минусов при бинарной классификации....128

3.2.4. Бинарная перекрестная энтропия....133

3.3. Многоклассовая классификация....137

3.3.1. Унитарное кодирование категориальных данных....138

3.3.2. Многомерная логистическая функция активации....140

3.3.3. Категориальная перекрестная энтропия: функция потерь для многоклассовой классификации....142

3.3.4. Матрица различий: детальный анализ многоклассовой классификации....144

Упражнения....146

Резюме....147

Глава 4. Распознавание изображений и звуковых сигналов с помощью сверточных сетей....149

4.1. От векторов к тензорам: представление изображений....150

4.1.1. Набор данных MNIST....151

4.2. Ваша первая сверточная нейронная сеть....152

4.2.1. Слой conv2d....154

4.2.2. Слой maxPooling2d....159

4.2.3. «Лейтмотивы» свертки и субдискретизации....160

4.2.4. Слои схлопывания и плотные слои....161

4.2.5. Обучение сверточной сети....163

4.2.6. Предсказания с помощью сверточной сети....168

4.3. Вне браузера: обучаем модели быстрее с помощью Node.js....171

4.3.1. Зависимости и импорты, необходимые для tfjs-node....171

4.3.2. Сохранение модели из Node.js и загрузка ее в браузере....176

4.4. Распознавание устной речи....179

4.4.1. Спектрограммы: представление звуков в виде изображений....179

Упражнения....185

Резюме....186

Глава 5. Перенос обучения: переиспользование предобученных нейронных сетей....187

5.1. Переиспользование предобученных моделей....188

5.1.1. Перенос обучения при совместимых формах выходных сигналов: блокировка слоев....190

5.1.2. Перенос обучения при несовместимых формах выходных сигналов: создание новой модели на основе выходных сигналов базовой модели....197

5.1.3. Извлекаем максимум пользы из переноса обучения благодаря тонкой настройке: пример обработки аудиоданных....210

5.2. Обнаружение объектов с помощью переноса обучения для сверточной сети....222

5.2.1. Задача обнаружения простых объектов на синтезированных изображениях....224

5.2.2. Углубляемся в обнаружение простых объектов....225

Упражнения....234

Резюме....236

Часть III. Продвинутые возможности глубокого обучения с TensorFlow.js....237

Глава 6. Работа с данными....238

6.1. Работа с данными с помощью пространства имен tf.data....239

6.1.1. Объект tf.data.Dataset....240

6.1.2. Создание объекта tf.data.Dataset....240

6.1.3. Доступ к данным в объекте Dataset....246

6.1.4. Операции над наборами данных модуля tfjs-data....247

6.2. Обучение моделей с помощью model.fitDataset....252

6.3. Распространенные паттерны доступа к данным....258

6.3.1. Работаем с форматом данных CSV....258

6.3.2. Доступ к видеоданным с помощью метода tf.data.webcam()....264

6.3.3. Доступ к аудиоданным с помощью API tf.data.microphone()....267

6.4. Вероятно, данные не без изъяна: обработка проблемных данных....270

6.4.1. Теория данных....270

6.4.2. Обнаружение и исправление проблем с данными....275

6.5. Дополнение данных....281

Упражнения....285

Резюме....285

Глава 7. Визуализация данных и моделей....287

7.1. Визуализация данных....288

7.1.1. Визуализация данных с помощью tfjs-vis....288

7.1.2. Комплексный практический пример: визуализация метеорологических данных с помощью tfjs-vis....298

7.2. Визуализация моделей после обучения....302

7.2.1. Визуализация внутренних функций активации сверточной сети....305

7.2.2. Визуализируем именно то, к чему чувствительны сверточные слои: наиболее активирующие изображения....309

7.2.3. Визуальная интерпретация результата классификации изображения сверточной сетью....314

Материалы для дальнейшего чтения и изучения....316

Упражнения....316

Резюме....317

Глава 8. Недообучение, переобучение и универсальный технологический процесс машинного обучения....318

8.1. Постановка задачи предсказания температуры....319

8.2. Недообучение, переобучение и меры противодействия им....323

8.2.1. Недообучение....323

8.2.2. Переобучение....326

8.2.3. Сокращаем переобучение за счет регуляризации весов и визуализируем эффект от нее....328

8.3. Универсальный технологический процесс машинного обучения....334

Упражнения....338

Резюме....338

Глава 9. Глубокое обучение для последовательностей и текста....339

9.1. Вторая попытка прогноза погоды: знакомство с RNN....341

9.1.1. Почему плотные слои не способны моделировать упорядоченность....341

9.1.2. Моделирование последовательного упорядочения с помощью RNN....343

9.2. Создание моделей глубокого обучения для обработки текста....353

9.2.1. Представление текста в машинном обучении: унитарное и федеративное кодирование....354

9.2.2. Первая попытка анализа тональностей....356

9.2.3. Более эффективное представление текста — вложения слов....358

9.2.4. Одномерные сверточные сети....361

9.3. Решение задач преобразования последовательностей в последовательности с помощью механизма внимания....369

9.3.1. Постановка задачи преобразования последовательности в последовательность....370

9.3.2. Архитектура «кодировщик — декодировщик» и механизм внимания....372

9.3.3. Заглянем глубже в модель «кодировщик-декодировщик», основанную на механизме внимания....376

Материалы для дальнейшего изучения....380

Упражнения....380

Резюме....382

Глава 10. Генеративное глубокое обучение....384

10.1. Генерация текста с помощью LSTM....385

10.1.1. Предсказание следующего символа: простой способ генерации текста....386

10.1.2. Пример LSTM-text-generation....388

10.1.3. Температура: настройка степени стохастичности генерируемого текста....393

10.2. Вариационные автокодировщики: поиск экономичного структурированного векторного представления изображений....395

10.2.1. Классический автокодировщик и VAE: основные понятия....396

10.2.2. Подробный пример VAE: пример Fashion-MNIST....400

10.3. Генерация изображений с помощью GAN....407

10.3.1. Основная идея GAN....409

10.3.2. «Кирпичики» GAN....413

10.3.3. Детальнее исследуем обучение ACGAN....417

10.3.4. Обучение ACGAN для набора данных MNIST и генерация изображений в действии....421

Материалы для дальнейшего изучения....424

Упражнения....425

Резюме....425

Глава 11. Основы глубокого обучения с подкреплением....427

11.1. Постановка задач обучения с подкреплением....429

11.2. Сети стратегий и градиентный спуск по стратегиям: пример cart-pole....432

11.2.1. Удержание шеста в равновесии в тележке как задача обучения с подкреплением....433

11.2.2. Сети стратегий....435

11.2.3. Обучение сети стратегий: алгоритм REINFORCE....438

11.3. Оценочные сети и Q-обучение: пример игры «Змейка»....447

11.3.1. «Змейка» как задача обучения с подкреплением....447

11.3.2. Марковский процесс принятия решений и Q-значения....450

11.3.3. Глубокая Q-сеть....454

11.3.4. Обучение глубокой Q-сети....457

Материалы для дальнейшего изучения....471

Упражнения....472

Резюме....474

Часть IV. Резюме и заключительное слово....475

Глава 12. Тестирование, оптимизация и развертывание моделей....476

12.1. Тестирование моделей TensorFlow.js....477

12.1.1. Традиционное модульное тестирование....478

12.1.2. Тестирование с помощью «золотых значений»....481

12.1.3. Соображения по поводу непрерывного обучения....484

12.2. Оптимизация модели....486

12.2.1. Оптимизация размера модели посредством квантования весовых коэффициентов модели после обучения....486

12.2.2. Оптимизация скорости выполнения вывода с помощью преобразования GraphModel....495

12.3. Развертывание моделей TensorFlow.js на различных платформах и в различных средах....501

12.3.1. Дополнительные нюансы развертывания на веб-платформе....501

12.3.2. Развертывание в облачных сервисах....502

12.3.3. Развертывание в среде браузерного расширения, например, Chrome Extension....504

12.3.4. Развертывание моделей TensorFlow.js в мобильных JavaScript-приложениях....506

12.3.5. Развертывание моделей TensorFlow.js в межплатформенных приложениях для настольных компьютеров на JavaScript....508

12.3.6. Развертывание моделей TensorFlow.js в WeChat и прочих системах плагинов мобильных приложений на основе JavaScript....510

12.3.7. Развертывание моделей TensorFlow.js на одноплатных компьютерах....512

12.3.8. Краткая сводка вариантов развертывания....513

Материалы для дальнейшего изучения....514

Упражнения....514

Резюме....516

Глава 13. Резюме, заключительные слова и дальнейшие источники информации....517

13.1. Обзор ключевых понятий....518

13.1.1. Различные подходы к ИИ....518

13.1.2. Почему глубокое обучение выделяется из всех прочих подобластей машинного обучения....519

13.1.3. Общая картина глубокого обучения....520

13.1.4. Ключевые технологии, благодаря которым возможно глубокое обучение....520

13.1.5. Сферы применения и возможности, открываемые благодаря глубокому обучению на JavaScript....521

13.2. Краткий обзор технологического процесса глубокого обучения и алгоритмов в TensorFlow.js....523

13.2.1. Универсальный технологический процесс машинного обучения с учителем....523

13.2.2. Типы моделей и слоев в TensorFlow.js: краткий справочник....525

13.2.3. Использование предобученных моделей в TensorFlow.js....531

13.2.4. Спектр возможностей....533

13.2.5. Ограничения глубокого обучения....536

13.3. Современные тенденции глубокого обучения....539

13.4. Рекомендации по дальнейшему изучению....540

13.4.1. Отрабатывайте навыки решения реальных задач на Kaggle....541

13.4.2. Читайте о последних новинках на arXiv....541

13.4.3. Исследование экосистемы TensorFlow.js....542

Заключительные слова....542

Приложения....543

Приложение А. Установка библиотеки tfjs-node-gpu и ее зависимостей....544

A.1. Установка tfjs-node-gpu в Linux....544

A.2. Установка tfjs-node-gpu в Windows....547

Приложение Б. Краткое руководство по тензорам и операциям над ними в TensorFlow.js....549

Б.1. Создание тензоров и соглашения про их оси координат....549

Б.1.1. Скаляры (тензоры ранга 0)....550

Б.1.2. tensor1d (тензоры ранга 1)....552

Б.1.3. tensor2d (тензоры ранга 2)....553

Б.1.4. Тензоры ранга 3 и более высоких рангов....554

Б.1.5. Понятие батчей данных....555

Б.1.6. Примеры тензоров из практики....556

Б.1.7. Создание тензоров из тензорных буферов....558

Б.1.8. Создание тензоров, содержащих одних нули и одни единицы....559

Б.1.9. Создание тензоров со случайными значениями....560

Б.2. Основные операции над тензорами....561

Б.2.1. Унарные операции....562

Б.2.2. Бинарные операции....564

Б.2.3 Конкатенация и срезы тензоров....565

Б.3. Управление памятью в TensorFlow.js: tf.dispose() и tf.tidy()....568

Б.4. Вычисление градиентов....571

Упражнения....574

Пора научиться использовать TensorFlow.js для построения моделей глубокого обучения, работающих непосредственно в браузере!

Умные веб-приложения захватили мир, а реализовать их в браузере или серверной части позволяет TensorFlow.js. Данная библиотека блестяще портируется, ее модели работают везде, где работает JavaScript.

Специалисты из Google Brain создали книгу, которая поможет решать реальные прикладные задачи. Вы не будете скучать над теорией, а сразу освоите базу глубокого обучения и познакомитесь с продвинутыми концепциями ИИ на примерах анализа текста, обработки речи, распознавания образов и самообучающегося игрового искусственного интеллекта.


Похожее:

Список отзывов:

Нет отзывов к книге.