20. Генеративно-состязательные сети
Quick search
code
Show Source
PyTorch MXNet Notebooks Courses GitHub
Погружение в глубокое обучение
Table Of Contents
  • Предисловие
  • Установка
  • Обозначения
  • 1. Введение
  • 2. Предварительные сведения
    • 2.1. Манипуляция данными
    • 2.2. Предобработка данных
    • 2.3. Линейная алгебра
    • 2.4. Математический анализ
    • 2.5. Автоматическое дифференцирование
    • 2.6. Вероятность и статистика
    • 2.7. Документация
  • 3. Линейные нейронные сети для регрессии
    • 3.1. Линейная регрессия
    • 3.2. Объектно-ориентированное проектирование для реализации
    • 3.3. Синтетические данные для регрессии
    • 3.4. Реализация линейной регрессии с нуля
    • 3.5. Краткая реализация линейной регрессии
    • 3.6. Обобщающая способность
    • 3.7. Затухание весов
  • 4. Линейные нейронные сети для классификации
    • 4.1. Софтмакс-регрессия
    • 4.2. Набор данных для классификации изображений
    • 4.3. Базовая модель классификации
    • 4.4. Реализация софтмакс-регрессии с нуля
    • 4.5. Краткая реализация софтмакс-регрессии
    • 4.6. Обобщающая способность в классификации
    • 4.7. Среда и сдвиг распределения
  • 5. Многослойные перцептроны
    • 5.1. Многослойные перцептроны
    • 5.2. Реализация многослойных перцептронов
    • 5.3. Прямое распространение, обратное распространение и вычислительные графы
    • 5.4. Численная устойчивость и инициализация
    • 5.5. Обобщающая способность в глубоком обучении
    • 5.6. Дропаут
    • 5.7. Прогнозирование цен на дома на Kaggle
  • 6. Руководство для разработчиков
    • 6.1. Слои и модули
    • 6.2. Управление параметрами
    • 6.3. Инициализация параметров
    • 6.4. Ленивая инициализация
    • 6.5. Пользовательские слои
    • 6.6. Ввод-вывод файлов
    • 6.7. Графические процессоры (GPU)
  • 7. Свёрточные нейронные сети
    • 7.1. От полносвязных слоёв к свёрткам
    • 7.2. Свёртки для изображений
    • 7.3. Дополнение и шаг
    • 7.4. Несколько входных и выходных каналов
    • 7.5. Пулинг
    • 7.6. Свёрточные нейронные сети (LeNet)
  • 8. Современные свёрточные нейронные сети
    • 8.1. Глубокие свёрточные нейронные сети (AlexNet)
    • 8.2. Сети, использующие блоки (VGG)
    • 8.3. Сеть в сети (NiN)
    • 8.4. Многоветвевые сети (GoogLeNet)
    • 8.5. Батч-нормализация
    • 8.6. Остаточные сети (ResNet) и ResNeXt
    • 8.7. Плотные сети (DenseNet)
    • 8.8. Проектирование архитектур свёрточных сетей
  • 9. Рекуррентные нейронные сети
    • 9.1. Работа с последовательностями
    • 9.2. Преобразование исходного текста в данные последовательности
    • 9.3. Языковые модели
    • 9.4. Рекуррентные нейронные сети
    • 9.5. Реализация рекуррентной нейронной сети с нуля
    • 9.6. Краткая реализация рекуррентных нейронных сетей
    • 9.7. Обратное распространение ошибки через время
  • 10. Современные рекуррентные нейронные сети
    • 10.1. Долгая краткосрочная память (LSTM)
    • 10.2. Блоки с управляемыми переходами (GRU)
    • 10.3. Глубокие рекуррентные нейронные сети
    • 10.4. Двухнаправленные рекуррентные нейронные сети
    • 10.5. Машинный перевод и набор данных
    • 10.6. Архитектура кодировщик–декодировщик
    • 10.7. Обучение последовательность-в-последовательность для машинного перевода
    • 10.8. Лучевой поиск
  • 11. Механизмы внимания и трансформеры
    • 11.1. Запросы, ключи и значения
    • 11.2. Агрегирование по вниманию на основе сходства
    • 11.3. Функции оценки внимания
    • 11.4. Механизм внимания Бадау
    • 11.5. Многоголовое внимание
    • 11.6. Самовнимание и позиционное кодирование
    • 11.7. Архитектура трансформера
    • 11.8. Трансформеры для компьютерного зрения
    • 11.9. Масштабное предобучение с помощью трансформеров
  • 12. Алгоритмы оптимизации
    • 12.1. Оптимизация и глубокое обучение
    • 12.2. Выпуклость
    • 12.3. Градиентный спуск
    • 12.4. Стохастический градиентный спуск
    • 12.5. Стохастический градиентный спуск на мини-батчах
    • 12.6. Импульс
    • 12.7. Adagrad
    • 12.8. RMSProp
    • 12.9. Adadelta
    • 12.10. Адам
    • 12.11. Планирование скорости обучения
  • 13. Вычислительная производительность
    • 13.1. Компиляторы и интерпретаторы
    • 13.2. Асинхронные вычисления
    • 13.3. Автоматический параллелизм
    • 13.4. Аппаратное обеспечение
    • 13.5. Обучение на нескольких GPU
    • 13.6. Краткая реализация для нескольких GPU
    • 13.7. Серверы параметров
  • 14. Компьютерное зрение
    • 14.1. Аугментация изображений
    • 14.2. Дообучение
    • 14.3. Обнаружение объектов и ограничивающие рамки
    • 14.4. Якорные рамки
    • 14.5. Обнаружение объектов на разных масштабах
    • 14.6. Набор данных для обнаружения объектов
    • 14.7. Однопроходное обнаружение с несколькими боксами
    • 14.8. Региональные свёрточные нейронные сети (R-CNN)
    • 14.9. Семантическая сегментация и набор данных
    • 14.10. Свёртка с транспонированием
    • 14.11. Полностью свёрточные сети
    • 14.12. Перенос нейронного стиля
    • 14.13. Классификация изображений (CIFAR-10) на Kaggle
    • 14.14. Идентификация породы собак (ImageNet Dogs) на Kaggle
  • 15. Обработка естественного языка: Предобучение
    • 15.1. Эмбеддинг слов (word2vec)
    • 15.2. Приближённое обучение
    • 15.3. Раздел учебника: Набор данных для предобучения словесных вложений
    • 15.4. Предобучение word2vec
    • 15.5. Эмбеддинг слов с помощью глобальных векторов (GloVe)
    • 15.6. Эмбеддинг подслов
    • 15.7. Сходство и аналогия слов
    • 15.8. Двухсторонние представления кодировщика на основе трансформеров (BERT)
    • 15.9. Набор данных для предобучения BERT
    • 15.10. Предобучение BERT
  • 16. Обработка естественного языка: приложения
    • 16.1. Анализ тональности и набор данных
    • 16.2. Анализ тональности: использование рекуррентных нейронных сетей
    • 16.3. Анализ тональности: использование свёрточных нейронных сетей
    • 16.4. Вывод в естественном языке и набор данных
    • 16.5. Вывод в естественном языке: использование внимания
    • 16.6. Дообучение BERT для задач на уровне последовательностей и токенов
    • 16.7. Вывод на естественном языке: дообучение BERT
  • 17. Обучение с подкреплением
    • 17.1. Марковский процесс принятия решений (MDP)
    • 17.2. Итерация значений
    • 17.3. Q-обучение
  • 18. Гауссовские процессы
    • 18.1. Введение в гауссовские процессы
    • 18.2. Априорные распределения гаусовских процессов
    • 18.3. Вывод гауссовского процесса
  • 19. Оптимизация гиперпараметров
    • 19.1. Что такое оптимизация гиперпараметров?
    • 19.2. API оптимизации гиперпараметров
    • 19.3. Асинхронный случайный поиск
    • 19.4. Многоуровневая оптимизация гиперпараметров
    • 19.5. Асинхронное последовательное отсечение
  • 20. Генеративно-состязательные сети
    • 20.1. Генеративно-состязательные сети
    • 20.2. Глубокие свёрточные генеративно-состязательные сети
  • 21. Системы рекомендаций
    • 21.1. Обзор систем рекомендаций
  • 22. Приложение: Математика для глубокого обучения
    • 22.1. Геометрия и линейно-алгебраические операции
    • 22.2. Собственные разложения
    • 22.3. Дифференциальное исчисление одной переменной
    • 22.4. Многомерное исчисление
    • 22.5. Интегральное исчисление
    • 22.6. Случайные величины
    • 22.7. Максимальное правдоподобие
    • 22.8. Распределения
    • 22.9. Наивный байесовский классификатор
    • 22.10. Статистика
    • 22.11. Теория информации
  • 23. Приложение: Инструменты для глубокого обучения
    • 23.1. Использование Jupyter Notebook
    • 23.2. Использование Amazon SageMaker
    • 23.3. Использование экземпляров AWS EC2
    • 23.4. Использование Google Colab
    • 23.5. Выбор серверов и графических процессоров
    • 23.6. Вклад в эту книгу
    • 23.7. Вспомогательные функции и классы
    • 23.8. Документация по API d2l
  • References
Погружение в глубокое обучение
Table Of Contents
  • Предисловие
  • Установка
  • Обозначения
  • 1. Введение
  • 2. Предварительные сведения
    • 2.1. Манипуляция данными
    • 2.2. Предобработка данных
    • 2.3. Линейная алгебра
    • 2.4. Математический анализ
    • 2.5. Автоматическое дифференцирование
    • 2.6. Вероятность и статистика
    • 2.7. Документация
  • 3. Линейные нейронные сети для регрессии
    • 3.1. Линейная регрессия
    • 3.2. Объектно-ориентированное проектирование для реализации
    • 3.3. Синтетические данные для регрессии
    • 3.4. Реализация линейной регрессии с нуля
    • 3.5. Краткая реализация линейной регрессии
    • 3.6. Обобщающая способность
    • 3.7. Затухание весов
  • 4. Линейные нейронные сети для классификации
    • 4.1. Софтмакс-регрессия
    • 4.2. Набор данных для классификации изображений
    • 4.3. Базовая модель классификации
    • 4.4. Реализация софтмакс-регрессии с нуля
    • 4.5. Краткая реализация софтмакс-регрессии
    • 4.6. Обобщающая способность в классификации
    • 4.7. Среда и сдвиг распределения
  • 5. Многослойные перцептроны
    • 5.1. Многослойные перцептроны
    • 5.2. Реализация многослойных перцептронов
    • 5.3. Прямое распространение, обратное распространение и вычислительные графы
    • 5.4. Численная устойчивость и инициализация
    • 5.5. Обобщающая способность в глубоком обучении
    • 5.6. Дропаут
    • 5.7. Прогнозирование цен на дома на Kaggle
  • 6. Руководство для разработчиков
    • 6.1. Слои и модули
    • 6.2. Управление параметрами
    • 6.3. Инициализация параметров
    • 6.4. Ленивая инициализация
    • 6.5. Пользовательские слои
    • 6.6. Ввод-вывод файлов
    • 6.7. Графические процессоры (GPU)
  • 7. Свёрточные нейронные сети
    • 7.1. От полносвязных слоёв к свёрткам
    • 7.2. Свёртки для изображений
    • 7.3. Дополнение и шаг
    • 7.4. Несколько входных и выходных каналов
    • 7.5. Пулинг
    • 7.6. Свёрточные нейронные сети (LeNet)
  • 8. Современные свёрточные нейронные сети
    • 8.1. Глубокие свёрточные нейронные сети (AlexNet)
    • 8.2. Сети, использующие блоки (VGG)
    • 8.3. Сеть в сети (NiN)
    • 8.4. Многоветвевые сети (GoogLeNet)
    • 8.5. Батч-нормализация
    • 8.6. Остаточные сети (ResNet) и ResNeXt
    • 8.7. Плотные сети (DenseNet)
    • 8.8. Проектирование архитектур свёрточных сетей
  • 9. Рекуррентные нейронные сети
    • 9.1. Работа с последовательностями
    • 9.2. Преобразование исходного текста в данные последовательности
    • 9.3. Языковые модели
    • 9.4. Рекуррентные нейронные сети
    • 9.5. Реализация рекуррентной нейронной сети с нуля
    • 9.6. Краткая реализация рекуррентных нейронных сетей
    • 9.7. Обратное распространение ошибки через время
  • 10. Современные рекуррентные нейронные сети
    • 10.1. Долгая краткосрочная память (LSTM)
    • 10.2. Блоки с управляемыми переходами (GRU)
    • 10.3. Глубокие рекуррентные нейронные сети
    • 10.4. Двухнаправленные рекуррентные нейронные сети
    • 10.5. Машинный перевод и набор данных
    • 10.6. Архитектура кодировщик–декодировщик
    • 10.7. Обучение последовательность-в-последовательность для машинного перевода
    • 10.8. Лучевой поиск
  • 11. Механизмы внимания и трансформеры
    • 11.1. Запросы, ключи и значения
    • 11.2. Агрегирование по вниманию на основе сходства
    • 11.3. Функции оценки внимания
    • 11.4. Механизм внимания Бадау
    • 11.5. Многоголовое внимание
    • 11.6. Самовнимание и позиционное кодирование
    • 11.7. Архитектура трансформера
    • 11.8. Трансформеры для компьютерного зрения
    • 11.9. Масштабное предобучение с помощью трансформеров
  • 12. Алгоритмы оптимизации
    • 12.1. Оптимизация и глубокое обучение
    • 12.2. Выпуклость
    • 12.3. Градиентный спуск
    • 12.4. Стохастический градиентный спуск
    • 12.5. Стохастический градиентный спуск на мини-батчах
    • 12.6. Импульс
    • 12.7. Adagrad
    • 12.8. RMSProp
    • 12.9. Adadelta
    • 12.10. Адам
    • 12.11. Планирование скорости обучения
  • 13. Вычислительная производительность
    • 13.1. Компиляторы и интерпретаторы
    • 13.2. Асинхронные вычисления
    • 13.3. Автоматический параллелизм
    • 13.4. Аппаратное обеспечение
    • 13.5. Обучение на нескольких GPU
    • 13.6. Краткая реализация для нескольких GPU
    • 13.7. Серверы параметров
  • 14. Компьютерное зрение
    • 14.1. Аугментация изображений
    • 14.2. Дообучение
    • 14.3. Обнаружение объектов и ограничивающие рамки
    • 14.4. Якорные рамки
    • 14.5. Обнаружение объектов на разных масштабах
    • 14.6. Набор данных для обнаружения объектов
    • 14.7. Однопроходное обнаружение с несколькими боксами
    • 14.8. Региональные свёрточные нейронные сети (R-CNN)
    • 14.9. Семантическая сегментация и набор данных
    • 14.10. Свёртка с транспонированием
    • 14.11. Полностью свёрточные сети
    • 14.12. Перенос нейронного стиля
    • 14.13. Классификация изображений (CIFAR-10) на Kaggle
    • 14.14. Идентификация породы собак (ImageNet Dogs) на Kaggle
  • 15. Обработка естественного языка: Предобучение
    • 15.1. Эмбеддинг слов (word2vec)
    • 15.2. Приближённое обучение
    • 15.3. Раздел учебника: Набор данных для предобучения словесных вложений
    • 15.4. Предобучение word2vec
    • 15.5. Эмбеддинг слов с помощью глобальных векторов (GloVe)
    • 15.6. Эмбеддинг подслов
    • 15.7. Сходство и аналогия слов
    • 15.8. Двухсторонние представления кодировщика на основе трансформеров (BERT)
    • 15.9. Набор данных для предобучения BERT
    • 15.10. Предобучение BERT
  • 16. Обработка естественного языка: приложения
    • 16.1. Анализ тональности и набор данных
    • 16.2. Анализ тональности: использование рекуррентных нейронных сетей
    • 16.3. Анализ тональности: использование свёрточных нейронных сетей
    • 16.4. Вывод в естественном языке и набор данных
    • 16.5. Вывод в естественном языке: использование внимания
    • 16.6. Дообучение BERT для задач на уровне последовательностей и токенов
    • 16.7. Вывод на естественном языке: дообучение BERT
  • 17. Обучение с подкреплением
    • 17.1. Марковский процесс принятия решений (MDP)
    • 17.2. Итерация значений
    • 17.3. Q-обучение
  • 18. Гауссовские процессы
    • 18.1. Введение в гауссовские процессы
    • 18.2. Априорные распределения гаусовских процессов
    • 18.3. Вывод гауссовского процесса
  • 19. Оптимизация гиперпараметров
    • 19.1. Что такое оптимизация гиперпараметров?
    • 19.2. API оптимизации гиперпараметров
    • 19.3. Асинхронный случайный поиск
    • 19.4. Многоуровневая оптимизация гиперпараметров
    • 19.5. Асинхронное последовательное отсечение
  • 20. Генеративно-состязательные сети
    • 20.1. Генеративно-состязательные сети
    • 20.2. Глубокие свёрточные генеративно-состязательные сети
  • 21. Системы рекомендаций
    • 21.1. Обзор систем рекомендаций
  • 22. Приложение: Математика для глубокого обучения
    • 22.1. Геометрия и линейно-алгебраические операции
    • 22.2. Собственные разложения
    • 22.3. Дифференциальное исчисление одной переменной
    • 22.4. Многомерное исчисление
    • 22.5. Интегральное исчисление
    • 22.6. Случайные величины
    • 22.7. Максимальное правдоподобие
    • 22.8. Распределения
    • 22.9. Наивный байесовский классификатор
    • 22.10. Статистика
    • 22.11. Теория информации
  • 23. Приложение: Инструменты для глубокого обучения
    • 23.1. Использование Jupyter Notebook
    • 23.2. Использование Amazon SageMaker
    • 23.3. Использование экземпляров AWS EC2
    • 23.4. Использование Google Colab
    • 23.5. Выбор серверов и графических процессоров
    • 23.6. Вклад в эту книгу
    • 23.7. Вспомогательные функции и классы
    • 23.8. Документация по API d2l
  • References

20. Генеративно-состязательные сети¶

  • 20.1. Генеративно-состязательные сети
    • 20.1.1. Генерация «реальных» данных
    • 20.1.2. Генератор
    • 20.1.3. Дискриминатор
    • 20.1.4. Обучение
    • 20.1.5. Итоги
    • 20.1.6. Упражнения
  • 20.2. Глубокие свёрточные генеративно-состязательные сети
    • 20.2.1. Раздел учебника: Набор данных по покемонам
    • 20.2.2. Генератор
    • 20.2.3. Дискриминатор
    • 20.2.4. Обучение
    • 20.2.5. Итоги
    • 20.2.6. Упражнения
Previous
19.5. Асинхронное последовательное отсечение
Next
20.1. Генеративно-состязательные сети