GAN (Generative Adversarial Network)
- Автор: Команда PhotoPanda
- Обновлено
- 2 мин чтения
- 111 просмотров
Определение
GAN (Generative Adversarial Network, генеративно-состязательная сеть) — архитектура нейросетей из двух конкурирующих моделей: Generator создаёт синтетические изображения, Discriminator отличает их от реальных. Игра Zero-sum вынуждает Generator производить всё более реалистичные результаты.
GAN (Generative Adversarial Network, генеративно-состязательная сеть) — архитектура глубокого обучения, предложенная Яном Гудфеллоу (Ian Goodfellow) в 2014 году. Основана на состязании двух нейросетей: Generator (Генератор) создаёт синтетические изображения, Discriminator (Дискриминатор) пытается отличить их от реальных. Состязание вынуждает Generator генерировать всё более реалистичные результаты — до тех пор, пока Discriminator не перестаёт справляться.
Принцип работы: игра нулевой суммы
GAN реализует игру Minimax: Generator минимизирует вероятность того, что Discriminator распознает подделку; Discriminator максимизирует эту вероятность. При достижении равновесия Нэша (Nash Equilibrium) Generator производит изображения, неотличимые от реальных для Discriminator.
- Generator получает случайный вектор шума из латентного пространства (обычно 128–512 измерений)
- Из него Generator создаёт синтетическое изображение
- Discriminator оценивает как реальные изображения из датасета, так и синтетические от Generator
- Discriminator обновляет веса, чтобы лучше классифицировать «real» vs «fake»
- Generator обновляет веса, чтобы обмануть Discriminator
- Цикл повторяется миллионы итераций
Ключевые архитектуры GAN для обработки фото
| Модель | Год | Задача | Применение в PhotoPanda |
|---|---|---|---|
| SRGAN | 2017 | Super-resolution ×4 | Предшественник Real-ESRGAN |
| Real-ESRGAN | 2021 | Real-world апскейл | Апскейл на GPU-сервере |
| GFPGAN | 2021 | Face restoration | Восстановление лиц |
| CodeFormer | 2022 | Face restoration (VQVAE+Transformer) | Альтернатива GFPGAN |
| StyleGAN3 | 2021 | Фотореалистичные лица | Prior в GFPGAN |
| Pix2Pix | 2017 | Image-to-image translation | Основа conditional editing |
Проблемы GAN и почему Diffusion побеждает
- Mode collapse: Generator «застревает» и генерирует ограниченное разнообразие результатов, игнорируя часть данных. Сложно диагностировать и исправить.
- Нестабильное обучение: баланс Generator/Discriminator хрупкий — если один обгоняет другого, обучение рушится. Требует тонкой настройки learning rate, batch size, архитектуры.
- Ограниченное разнообразие: GAN хуже охватывает полное распределение данных по сравнению с диффузионными моделями.
В 2022–2024 годах диффузионные модели превзошли GAN по FID (Fréchet Inception Distance) на большинстве бенчмарков. Однако GAN сохраняют преимущество в скорости (один forward pass vs 20–50 шагов диффузии) и остаются стандартом для real-time апскейла и восстановления лиц.
GAN в PhotoPanda
PhotoPanda использует GAN-модели для задач, требующих минимальной задержки: восстановление лиц через CodeFormer (VQVAE + Transformer, технически гибрид GAN) обрабатывает одно лицо за 150–300 мс. Апскейл через Real-ESRGAN — 0.5–1.5 с для изображения 4 МП. Для задач generative inpainting в AI-редакторе — диффузионные модели (лучшее качество при допустимой скорости 3–8 с).
FAQ — GAN
GAN может сгенерировать любое изображение?
Теоретически — всё из обучающего распределения. На практике GAN ограничен датасетом и архитектурой. StyleGAN3, обученный на лицах (FFHQ), генерирует только лица; переобучить его на другой домен — нетривиальная задача. Диффузионные модели с CLIP conditioning (Stable Diffusion) гораздо гибче.
Как GAN генерирует лицо «несуществующего человека»?
StyleGAN2/3 работает в двух пространствах: Z-space (входной шум) и W-space (промежуточное латентное пространство с лучшей disentanglement). Каждая «ось» W-space примерно соответствует семантическому атрибуту: возраст, пол, цвет волос. Интерполяция в W-space позволяет плавно менять атрибуты не затрагивая идентичность.
Deepfake — это GAN?
Исторически — да. Первые deepfake-модели (DeepFaceLab, FaceSwap) использовали AutoEncoder + Discriminator (de-facto GAN). Современные deepfake используют диффузионные модели или Diffusion+GAN гибриды, что значительно улучшает качество. Детекторы deepfake тоже эволюционируют в ответ.
Связанные термины
- Diffusion modelDiffusion model (диффузионная модель) — класс генеративных нейросетей, обученных последовательно добавлять и затем убирать шум из изображения. Основа Stable Diffusion, DALL-E 3, GPT Image 2 и SeedVR2. Обеспечивает фотореалистичную генерацию и редактирование.
- Real-ESRGANReal-ESRGAN — GAN-based нейросеть для апскейла от Tencent (ICCV 2021). Обучена на реалистично деградированных изображениях, BSD-лицензия, малый размер (67 МБ). Самый популярный open-source апскейлер.
- GFPGANGFPGAN (Generative Facial Prior GAN) — модель восстановления лиц от Tencent ARC Lab (CVPR 2021). StyleGAN2 в качестве prior, быстрая (~30 мс/лицо), малые требования к GPU. На 2026 уступает PMRF по качеству, но популярна для self-host.
- Апскейл фотоАпскейл фото — увеличение разрешения изображения нейросетью с восстановлением деталей. В отличие от обычного интерполяционного увеличения (bicubic), AI-апскейл генерирует утерянные детали на основе обученных моделей.
- Колоризация (Colorization)Колоризация — автоматическое раскрашивание чёрно-белых изображений в цветные через нейросеть. Современные модели (ColorFlow, Adobe Quickfire) учитывают исторический период съёмки для period-accurate раскраски.
- Adversarial training (состязательное обучение)Adversarial training (состязательное обучение) — метод, при котором две нейросети учатся друг против друга: генератор создаёт данные, дискриминатор их разоблачает. Лежит в основе GAN и adversarial-лосса в апскейле (ESRGAN) и восстановлении лиц (GFPGAN).
Материал подготовила
Команда PhotoPanda
Редакция сервиса обработки фото PhotoPanda.