Варианты GAN: CGAN, Pix2Pix, CycleGAN

В этом посте мы углубимся в несколько вариантов GAN: условный GAN (CGAN), Pix2Pix и CycleGAN. Освоив базовые концепции и структуру GAN, вы поймёте, как эти варианты позволяют выполнять более точные и разнообразные задачи.

Условный GAN (CGAN)

Условный GAN (CGAN) — это вариация базовой структуры GAN, которая включает в себя условную информацию, позволяя генерировать изображения, соответствующие определённым критериям. Эта идея схожа с условным вариационным автокодировщиком (CVAE), который объединяет структуру вариационного автокодировщика с условной информацией.

В базовом GAN генератор каждый раз случайным образом создаёт изображения. Однако в CGAN генератор может создавать изображения с учётом конкретных условий.

Структура

Ключевая особенность CGAN заключается в добавлении условной информации к входам как генератора, так и дискриминатора.

Базовый GAN vs. Условный GAN (Изображение автора)

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

Например, рассмотрим реализацию CGAN, используя набор данных MNIST, содержащий изображения цифр. Если условная информация указывает на цифру «7», генератор создаст изображение, соответствующее цифре «7», а дискриминатор будет оценивать, является ли это изображение реальной «7». На практике информация о цифре «7» должна быть представлена в виде значимого вектора, поэтому цифра «7» кодируется с использованием one-hot кодирования. Например, цифра «7» представляется как [0, 0, 0, 0, 0, 0, 0, 1, 0, 0]. Этот вектор условной информации подаётся на вход как генератору, так и дискриминатору для обучения.

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

Ниже приведена примерная иллюстрация, показывающая результаты генерации для каждого эпоха при обучении CGAN на наборе данных MNIST с заданным входом «цифра».

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

Анимация примера CGAN на MNIST (Изображение автора)

Особенности и преимущества

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

Pix2Pix

Pix2Pix — это вариация GAN, разработанная для преобразования изображений из одного формата в другой. Основная идея схожа с условным GAN (CGAN) (Isola et al., 2017, статья о Pix2Pix). Однако Pix2Pix включает две расширения, которые позволяют добиться более разнообразной и гибкой структуры.

Pix2Pix Paper

  1. Первое расширение идеи: Преобразование условной информации в «эскиз» в качестве направляющей информации (A-стиль)
  2. Второе расширение идеи: Дискриминатор различает между A-стилем и B-стилем, вместо Реального vs. Поддельного

Рассмотрим эту идею на примере карт и спутниковых снимков. Генератор создаёт спутниковые изображения на основе направляющей информации, введённой в форме карты, согласно первой идее. Дискриминатор, реализуя вторую идею, различает, является ли сгенерированное изображение настоящей спутниковой фотографией (B-стиль) или просто направляющей информацией (A-стиль). Таким образом, просто предоставив карту в качестве направляющей, Pix2Pix генерирует реальные спутниковые снимки.

