Глубокое обучение

Понимание генеративной состязательной сети (GAN) в глубоком обучении

Генерация искусственных изображений в модели глубокой сверточной нейронной сети

В этой статье мы обсудим генеративные состязательные сети (GAN), которые представляют собой архитектуру глубокой нейронной сети, состоящую из двух нейронных сетей, конкурирующих между собой. Здесь GAN состоит из двух слов, и их значение показано ниже:

Генеративное означает создание распределения вероятностей, которое приближается к исходным данным, которые мы хотим аппроксимировать.

Состязательный означает, в общем, оппозицию, потому что есть две модели, то есть дискриминатор и генератор, они пытаются противостоять друг другу, чтобы узнать функцию распределения вероятностей. GAN - это нейронные сети, которые обучены состязательным способом генерировать данные, имитирующие некоторое распределение, которое мы хотим аппроксимировать.

Классы моделей в машинном обучении.

  1. Дискриминационная модель. Это модель, которая различает два разных класса данных.
  2. Генеративная модель: эта модель используется для генерации изображения из случайного распределения данных, чтобы распределение 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. Матрица путаницы в машинном обучении »