Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634620)
Контекстум
.

Глубокое обучение с точки зрения практика (6000,00 руб.)

0   0
Первый авторПаттерсон
АвторыГибсон А.
ИздательствоМ.: ДМК Пресс
Страниц419
ID794835
АннотацияИнтерес к машинному обучению зашкаливает, но завышенные ожидания нередко губят проекты еще на ранней стадии. Как машинное обучение — и особенно глубокие нейронные сети — может изменить вашу организацию? Эта книга не только содержит практически полезную информацию о предмете, но и поможет приступить к созданию эффективных сетей глубокого обучения. Авторы сначала раскрывают фундаментальные вопросы глубокого обучения — настройка, распараллеливание, векторизация, конвейеры операций, а затем переходят к библиотеке Deeplearning4j (DL4J), предназначенной для разработки технологических процессов профессионального уровня. На реальных примерах читатель познакомится с методами и стратегиями обучения глубоких сетей с различной архитектурой и их распараллеливания в кластерах Hadoop и Spark. Издание предназначено для специалистов по анализу данных, находящихся в поисках более широкого и практического понимания принципов глубокого обучения.
ISBN978-5-97060-481-6
УДК004.85Deeplearning4j
ББК32.813
Паттерсон, Дж. Глубокое обучение с точки зрения практика / А. Гибсон; Дж. Паттерсон .— Москва : ДМК Пресс, 2018 .— 419 с. — ISBN 978-5-97060-481-6 .— URL: https://rucont.ru/efd/794835 (дата обращения: 19.04.2024)

Предпросмотр (выдержки из произведения)

