Глубокое обучение с R и Keras
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Шолле Франсуа
Перевод:
Яценков Валерий Станиславович
Год издания: 2023
Кол-во страниц: 646
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-93700-189-4
Артикул: 817275.01.99
Прочитав эту книгу, вы получите четкое представление о том, что такое глубокое обучение, когда его следует применять и каковы его ограничения. Авторы описывают стандартный рабочий процесс поиска решения задачи машинного обучения и рассказывают, как устранять часто возникающие проблемы. Всесторонне рассматривается использование Keras для решения самых разнообразных прикладных задач, в числе которых классификация и сегментация изображений, прогнозирование временных рядов, классификация текста, машинный перевод, генерация текста и многое другое.
Издание адресовано читателям со средними навыками программирования на R. Опыт работы с Keras, TensorFlow или моделями глубокого обучения не требуется.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Искусственный интеллект и машинное обучение
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Франсуа Шолле Глубокое обучение с R и Keras
Deep Learning with R SECOND EDITION FRANÇOIS CHOLLET with TOMASZ KALINOWSKI and J. J. ALLAIRE
Глубокое обучение с R и Keras ФРАНСУА ШОЛЛЕ при участии Томаша Калиновски и Дж. Дж. Аллера Москва, 2023
УДК 004.85 ББК 32.971.3 Ш78 Шолле Ф. Ш78 Глубокое обучение с R и Keras / пер. с англ. В. С. Яценкова. – М.: ДМК Пресс, 2023. – 646 с.: ил. ISBN 978-5-93700-189-4 Прочитав эту книгу, вы получите четкое представление о том, что такое глубокое обучение, когда его следует применять и каковы его ограничения. Авторы описывают стандартный рабочий процесс поиска решения задачи машинного обучения и рассказывают, как устранять часто возникающие проблемы. Всесторонне рассматривается использование Keras для решения самых разнообразных прикладных задач, в числе которых классификация и сегментация изображений, прогнозирование временных рядов, классификация текста, машинный перевод, генерация текста и многое другое. Издание адресовано читателям со средними навыками программирования на R. Опыт работы с Keras, TensorFlow или моделями глубокого обучения не требуется. УДК 004.85 ББК 32.971.3 Copyright © DMK Press 2022. Authorized translation of the English edition © 2022 Manning Publications. This translation is published and sold by permission of Manning Publications, the owner of all rights to publish and sell the same. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-6334-3979-5 (англ.) © Manning Publications, 2022 ISBN 978-5-93700-189-4 (рус.) © Перевод, оформление, издание, ДМК Пресс, 2022
Отзывы о первом издании «Самое понятное объяснение глубокого обучения, которое я когда-либо встречал… приятно и легко читается». – Ричард Тобиас, Cephasonics «Эта книга сокращает разрыв между идеями и работающей системой глубокого обучения». – Петр Рабинович, Akamai «Все основные темы и концепции глубокого обучения раскрыты и доходчиво объяснены с использованием примеров кода и графиков вместо математических формул». – Срджан Сантич, Springboard.com
Оглавление 1 Что такое глубокое обучение? .....................................................................24 2 Математические основы нейронных сетей ...............................................55 3 Введение в Keras и TensorFlow...................................................................104 4 Примеры работы с нейросетью: классификация и регрессия ................143 5 Основы машинного обучения ...................................................................173 6 Обобщенный рабочий процесс машинного обучения ............................215 7 Работа с Keras: углубленные навыки.........................................................239 8 Глубокое обучение в компьютерном зрении ...........................................277 9 Глубокое обучение для компьютерного зрения .......................................321 10 Глубокое обучение и временные ряды .....................................................370 11 Глубокое обучение в обработке текстов ...................................................408 12 Генеративные модели глубокого обучения ..............................................484 13 Глубокое обучение в реальной жизни ......................................................547 14 Заключение .................................................................................................571
Содержание Оглавление .......................................................................................................... 6 Предисловие ...................................................................................................... 15 Благодарности ................................................................................................. 17 Об этой книге ................................................................................................... 18 Об иллюстрации на обложке ......................................................................... 22 Об авторах ....................................................................................................... 23 1 Что такое глубокое обучение? ................................................ 24 1.1 Искусственный интеллект, машинное и глубокое обуче ние ................................................................................................ 25 1.1.1 Искусственный интеллект ...................................................... 25 1.1.2 Машинное обуче ние ................................................................... 26 1.1.3 Извлечение правил и представлений из данных ..................... 28 1.1.4 «Глубина» глубокого обуче ния .................................................. 31 1.1.5 Принцип действия глубокого обуче ния в трех рисунках ....... 33 1.1.6 Каких успехов достигло глубокое обуче ние ............................. 35 1.1.7 Не верьте рекламной шумихе .................................................. 36 1.1.8 Перспективы развития ИИ ...................................................... 37 1.2 Краткая история машинного обуче ния ......................................... 38 1.2.1 Вероятностное моделирование ............................................... 39 1.2.2 Первые нейронные сети ............................................................ 39 1.2.3 Ядерные методы ........................................................................ 40 1.2.4 Деревья решений, случайные леса и градиентный бустинг ....................................................................................... 42 1.2.5 Назад к нейронным сетям ........................................................ 43 1.2.6 Отличительные черты глубокого обуче ния ........................... 44 1.2.7 Современный ландшафт машинного обуче ния ...................... 45 1.3 Почему глубокое обуче ние? Почему сейчас? ............................... 47 1.3.1 Оборудование ............................................................................. 48 1.3.2 Данные ........................................................................................ 49 1.3.3 Алгоритмы ................................................................................. 50 1.3.4 Новая волна инвестиций .......................................................... 51 1.3.5 Демократизация глубокого обуче ния ...................................... 52 1.3.6 Ждать ли продолжения этой тенденции? ............................. 52
Содержание 2 Математические основы нейронных сетей ................ 55 2.1 Первое знакомство с нейронной сетью ......................................... 56 2.2 Представление данных для нейронных сетей ............................. 60 2.2.1 Скаляры (тензоры нулевого ранга) ......................................... 61 2.2.2 Векторы (тензоры первого ранга) .......................................... 61 2.2.3 Матрицы (тензоры второго ранга) ........................................ 62 2.2.4 Тензоры третьего и более высокого рангов ............................ 62 2.2.5 Ключевые атрибуты ................................................................. 62 2.2.6 Манипулирование тензорами в R ............................................ 64 2.2.7 Пакеты данных .......................................................................... 64 2.2.8 Практические примеры тензоров с данными ........................ 65 2.2.9 Векторные данные .................................................................... 65 2.2.10 Временные ряды, или последовательности данных ............... 66 2.2.11 Изображения .............................................................................. 67 2.2.12 Видеоданные ............................................................................... 67 2.3 Шестеренки нейронных сетей: операции с тензорами ............. 68 2.3.1 Поэлементные операции .......................................................... 69 2.3.2 Операции с тензорами разной размерности ......................... 70 2.3.3 Скалярное произведение тензоров .......................................... 72 2.3.4 Изменение формы тензора ...................................................... 74 2.3.5 Геометрическая интерпретация операций с тензорами ..... 75 2.3.6 Геометрическая интерпретация глубокого обуче ния ........... 79 2.4 Механизм нейронных сетей: оптимизация на основе градиента .............................................................................................. 80 2.4.1 Что такое производная? .......................................................... 82 2.4.2 Производная операций с тензорами: градиент ..................... 83 2.4.3 Стохастический градиентный спуск ...................................... 85 2.4.4 Объединение производных: алгоритм обратного распространения ошибки ..................................................................... 88 2.5 Возвращаясь к нашему первому примеру .................................... 95 2.5.1 Повторная реализация нашего первого примера с нуля в TensorFlow ................................................................................ 97 2.5.2 Выполнение одного шага обуче ния ........................................... 99 2.5.3 Полный цикл обуче ния ..............................................................101 2.5.4 Оценка модели ..........................................................................102 Краткие итоги главы .....................................................................................103 3 Введение в Keras и TensorFlow .................................................104 3.1 Что такое TensorFlow? .......................................................................105 3.2 Что такое Keras? ..................................................................................106 3.3 Keras и TensorFlow: краткая история .............................................107 3.4 Интерфейсы Python и R: краткая история ...................................108 3.5 Настройка среды разработки для глубокого обучения .............109 3.5.1 Установка Keras и TensorFlow .................................................110 3.6 Первые шаги с TensorFlow ...............................................................111 3.6.1 Тензоры TensorFlow ..................................................................112 3.7 Атрибуты тензоров ............................................................................113
Содержание 3.7.1 Форма тензора и ее изменение ...............................................114 3.7.2 Срезы тензоров ........................................................................116 3.7.3 Операции с тензорами разной размерности ........................117 3.7.4 Модуль tf ....................................................................................117 3.7.5 Неизменность тензоров и переменные .................................119 3.7.6 Математические операции в TensorFlow ..............................120 3.7.7 Взгляд на API GradientTape с другой стороны .......................121 3.7.8 Полный пример: линейный классификатор в чистом TensorFlow .................................................................................122 3.8 Анатомия нейронной сети и основы API Keras ..........................127 3.8.1 Слои: строительные блоки глубокого обуче ния ....................128 3.8.2 От слоев к моделям ..................................................................132 3.8.3 Этап «компиляции»: настройка процесса обучения ............134 3.8.4 Выбор функции потерь ............................................................137 3.8.5 Использование метода fit() ....................................................138 3.8.6 Отслеживание потерь и показателей на контрольных данных ........................................................................................139 3.8.7 Использование модели после обуче ния ...................................140 Краткие итоги главы .....................................................................................141 4 Примеры работы с нейросетью: классификация и регрессия ........................................................143 4.1 Классификация отзывов к фильмам: пример бинарной классификации ...................................................................................145 4.1.1 Набор данных IMDB ..................................................................145 4.1.2 Подготовка данных ..................................................................147 4.1.3 Создание модели .......................................................................148 4.1.4 Проверка вашего выбора ..........................................................151 4.1.5 Использование обученной сети для прогнозирования на новых данных .......................................................................154 4.1.6 Продолжаем эксперименты ....................................................155 4.1.7 Промежуточные итоги............................................................155 4.2 Классификация новостных лент: пример многоклассовой классификации ...................................................................................156 4.2.1 Набор данных Reuters ...............................................................156 4.2.2 Подготовка данных ..................................................................158 4.2.3 Построение модели ..................................................................158 4.2.4 Проверка модели .......................................................................159 4.2.5 Предсказания на новых данных ...............................................161 4.2.6 Другой способ обработки меток и потерь ............................162 4.2.7 Важность использования достаточно больших промежуточных слоев ..............................................................162 4.2.8 Дальнейшие эксперименты .....................................................163 4.2.9 Промежуточные итоги............................................................163 4.3 Предсказание цен на дома: пример регрессии ..........................164 4.3.1 Набор данных с ценами на жилье в Бостоне .........................164 4.3.2 Подготовка данных ..................................................................165 4.3.3 Построение модели ..................................................................165
Содержание 4.3.4 Оценка качества модели методом K-кратной перекрестной проверки ...........................................................166 4.3.5 Выдача прогнозов на новых данных ........................................171 4.3.6 Промежуточные выводы .........................................................171 Краткие итоги главы .....................................................................................171 5 Основы машинного обучения ...................................................173 5.1 Обобщение – цель машинного обуче ния .....................................173 5.1.1 Недообучение и переобучение ..................................................174 5.1.2 Базовые принципы обобщения в глубоком обуче нии .............180 5.2 Оценка моделей машинного обуче ния ........................................187 5.2.1 Наборы данных для обуче ния, проверки и контроля .............187 5.2.2 Использование критериев, основанных на здравом смысле ........................................................................................191 5.2.3 Что следует помнить об оценке модели ...............................192 5.3 Улучшение качества обуче ния модели .........................................193 5.3.1 Настройка ключевых параметров градиентного спуска.....193 5.3.2 Использование лучшей априорно обоснованной архитектуры ............................................................................196 5.3.3 Увеличение емкости модели ....................................................197 5.4 Как улучшить обобщение .................................................................199 5.4.1 Подготовка набора данных .....................................................199 5.4.2 Конструирование признаков ...................................................200 5.4.3 Использование ранней остановки ..........................................202 5.4.4 Регуляризация модели ..............................................................202 Краткие итоги главы .....................................................................................213 6 Обобщенный рабочий процесс машинного обучения .....................................................................................................215 6.1 Постановка задачи .............................................................................217 6.1.1 Уточнение задачи .....................................................................217 6.1.2 Получение исходных данных.....................................................219 6.1.3 Добейтесь понимания данных .................................................223 6.1.4 Выберите меру успеха ..............................................................224 6.2 Разработка модели .............................................................................225 6.2.1 Подготовка данных ..................................................................225 6.2.2 Выбор протокола оценки .........................................................227 6.2.3 Как превзойти простой базовый уровень ..............................228 6.2.4 Масштабирование: разработка модели, способной к переобучению .........................................................................229 6.2.5 Регуляризация и настройка модели........................................230 6.3 Развертывание модели .....................................................................231 6.3.1 Представление модели заказчику ...........................................231 6.3.2 Передача модели заказчику .....................................................232 6.3.3 Мониторинг модели в рабочей среде ......................................236 6.3.4 Поддержка и обновление модели .............................................236 Краткие итоги главы .....................................................................................237