Результат преобразования карты в спутниковое изображение с помощью Pix2Pix (Источник: https://arxiv.org/pdf/1611.07004)

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

Результат преобразования дизайна в реальное изображение с помощью Pix2Pix (Источник: https://arxiv.org/pdf/1611.07004)

Таким образом, предоставляя стили A и B в качестве входной информации, можно создавать изображения в стиле A из стиля B или, наоборот, переводить из стиля B в стиль A. Этот метод может эффективно использоваться в различных областях, таких как искусство, дизайн и географические информационные системы.

Структура

Pix2Pix использует генератор и дискриминатор для преобразования изображений. Давайте подробнее рассмотрим структуру обучения.

Архитектура обучения и вывода Pix2Pix (Источник: https://arxiv.org/pdf/1611.07004)

Как показано на схеме, цель генератора заключается в создании изображений в стиле B, используя изображения в стиле A в качестве входных данных. Это своего рода условная генеративно-состязательная сеть (Conditional GAN). Для обучения дискриминатора в качестве входных данных используются как реальные изображения в стиле B, так и поддельные изображения, созданные генератором. В этом процессе дискриминатор обучается точно распознавать настоящие изображения в стиле B.

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

Особенности и преимущества

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

CycleGAN

В то время как Pix2Pix демонстрирует идею генерации и различения изображений, обучаясь однонаправленному преобразованию изображений в стиле A в стиль B, CycleGAN великолепно расширяет эту концепцию, вводя идею цикла: Стиль A → Стиль B → Стиль A. Это позволяет не только трансформировать стиль, но и восстанавливать изображение в исходное состояние. Например, CycleGAN может преобразовать изображение коричневой лошади в изображение зебры, а затем вернуть его обратно в изображение коричневой лошади.

Для реализации этой идеи требуются отдельные генераторы и дискриминаторы для каждого стиля:

  • Генератор A: Генерирует изображения в стиле A
  • Дискриминатор A: Определяет, является ли изображение в стиле A
  • Генератор B: Генерирует изображения в стиле B
  • Дискриминатор B: Определяет, является ли изображение в стиле B

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

Процесс обучения CycleGAN (Источник изображения: https://www.youtube.com/watch?v=9N_uOIPghuo)

Первый генератор преобразует изображения из домена X в домен Y, а второй генератор преобразует изображения из домена Y в домен X. Каждый дискриминатор оценивает, являются ли изображения в соответствующем домене реальными или поддельными. Если исходное изображение в стиле X (обозначим его как 𝑥) подаётся на вход, оно сначала преобразуется в стиль Y, а затем возвращается обратно в стиль X, так что итоговое изображение 𝑥′ должно быть максимально близко к исходному изображению 𝑥. Это и является основной целью обучения. Аналогичным образом можно обучить преобразование изображений в стиле Y (обозначим его как 𝑦). Такой подход гарантирует, что все сети будут эффективно обучены. Это простая, но гениальная идея.

Особенности и преимущества

Основное преимущество CycleGAN заключается в его способности одновременно выполнять как преобразование изображения, так и восстановление исходного стиля. Это делает его полезным для различных задач по преобразованию стилей. Например, он может превращать летние изображения в зимние или преобразовывать картины в стиле Ван Гога в реалистичные фотографии.

Ещё одно важное преимущество CycleGAN — это его способность обучаться преобразованиям между двумя стилями. Это чрезвычайно полезно для задач конверсии между различными доменами.

Заключение

В этом посте мы рассмотрели CGAN (Conditional GAN), Pix2Pix и CycleGAN. Каждая из этих вариаций добавляет дополнительные элементы, такие как условная информация или преобразование стилей, к базовой концепции GAN, что позволяет применять их в различных областях.

  • CGAN: Эта вариация добавляет условную информацию к базовой структуре GAN, что позволяет генерировать изображения, соответствующие определённым условиям. CGAN полезен в таких приложениях, как создание изображений лиц, соответствующих определённому возрасту или полу, или создание произведений искусства в заданных стилях.
  • Pix2Pix: Эта вариация разработана для преобразования изображений из одного формата в другой, обучаясь взаимосвязи между входными изображениями и целевыми стилями, чтобы генерировать разнообразные изображения. Pix2Pix находит своё применение в таких областях, как искусство, дизайн и географические информационные системы, например, для задач преобразования эскизов в фотографии или карт в спутниковые снимки.
  • CycleGAN: Эта вариация позволяет преобразовывать изображения между двумя различными стилями и затем восстанавливать их в исходный стиль. CycleGAN полезен для задач преобразования стилей и восстановления изображений, таких как преобразование летних изображений в зимние или превращение картин в стиле Ван Гога в реалистичные фотографии. Способность CycleGAN обучаться преобразованиям между двумя стилями делает его чрезвычайно полезным для задач конверсии между различными доменами.

Эти вариации GAN расширяют и применяют основную идею GAN различными способами, что позволяет использовать их в самых разнообразных приложениях.

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

https://colab.research.google.com/drive/1b8zGpSd0ie8L06FiMBtmRFT21Q-YvNtB?source=post_page——f7869de53152———————————

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *