Библиотека Keras - инструмент глубокого обучения

Антонио Джулли

Обложка:


Об авторах .......................................................................................................9
О рецензенте .................................................................................................12
Предисловие..................................................................................................13
Назначение.................................................................................... 13
Чем глубокое обучение отличается от машинного обучения
и искусственного интеллекта......................................................... 14
Краткое содержание книги............................................................. 16
Что необходимо для чтения книги.................................................. 17
На кого рассчитана эта книга......................................................... 17
Графические выделения................................................................ 17
Отзывы........................................................................................... 18
Поддержка клиентов...................................................................... 19
Загрузка кода примеров..............................................................................................................19
Загрузка цветных иллюстраций................................................................................................20
Опечатки.............................................................................................................................................20
Нарушение авторских прав........................................................................................................20
Вопросы......................................................................................... 21
Глава 1. Основы нейронных сетей .............................................................22
Перцептрон.................................................................................... 24
Первый пример кода с использованием Keras..................................................................24
Многослойный перцептрон – первый пример нейросети............... 25
Проблемы обучения перцептрона и их решение.............................................................26
Сигмоида............................................................................................................................................27
Блок линейной ректификации ..................................................................................................28
Функции активации .......................................................................................................................28
Реальный пример – распознавание рукописных цифр.................... 29
Унитарное кодирование ..............................................................................................................30
Определение простой нейронной сети в Keras .................................................................30
Прогон простой сети Keras и создание эталона для сравнения.................................34
Улучшение простой сети в Keras посредством добавления скрытых слоев..........35
Дальнейшее улучшение простой сети Keras с помощью прореживания................38
Тестирование различных оптимизаторов в Keras.............................................................41
Увеличение числа периодов......................................................................................................46
Управление скоростью обучения оптимизатора ...............................................................46
Увеличение числа нейронов в скрытых слоях ...................................................................47
Увеличение размера пакета.......................................................................................................48
Подведение итогов экспериментов по распознаванию рукописных цифр...........49
6  Оглавление
Применение регуляризации для предотвращения переобучения ............................50
Настройка гиперпараметров .....................................................................................................52
Предсказание выхода...................................................................................................................52
Практическое изложение алгоритма обратного распространения....52
В направлении глубокого обучения................................................ 54
Резюме.......................................................................................... 55
Глава 2. Установка Keras и описание API...................................................56
Установка Keras.............................................................................. 56
Шаг 1 – установка зависимостей..............................................................................................56
Шаг 2 – установка Theano...........................................................................................................57
Шаг 3 – установка TensorFlow ...................................................................................................57
Шаг 4 – установка Keras...............................................................................................................58
Шаг 5 – проверка работоспособности Theano, TensorFlow и Keras...........................58
Настройка Keras............................................................................. 59
Установка Keras в контейнер Docker............................................... 60
Установка Keras в Google Cloud ML................................................. 62
Установка Keras в Amazon AWS....................................................... 64
Установка Keras в Microsoft Azure................................................... 65
Keras API........................................................................................ 67
Введение в архитектуру Keras...................................................................................................68
Обзор готовых слоев нейронных сетей.................................................................................69
Обзор готовых функций активации ........................................................................................72
Обзор функций потерь .................................................................................................................72
Обзор показателей качества......................................................................................................73
Обзор оптимизаторов...................................................................................................................73
Некоторые полезные операции ...............................................................................................73
Резюме.......................................................................................... 77
Глава 3. Глубокое обучение с применением сверточных сетей............79
Глубокая сверточная нейронная сеть.............................................. 80
Локальные рецептивные поля ..................................................................................................80
Разделяемые веса и смещения.................................................................................................81
Пулинговые слои.............................................................................................................................82
Промежуточные итоги ..................................................................................................................83
Пример ГСНС – LeNet..................................................................... 83
Код LeNet в Keras............................................................................................................................83
О силе глубокого обучения............................................................. 89
Распознавание изображений из набора CIFAR-10 с помощью
глубокого обучения........................................................................ 90
Повышение качества распознавания набора CIFAR-10 путем
углубления сети.................................................................................95
Повышение качества распознавания набора CIFAR-10 путем
пополнения данных........................................................................ 97
Предсказание на основе результатов обучения на наборе CIFAR-10...................100
Оглавление  7
Очень глубокие сверточные сети для распознавания больших
изображений................................................................................ 101
Распознавание кошек с помощью сети VGG-16..............................................................102
Использование встроенного в Keras модуля VGG-16...................................................103
Использование готовых моделей глубокого обучения для выделения
признаков .......................................................................................................................................104
Очень глубокая сеть inception-v3, применяемая для переноса обучения...........105
Резюме........................................................................................ 108
Глава 4. Порождающие состязательные сети и WaveNet.................... 109
Что такое ПСС?............................................................................ 109
Некоторые приложения ПСС...................................................................................................111
Глубокие сверточные порождающие состязательные сети........... 114
Применение Keras adversarial для создания ПСС,
подделывающей MNIST................................................................ 118
Применение Keras adversarial для создания ПСС,
подделывающей CIFAR................................................................. 124
WaveNet – порождающая модель для обучения генерации звука....132
Резюме........................................................................................ 141
Глава 5. Погружения слов......................................................................... 143
Распределенные представления.................................................. 144
word2vec...................................................................................... 145
Модель skip-грамм......................................................................................................................146
Модель CBOW................................................................................................................................150
Извлечение погружений word2vec из модели ................................................................151
Сторонние реализации word2vec..........................................................................................154
Введение в GloVe......................................................................... 158
Использование предобученных погружений................................. 159
Обучение погружений с нуля..................................................................................................161
Настройка погружений на основе предобученной модели word2vec ..................165
Настройка погружений на основе предобученной модели GloVe..........................169
Поиск погружений.......................................................................................................................170
Резюме........................................................................................ 174
Глава 6. Рекуррентная нейронная сеть – РНС....................................... 176
Простые ячейки РНС.................................................................... 177
Простая РНС с применением Keras – порождение текста..........................................179
Топологии РНС............................................................................. 184
Проблема исчезающего и взрывного градиента........................... 186
Долгая краткосрочная память – LSTM.......................................... 188
Пример LSTM – анализ эмоциональной окраски ..........................................................191
Вентильный рекуррентный блок – GRU......................................... 197
Пример GRU – частеречная разметка .................................................................................198
Двунаправленные РНС................................................................. 205
8  Оглавление
РНС с запоминанием состояния................................................... 206
Пример LSTM с запоминанием состояния – предсказание потребления
электричества................................................................................................................................206
Другие варианты РНС................................................................... 212
Резюме........................................................................................ 213
Глава 7. Дополнительные модели машинного обучения .................... 214
Функциональный API Keras........................................................... 215
Регрессионные сети..................................................................... 218
Пример регрессии – предсказание содержания бензола в воздухе.....................218
Обучение без учителя – автокодировщики................................... 223
Пример автокодировщика – векторы предложений ....................................................225
Композиция глубоких сетей.......................................................... 234
Пример – сеть с памятью для ответов на вопросы........................................................235
Расширение Keras........................................................................ 242
Пример – использование слоя lambda...............................................................................242
Пример – построение пользовательского слоя нормировки....................................243
Порождающие модели................................................................. 247
Пример – глубокие сновидения ............................................................................................248
Пример – перенос стиля...........................................................................................................255
Резюме........................................................................................ 260
Глава 8. Искусственный интеллект играет в игры ................................ 262
Обучение с подкреплением.......................................................... 263
Максимизация будущих вознаграждений.........................................................................264
Q-обучение.....................................................................................................................................265
Глубокая Q-сеть как Q-функция ............................................................................................. 267
Баланс между исследованием и использованием.........................................................268
Воспроизведение опыта...........................................................................................................269
Пример – глубокая Q-сеть для поимки мяча....................................................................269
Что дальше?................................................................................. 282
Резюме........................................................................................ 283
Заключение................................................................................................. 285
Keras 2.0 – что нового................................................................... 286
Установка Keras 2.0..................................................................................................................... 287
Изменения API .............................................................................................................................. 287