Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Глубокое обучение с R и Keras

Покупка
Артикул: 817275.01.99
Прочитав эту книгу, вы получите четкое представление о том, что такое глубокое обучение, когда его следует применять и каковы его ограничения. Авторы описывают стандартный рабочий процесс поиска решения задачи машинного обучения и рассказывают, как устранять часто возникающие проблемы. Всесторонне рассматривается использование Keras для решения самых разнообразных прикладных задач, в числе которых классификация и сегментация изображений, прогнозирование временных рядов, классификация текста, машинный перевод, генерация текста и многое другое. Издание адресовано читателям со средними навыками программирования на R. Опыт работы с Keras, TensorFlow или моделями глубокого обучения не требуется.
Шолле, Ф. Глубокое обучение с R и Keras : практическое руководство / Ф. Шолле ; пер. с англ. В.С. Яценкова. - Москва : ДМК Пресс, 2023. - 646 с. - ISBN 978-5-93700-189-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/2109573 (дата обращения: 13.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Франсуа Шолле

Глубокое обучение с 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
Содержание
7 

Работа с Keras: углубленные навыки.................................239
7.1 
Широкий спектр рабочих процессов Keras ..................................240

7.2 
Различные способы построения моделей Keras .........................240
7.2.1 
Sequential API ............................................................................241
7.2.2 
Functional API ............................................................................244
7.2.3 
Создание подкласса класса Model ............................................251
7.2.4 
Смешивание и сочетание разных компонентов ...................255
7.2.5 
Используйте правильные инструменты ...............................256

7.3 
Использование встроенных циклов обучения и оценки .........256
7.3.1 
Разработка собственных метрик ..........................................257
7.3.2 
Использование обратных вызовов ..........................................260
7.3.3 
Разработка собственных обратных вызовов .......................262
7.3.4 
Мониторинг и визуализация с по мощью TensorBoard ..........264

7.4 
Разработка собственных циклов обучения и оценки ...............266
7.4.1 
Обучение или логический вывод...............................................267
7.4.2 
Использование метрик на низком уровне ..............................268
7.4.3 
Полный цикл обуче ния и оценки ..............................................269
7.4.4 
Увеличьте быстродействие с по мощью tf_function() .......272
7.4.5 
Использование fit() с пользовательским циклом  
 
обучения .....................................................................................273

Краткие итоги главы .....................................................................................276

8 

Глубокое обучение в компьютерном зрении ...............277
8.1 
Введение в сверточные нейронные сети .....................................278
8.1.1 
Операция свертки ....................................................................281
8.1.2 
Выбор максимального значения из соседних (max-pooling) ....286

8.2 
Обучение сверточной нейронной сети с нуля  
 
на небольшом наборе данных ........................................................289
8.2.1 
Целесообразность глубокого обуче ния для решения  
 
задач с небольшими наборами данных ...................................290
8.2.2 
Загрузка данных ........................................................................290
8.2.3 
Построение сети ......................................................................293
8.2.4 
Предварительная обработка данных ....................................295
8.2.5 
Расширение данных ..................................................................301

8.3 
Использование предварительно обученной сверточной  
 
нейронной сети ..................................................................................305
8.3.1 
Выделение признаков ...............................................................306
8.3.2 
Дообучение ранее обученной модели ......................................316

Краткие итоги главы .....................................................................................320

9 

Глубокое обучение для компьютерного зрения .........321
9.1 
Три основные задачи компьютерного зрения ............................322

9.2 
Пример сегментации изображения ...............................................323

9.3 
Современные стандартные архитектуры сверточных  
 
сетей ......................................................................................................333
9.3.1 
Модульность, иерархия и повторное использование ............334
9.3.2 
Остаточные связи ...................................................................337