Глубокое_обучение_с_точки_зрения_практика.pdf
Стр.5
Стр.6
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Стр.12
Стр.13
Глубокое_обучение_с_точки_зрения_практика.pdf
УДК 004.85Deeplearning4j ББК 32.813 П20 П20 Глубокое обучение с точки зрения практика / пер. с анг. А. А. Слинкина. – М.: ДМК Пресс, 2018. – 418 с.: ил. Паттерсон Дж., Гибсон А. ISBN 978-5-97060-481-6 Интерес к машинному обучению зашкаливает, но завышенные ожидания нередко губят проекты еще на ранней стадии. Как машинное обучение — и особенно глубокие нейронные сети — может изменить вашу организацию? Эта книга не только содержит практически полезную информацию о предмете, но и поможет приступить к созданию эффективных сетей глубокого обучения. Авторы сначала раскрывают фундаментальные вопросы глубокого обучения — настройка, распараллеливание, векторизация, конвейеры операций, а затем переходят к библиотеке Deeplearning4j (DL4J), предназначенной для разработки технологических процессов профессионального уровня. На реальных примерах читатель познакомится с методами и стратегиями обучения глубоких сетей с различной архитектурой и их распараллеливания в кластерах Hadoop и Spark. Издание предназначено для специалистов по анализу данных, находящихся в поисках более широкого и практического понимания принципов глубокого обучения. УДК 004.85Deeplearning4j ББК 32.813 Authorized Russian translation of the English edition of Deep Learning, ISBN 9781491914250. © 2017 Josh Patterson, Adam Gibson. This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-491-91425-0 (анг.) ISBN 978-5-97060-481-6 (рус.) Copyright © 2017 Josh Patterson, Adam Gibson © Оформление, издание, перевод, ДМК Пресс, 2018
Стр.5
Содержание Предисловие ................................................................................................................... 14 Глава 1. Обзор машинного обучения ......................................................................... 20 Обучающиеся машины ..................................................................................................... 20 Как машины могут обучаться? .................................................................................... 21 Биологические корни ................................................................................................... 23 Что такое глубокое обучение? ..................................................................................... 24 Вниз по кроличьей норе .............................................................................................. 25 Формулировка вопросов .................................................................................................. 26 Математические основания машинного обучения: линейная алгебра ........................ 26 Скаляры ......................................................................................................................... 26 Векторы ......................................................................................................................... 26 Матрицы ....................................................................................................................... 27 Тензоры ......................................................................................................................... 27 Гиперплоскости ............................................................................................................ 28 Математические операции .......................................................................................... 28 Преобразование данных в векторы ............................................................................ 28 Решение систем уравнений ......................................................................................... 30 Математические основания машинного обучения: статистика ................................... 32 Вероятность .................................................................................................................. 32 Условные вероятности ................................................................................................. 34 Апостериорная вероятность ........................................................................................ 34 Распределения вероятности ........................................................................................ 35 Выборка и генеральная совокупность ........................................................................ 37 Методы с перевыборкой .............................................................................................. 37 Смещение выборки ...................................................................................................... 37 Правдоподобие ............................................................................................................. 38 Как работает машинное обучение? ................................................................................. 38 Регрессия ....................................................................................................................... 38 Классификация ............................................................................................................. 40 Кластеризация .............................................................................................................. 40 Недообучение и переобучение .................................................................................... 41 Оптимизация ................................................................................................................ 41 Выпуклая оптимизация ............................................................................................... 42 Градиентный спуск....................................................................................................... 43 Стохастический градиентный спуск ........................................................................... 45 Квазиньютоновские методы оптимизации................................................................ 46 Порождающие и дискриминантные модели .............................................................. 46 Логистическая регрессия ................................................................................................. 47 Логистическая функция ............................................................................................... 48 Интерпретация результата логистической регрессии ............................................... 48 Оценивание модели ......................................................................................................... 49 Матрица неточностей .................................................................................................. 49 Итоги ................................................................................................................................. 52
Стр.6
6  Содержание Глава 2. Основы нейронных сетей и глубокого обучения ..................................... 53 Нейронные сети ................................................................................................................ 53 Биологический нейрон ................................................................................................ 55 Перцептрон ................................................................................................................... 57 Многослойные сети прямого распространения ......................................................... 60 Обучение нейронных сетей ............................................................................................. 64 Обучение методом обратного распространения ....................................................... 65 Функции активации ......................................................................................................... 71 Линейная функция ....................................................................................................... 71 Сигмоида ....................................................................................................................... 72 Функция tanh ................................................................................................................ 73 Функция hardtanh ......................................................................................................... 73 Функция softmax........................................................................................................... 73 Линейная ректификация ............................................................................................. 74 Функции потерь ................................................................................................................ 76 Применяемые обозначения ........................................................................................ 76 Функции потерь для регрессии ................................................................................... 77 Функции потерь для классификации .......................................................................... 78 Функции потерь для реконструкции .......................................................................... 80 Гиперпараметры ............................................................................................................... 81 Скорость обучения ....................................................................................................... 81 Регуляризация .............................................................................................................. 82 Импульс ......................................................................................................................... 82 Разреженность .............................................................................................................. 82 Глава 3. Основания глубоких сетей ............................................................................ 83 Определение глубокого обучения ................................................................................... 83 Что такое глубокое обучение? ..................................................................................... 83 Как организована эта глава ......................................................................................... 92 Общие архитектурные принципы глубоких сетей ......................................................... 92 Параметры .................................................................................................................... 93 Слои ............................................................................................................................... 93 Функции активации ..................................................................................................... 94 Функции потерь ............................................................................................................ 95 Алгоритмы оптимизации ............................................................................................ 96 Гиперпараметры ........................................................................................................... 98 Итоги ........................................................................................................................... 102 Строительные блоки глубоких сетей ............................................................................. 102 Ограниченные машины Больцмана ......................................................................... 103 Автокодировщики ...................................................................................................... 108 Вариационные автокодировщики ............................................................................ 109 Глава 4. Основные архитектуры глубоких сетей ................................................... 111 Сети, предобученные без учителя ................................................................................. 111 Глубокие сети доверия ............................................................................................... 111 Порождающие состязательные сети ......................................................................... 114 Сверточные нейронные сети (СНС) .............................................................................. 117 Биологические корни ................................................................................................. 118 Интуитивное описание .............................................................................................. 119 Общий взгляд на архитектуру СНС ........................................................................... 120 Входной слой .............................................................................................................. 121
Стр.7
Содержание  7 Пулинговые слои ........................................................................................................ 128 Полносвязные слои .................................................................................................... 129 Другие применения СНС ........................................................................................... 129 Самые известные СНС ............................................................................................... 130 Итоги ........................................................................................................................... 130 Рекуррентные нейронные сети ..................................................................................... 131 Моделирование времени ........................................................................................... 131 Трехмерный вход ....................................................................................................... 133 Почему не марковские модели? ................................................................................ 135 Общая архитектура рекуррентной нейронной сети ................................................ 136 LSTM-сети ................................................................................................................... 136 Предметно-ориентированные приложения и гибридные сети .............................. 143 Рекурсивные нейронные сети ....................................................................................... 144 Архитектура сети ........................................................................................................ 144 Разновидности рекурсивных нейронных сетей....................................................... 145 Применение рекурсивных нейронных сетей ........................................................... 145 Итоги и обсуждение ....................................................................................................... 145 Приведет ли глубокое обучение к отмиранию всех прочих алгоритмов?.............. 146 Оптимальный метод зависит от задачи ................................................................... 146 Когда мне может понадобиться глубокое обучение? ............................................... 147 Глава 5. Построение глубоких сетей ......................................................................... 148 Выбор глубокой сети для решения задачи.................................................................... 148 Табличные данные и многослойные перцептроны ................................................. 148 Изображения и сверточные нейронные сети ........................................................... 149 Последовательности, временные ряды и рекуррентные нейронные сети ............ 150 Применение гибридных сетей .................................................................................. 151 Инструментарий DL4J .................................................................................................... 151 Векторизация и DataVec ............................................................................................. 152 Среды выполнения и ND4J ........................................................................................ 152 Основные концепции DL4J API ...................................................................................... 153 Загрузка и сохранение моделей ................................................................................ 153 Получение входных данных для модели .................................................................. 154 Задание архитектуры модели .................................................................................... 154 Обучение и оценивание ............................................................................................. 155 Моделирование CSV-данных с помощью многослойных перцептронов ................... 156 Подготовка входных данных ..................................................................................... 158 Задание архитектуры сети ......................................................................................... 159 Обучение модели ........................................................................................................ 161 Оценивание модели ................................................................................................... 161 Моделирование рукописных цифр с помощью СНС.................................................... 162 Реализация СНС LeNet на Java ................................................................................... 163 Загрузка и векторизация входных изображений ..................................................... 165 Архитектура сети LeNet в DL4J .................................................................................. 165 Обучение СНС ............................................................................................................. 168 Моделирование последовательных данных с помощью рекуррентной нейронной сети............................................................................................................... 169 Порождение текста в стиле Шекспира с помощью LSTM-сети ............................... 169 Классификация временных рядов, содержащих показания датчика, с помощью LSTM-сети ............................................................................................... 177 Применение автокодировщиков для обнаружения аномалий ................................... 183
Стр.8
8  Содержание Java-программа автокодировщика ........................................................................... 183 Подготовка входных данных ..................................................................................... 187 Архитектура и обучение сети автокодировщика ..................................................... 187 Оценивание модели ................................................................................................... 188 Использование вариационных автокодировщиков для реконструкции цифр из набора MNIST ............................................................................................................. 189 Программа реконструкции цифр для набора MNIST .............................................. 190 Изучение модели VAE ................................................................................................ 192 Применение глубокого обучения в обработке естественного языка .......................... 195 Обучение погружениям слов с помощью Word2Vec ................................................ 196 Распределенные представления предложений с помощью векторов абзацев ...... 201 Применение векторов абзацев для классификации документов ........................... 204 Глава 6. Настройка глубоких сетей ........................................................................... 209 Основные концепции настройки глубоких сетей ........................................................ 209 Интуитивное описание построения глубоких сетей ............................................... 209 Преобразование интуитивных представлений в пошаговую процедуру .............. 210 Подбор сетевой архитектуры, соответствующей входным данным ........................... 211 Итоги ........................................................................................................................... 212 Соотнесение назначения модели с выходным слоем .................................................. 213 Выходной слой регрессионной модели .................................................................... 213 Выходной слой модели классификации ................................................................... 213 Количество слоев, количество параметров и объем памяти ....................................... 216 Многослойные нейронные сети прямого распространения ................................... 216 Управление количеством слоев и параметров ......................................................... 217 Оценка требований к объему памяти ....................................................................... 219 Стратегии инициализации весов .................................................................................. 220 Ортогональная инициализация весов в РНС ................................................................ 221 Выбор функции активации ........................................................................................ 221 Сводная таблица функций активации ...................................................................... 223 Применение функций потерь ........................................................................................ 223 Скорость обучения.......................................................................................................... 225 Использование отношения обновлений к параметрам .......................................... 226 Конкретные рекомендации по заданию скорости обучения .................................. 227 Как разреженность влияет на обучение ........................................................................ 228 Применение методов оптимизации ............................................................................. 229 Рекомендации по применению СГС ......................................................................... 230 Применение распараллеливания и GPU для ускорения обучения.............................. 231 Онлайновое обучение и параллельные итеративные алгоритмы .......................... 232 Распараллеливание СГС в DL4J .................................................................................. 234 Графические процессоры........................................................................................... 236 Управление периодами и размером мини-пакета ...................................................... 237 Компромиссы при определении размера мини-пакета .......................................... 238 О применении регуляризации ...................................................................................... 239 Априорная функция как регуляризатор ................................................................... 239 Регуляризация по максимальной норме .................................................................. 240 Прореживание ............................................................................................................ 240 Другие вопросы, связанные с регуляризацией ........................................................ 242 Дисбаланс классов .......................................................................................................... 242 Методы выборки из классов ...................................................................................... 244 Взвешенные функции потерь .................................................................................... 244
Стр.9
Содержание  9 Борьба с переобучением ................................................................................................ 245 Использование статистики сети из интерфейса настройки ....................................... 246 Обнаружение неудачной инициализации весов ...................................................... 248 Обнаружение неперемешанных данных .................................................................. 249 Обнаружение проблем, относящихся к регуляризации .......................................... 251 Глава 7. Настройка глубоких сетей с конкретной архитектурой ........................ 253 Сверточные нейронные сети (СНС) .............................................................................. 253 Общие архитектурные паттерны сверточных сетей ............................................... 254 Конфигурирование сверточных слоев ...................................................................... 257 Конфигурирование пулинговых слоев ..................................................................... 261 Перенос обучения ....................................................................................................... 262 Рекуррентные нейронные сети ..................................................................................... 263 Входные данные и входной слой сети ...................................................................... 264 Выходные слои и RnnOutputLayer ............................................................................. 264 Обучение сети ............................................................................................................. 265 Отладка типичных проблем в LSTM ......................................................................... 267 Дополнение и маскирование ..................................................................................... 267 Применение маскирования для оценивания и скоринга........................................ 268 Варианты архитектуры рекуррентных сетей ........................................................... 269 Ограниченные машины Больцмана .............................................................................. 269 Скрытые блоки и моделирование доступной информации ................................... 270 Типы блоков ................................................................................................................ 271 Регуляризация в ОМБ ................................................................................................. 271 Глубокие сети доверия ................................................................................................... 272 Применение импульса ............................................................................................... 272 Применение регуляризации ...................................................................................... 273 Задание числа скрытых блоков ................................................................................. 273 Глава 8. Векторизация ................................................................................................. 274 Введение в векторизацию в машинном обучении....................................................... 274 Зачем нужно векторизовать данные? ....................................................................... 275 Стратегии обработки табличных исходных данных ................................................ 277 Конструирование признаков и методы нормировки .............................................. 279 Применение библиотеки DataVec для ETL и векторизации ........................................ 285 Векторизация изображений .......................................................................................... 286 Представление изображений в DL4J ......................................................................... 286 Нормировка данных изображения с помощью DataVec .......................................... 288 Векторизация последовательных данных .................................................................... 289 Основные виды источников последовательных данных ........................................ 289 Векторизация последовательных данных с помощью DataVec .............................. 290 Векторизация текста ...................................................................................................... 294 Мешок слов ................................................................................................................. 295 TF-IDF .......................................................................................................................... 296 Сравнение Word2Vec и векторной модели ............................................................... 299 Работа с графами ............................................................................................................ 300 Глава 9. Глубокое обучение и DL4J на платформе Spark ..................................... 301 Введение в использование DL4J совместно с Spark и Hadoop ..................................... 301 Запуск Spark из командной строки ........................................................................... 303 Конфигурирование и настройка Spark .......................................................................... 305
Стр.10
10  Содержание Выполнение Spark в кластере Mesos ......................................................................... 306 Выполнение Spark поверх YARN................................................................................ 307 Общее руководство по настройке Spark ................................................................... 309 Настройка задач DL4J для Spark ................................................................................ 311 Подготовка проекта Maven для Spark и DL4J ................................................................ 312 Шаблон секции зависимостей в файле pom.xml ...................................................... 314 Настройка POM-файла для CDH 5.X .......................................................................... 317 Настройка POM-файла для HDP 2.4 .......................................................................... 317 Отладка Spark и Hadoop ................................................................................................. 318 Типичные проблемы при работе с ND4J ................................................................... 318 Параллельное выполнение DL4J на платформе Spark ................................................. 319 Минимальный пример обучения на платформе Spark ............................................ 320 Рекомендации по использованию DL4J API для Spark ................................................. 322 Пример многослойного перцептрона на платформе Spark ........................................ 323 Конфигурирование архитектуры МСП для Spark ..................................................... 326 Распределенное обучение и оценивание модели .................................................... 327 Создание и выполнение задачи Spark ...................................................................... 328 Порождение текстов в стиле Шекспира с помощью Spark и LSTM-сети .................... 328 Конфигурирование архитектуры LSTM-сети ........................................................... 330 Обучение, наблюдение за ходом работы и интерпретация результатов ............... 331 Моделирование набора MNIST с помощью сверточной нейронной сети в кластере Spark .............................................................................................................. 332 Конфигурирование задачи Spark и загрузка набора данных MNIST ...................... 334 Конфигурирование и обучение СНС LeNet............................................................... 335 Приложение А. Что такое искусственный интеллект? .......................................... 337 Положение на данный момент ...................................................................................... 338 Определение глубокого обучения ............................................................................. 338 Определение искусственного интеллекта ................................................................ 338 Зима не за горами ........................................................................................................... 345 Приложение В. RL4J и обучение с подкреплением .............................................. 347 Введение .......................................................................................................................... 347 Марковский процесс принятия решений ................................................................. 347 Терминология ............................................................................................................. 348 Различные варианты ...................................................................................................... 349 Безмодельное обучение ............................................................................................. 349 Наблюдаемое состояние ............................................................................................ 349 Однопользовательские и состязательные игры ....................................................... 349 Q-обучение ...................................................................................................................... 350 От политики к нейронным сетям .............................................................................. 350 Перебор политик ........................................................................................................ 352 Исследование и использование ................................................................................. 355 Уравнение Беллмана .................................................................................................. 356 Выборка начальных состояний ................................................................................. 357 Реализация Q-обучения ............................................................................................. 358 Моделирование Q(s,a) ................................................................................................ 359 Воспроизведение опыта ............................................................................................ 359 Сверточные слои и предварительная обработка изображений .............................. 360 Обработка истории ..................................................................................................... 361 Двойное Q-обучение .................................................................................................. 361
Стр.11
Содержание  11 Ограничение ............................................................................................................... 362 Масштабирование вознаграждений ......................................................................... 362 Приоритетное воспроизведение ............................................................................... 362 График, визуализация и среднее значение Q ............................................................... 362 RL4J .................................................................................................................................. 365 Заключение ..................................................................................................................... 366 Приложение С. Числа, которые должен знать каждый ........................................ 367 Приложение D. Нейронные сети и обратное распространение: математическое описание .......................................................................................... 368 Введение .......................................................................................................................... 368 Обратное распространение в многослойном перцептроне ........................................ 369 Приложение Е. ND4J API ............................................................................................. 372 Дизайн и основы использования .................................................................................. 372 Что такое NDArray? ..................................................................................................... 373 Общий синтаксис ND4J .............................................................................................. 374 Основы работы с массивами NDArray ....................................................................... 375 Класс Dataset ............................................................................................................... 377 Создание входных векторов .......................................................................................... 378 Основы создания векторов ........................................................................................ 378 Получение предсказаний от модели в DL4J .................................................................. 380 Совместное использование DL4J и ND4J .................................................................. 380 Класс MLLibUtil ............................................................................................................... 379 Преобразование INDArray в вектор MLLib ................................................................ 379 Преобразование вектора MLLib в INDArray .............................................................. 379 Приложение F. Библиотека DataVec ......................................................................... 382 Загрузка данных для машинного обучения .................................................................. 382 Загрузка CSV-данных для многослойного перцептрона ............................................. 384 Загрузка изображений для сверточной нейронной сети ............................................. 385 Загрузка последовательных данных для рекуррентных нейронных сетей ................ 386 Подготовка данных средствами DataVec ...................................................................... 387 Преобразования DataVec: основные понятия .......................................................... 388 Преобразования DataVec: пример ............................................................................. 389 Приложение G. Работа с DL4J на уровне исходного кода ................................... 391 Проверка, установлен ли Git .......................................................................................... 391 Клонирование основных проектов, связанных с DL4J ................................................. 391 Скачивание исходного кода в виде zip-файла .............................................................. 392 Сборка библиотеки из исходного кода с помощью Maven .......................................... 392 Приложение Н. Подготовка проектов на базе DL4J .............................................. 393 Создание нового проекта на базе DL4J ......................................................................... 393 Java ............................................................................................................................... 393 Работа с Maven ............................................................................................................ 394 Интегрированные среды разработки (IDE) .............................................................. 395 Настройка других POM-файлов Maven ......................................................................... 396 ND4J и Maven .............................................................................................................. 396
Стр.12
12  Содержание Приложение I. Подготовка проектов на базе DL4J к работе с GPU ................... 397 Переключение библиотек в режим работы с GPU ........................................................ 397 Выбор GPU ................................................................................................................... 397 Обучение на системе с несколькими GPU ................................................................ 398 CUDA на разных платформах ......................................................................................... 398 Мониторинг производительности GPU......................................................................... 399 Приложение J. Отладка проблем с установкой DL4J ............................................ 400 Предыдущая установка .................................................................................................. 400 Ошибки нехватки памяти при сборке из исходного кода ........................................... 400 Старые версии Maven ..................................................................................................... 400 Maven и переменная среды PATH .................................................................................. 400 Недопустимые версии JDK ............................................................................................. 401 C++ и другие средства разработки ................................................................................. 401 Windows и путь к включаемым файлам ........................................................................ 401 Мониторинг GPU ............................................................................................................. 401 Использование JVisualVM .............................................................................................. 401 Работа с Clojure ............................................................................................................... 402 Поддержка чисел с плавающей точкой в OS X .............................................................. 402 Ошибка разветвления-соединения в Java 7 .................................................................. 402 Предостережения ............................................................................................................ 402 Клонирование других репозиториев ........................................................................ 402 Проверьте зависимости Maven .................................................................................. 403 Переустановка зависимостей .................................................................................... 403 Если ничего не помогает ........................................................................................... 403 Различные платформы ................................................................................................... 403 OS X ............................................................................................................................. 403 Windows ....................................................................................................................... 403 Linux ............................................................................................................................ 404 Предметный указатель ............................................................................................... 405 Об авторах ..................................................................................................................... 416 Об иллюстрации на обложке ..................................................................................... 417
Стр.13

Облако ключевых слов *


* - вычисляется автоматически
.
.