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

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

В этом блоге мы кратко обсудим некоторые из наиболее часто используемых методов кондиционирования, а именно:
1- Кондиционирование конкатенацией.
2- Кондиционирование с использованием вспомогательного классификатора.
3- Кондиционирование с проекцией.
4- Условная пакетная нормализация.

Условие конкатенацией:

Самый простой способ интегрировать условие в сеть - это объединить его с первыми слоями, то есть объединить его с вектором z перед передачей генератору и изображениям, направленным на дискриминаторы. Этот метод использовался в первой статье о cGANs (Conditional Generative Adversarial Nets), как показано на Рисунке 1.

Расширенная версия этого метода использовалась в (Генеративный состязательный текст в синтез изображений), где они сопоставили условие с помощью обучаемой функции (например, линейного слоя) с пространственным объектом и объединили выходные данные с функциями, извлеченными из изображений на промежуточном слое в дискриминатор, как показано на рисунке 2.

Недостаток использования такого метода в том, что за ним нет математической логики; часто условия вводятся как векторы с горячим кодированием, и простая конкатенация не коррелирует с пиксельным пространством изображений.

Кондиционирование с помощью вспомогательного классификатора:

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

Недостатком такого подхода является то, что генератор может генерировать выборки, которые легко классифицируются для удовлетворения новых представленных потерь, и, следовательно, разнообразие сгенерированных изображений будет меньше.

Кондиционирование с проекцией:

В cGAN с дискриминатором проекции они модифицировали дискриминатор, чтобы включить проекцию между условием и функциями, извлеченными из изображения. Эти значения проекции измеряют сходство между условием и изображением и добавляются к логиту дискриминатора. Выход дискриминатора становится:

где V - матрица внедрения (например, слой внедрения в PyTorch или линейный слой), схема метода изображена на рисунке 4.

Кондиционирование с проекцией оказалось более эффективным, чем предыдущие методы. Однако одним ограничением является то, что условия являются непрерывными значениями, в таком случае они не могут быть отображены с использованием матрицы внедрения, а использование линейного слоя приводит к небольшим угловым изменениям.

Условная пакетная нормализация (CBN):

Условная пакетная нормализация использовалась в (Dumoulin et al., 2016; De Vries et al., 2017) для переноса стиля, где условие y используется для модуляции функций активации нейронная сеть. Рассмотрим следующее уравнение:

где x_i представляет функцию активации. Сначала активации нормализуются с использованием среднего значения и дисперсии, рассчитанных для экземпляров мини-пакета, а затем масштабируются и смещаются адаптивными функциями f и g. , которые выбираются на основе предоставленных условий / стиля. Эта идея использовалась в последних моделях GAN (Zhang et al., 2019; Brock et al. , 2018 ), заменив слои пакетной нормализации в генераторе слоями CBN .

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

Использованная литература: