Глубокое обучение
Понимание генеративной состязательной сети (GAN) в глубоком обучении
Генерация искусственных изображений в модели глубокой сверточной нейронной сети
В этой статье мы обсудим генеративные состязательные сети (GAN), которые представляют собой архитектуру глубокой нейронной сети, состоящую из двух нейронных сетей, конкурирующих между собой. Здесь GAN состоит из двух слов, и их значение показано ниже:
Генеративное означает создание распределения вероятностей, которое приближается к исходным данным, которые мы хотим аппроксимировать.
Состязательный означает, в общем, оппозицию, потому что есть две модели, то есть дискриминатор и генератор, они пытаются противостоять друг другу, чтобы узнать функцию распределения вероятностей. GAN - это нейронные сети, которые обучены состязательным способом генерировать данные, имитирующие некоторое распределение, которое мы хотим аппроксимировать.
Классы моделей в машинном обучении.
- Дискриминационная модель. Это модель, которая различает два разных класса данных.
- Генеративная модель: эта модель используется для генерации изображения из случайного распределения данных, чтобы распределение D ’было близким к распределению реальных изображений D.
Математически,
z ~ Z сопоставляется с образцом G (Z) ~ D ’
На приведенном выше рисунке исходное распределение представляет собой круг D, а точки данных представлены как X с его распределением D. Работа генератора заключается в том, чтобы сделать случайное распределение от Z до D 'и сделать его как можно ближе к D в член метрики, такой как l1 или l2 norm. Генератор G может быть нейронной сетью, глубокой нейронной сетью или сверточной нейронной сетью.
Теперь, после получения поддельной выборки из генеративной модели, дискриминатор будет различать фальшивую выборку, то есть G (Z), и реальную выборку, тогда он даст значение «0», если выборка поступает из D »и даст значение« 1 », если исходящий из D. Если дискриминатор дает значение «0,5», он не сможет различить настоящие и поддельные образцы.
Что такое функция потерь в генерирующих состязательных сетях (GAN)?
Важно отметить, что генератор используется для создания изображения, которое обманывает дискриминатор. Время, когда дискриминатор не может различить поддельное и реальное изображение, то есть поддельное изображение, сгенерированное генератором, настолько реально, что его невозможно различить. Если дискриминатор знает, что изображение, сгенерированное генератором, является поддельным, он показывает ошибку и пытается обновить веса и смещения модели в генераторе и дискриминаторе.
Формула для функции потерь - это двоичная кросс-энтропия, как показано ниже:
Где y-hat - восстановленное изображение, а y - исходное изображение.
Фактическая функция потерь с точки зрения GAN показана ниже:
Как работает алгоритм в генерирующих состязательных сетях
Основные шаги, которые мы можем сделать для создания алгоритма GAN, показаны ниже:
Шаг 1. Импортируйте все библиотеки
Шаг 2. Загрузите набор данных
Шаг 3. Теперь мы можем указать параметры обучения и сети.
Шаг 4. Мы можем установить переменные веса и смещения.
Шаг 5: Теперь сделайте генератор и дискриминатор.
Шаг 6: Определение потерь и оптимизация
- Потеря дискриминатора: используется для количественной оценки различения реальных и поддельных изображений.
- Потери в генераторе: они используются для того, чтобы обмануть дискриминатор, утверждая, что поддельное изображение является настоящим изображением.
Шаг 7: Обучите генератор и дискриминатор, сохраните изображения генератора, чтобы они соответствовали реальным изображениям.
Ограничение генерирующих состязательных сетей (GAN)
- Что такое свертывание режима в GAN?
Во время обучения генератор может свернуться до настройки, при которой он всегда производит один и тот же результат. Это называется Mode Collapse.
- Исчезающие градиенты
Производная весов и смещений приближается к нулю.
- Трудно достичь равновесия по Нэшу
Нет никакой связи между обновлениями стоимости дискриминатора и генератора, потому что генератор обновляет стоимость независимо от другой модели. Итак, градиент обеих моделей не может дать гарантии сходимости.
- Проблема со счетом
Есть много случаев, когда у нас есть размытые изображения, когда объект на изображении кажется больше из-за резкости на изображении, чем он генерирует большее количество прогнозов.
- Проблема с перспективой
Иногда генерирующие состязательные сети не способны распознавать изображение спереди и сзади.
Заключение
Эта статья дает интуитивное представление о генерирующей состязательной сети.
Надеюсь, статья вам понравилась. Свяжитесь со мной в моих LinkedIn и twitter.
Рекомендуемые статьи
1. NLP - от нуля до героя с Python
2. Структуры данных Python Типы данных и объекты
3. Концепции обработки исключений в Python
4. Почему LSTM более полезен, чем RNN в глубоком обучении?
5. Нейронные сети: рост рекуррентных нейронных сетей
6. Полностью объясненная линейная регрессия с помощью Python
7. Полностью объясненная логистическая регрессия с помощью Python
8. Различия между concat (), merge () и join () в Python
9. Преобразование данных в Python - часть 1
10. Матрица путаницы в машинном обучении »