Что такое GAN
GAN (Generative Adversarial Network, генеративно-состязательная сеть) – архитектура глубокого обучения, предложенная Яном Гудфеллоу и соавторами в 2014 году. Принцип GAN заключается в состязательном обучении двух нейронных сетей: генератора (G) и дискриминатора (D). Генератор синтезирует фиктивные примеры данных (например, изображения) из случайного вектора шума. Дискриминатор пытается отличить реальные данные от созданных генератором. В ходе обучения обе сети улучшаются: генератор учится лучше обманывать, дискриминатор – лучше разоблачать.
Равновесие игры по Нэшу достигается, когда генератор воспроизводит реальное распределение данных настолько точно, что дискриминатор не может угадать лучше, чем наугад (вероятность 0,5).
История и ключевые вехи развития GAN
Исходная статья Гудфеллоу et al. «Generative Adversarial Nets» (NeurIPS 2014) произвела революцию в генеративных моделях. За последующее десятилетие появились сотни модификаций:
- DCGAN (2015): Deep Convolutional GAN – первая стабильная архитектура на свёрточных сетях для генерации изображений.
- Conditional GAN (2014): Мирза и Озайдын добавили условия (метки классов), позволив управлять генерацией.
- Pix2Pix (2016): image-to-image трансляция: эскиз → фото, чёрно-белое → цветное.
- CycleGAN (2017): Непарная image-to-image трансляция (например, лето → зима) без парных обучающих примеров.
- StyleGAN / StyleGAN2 (2018–2020, NVIDIA): Генерация сверхреалистичных портретов людей разрешением 1024×1024 px. Сайт thispersondoesnotexist.com построен на StyleGAN.
- BigGAN (2018, Google DeepMind): Масштабирование на 512 классов ImageNet, качество FID ≈ 7.
- GauGAN (NVIDIA Canvas): Синтез ландшафтов по сегментационной маске.
Как работает GAN: математика и обучение
Цель обучения задаётся функцией потерь минимакс:
min_G max_D E[log D(x)] + E[log(1 − D(G(z)))]
Здесь x – реальные данные, z – случайный шум. Генератор минимизирует вероятность распознания, дискриминатор максимизирует различение. На практике обучение нестабильно: важны балансировка обновлений, нормализация (Spectral Norm, Batch Norm), правильная архитектура.
Mode collapse – главная проблема GAN: генератор «застревает» в узком подмножестве примеров (генерирует одно и то же лицо). Для борьбы применяют mini-batch discrimination, unrolled GAN, Wasserstein GAN (WGAN), использующий метрику расстояния Вассерштейна.
Виды GAN и их применение
- Image synthesis: генерация человеческих лиц (StyleGAN), произведений искусства, архитектурных макетов.
- Image-to-image translation: Pix2Pix, CycleGAN – применяются в медицинской визуализации (MRI→CT), картографии, дизайне.
- Super-resolution: SRGAN повышает разрешение изображений в 4× с восстановлением деталей.
- Video generation: VideoGAN, MoCoGAN – синтез коротких видеоклипов.
- Data augmentation: синтез дефектных образцов для обучения систем контроля качества.
- Deepfake: переброска лиц на видео – область с этическими рисками, требующая детекторов дипфейков.
Преимущества и ограничения GAN
Преимущества: высокое визуальное качество генерации, гибкость в выборе архитектур, способность к unpaired image translation. Ограничения: нестабильность обучения, mode collapse, сложность оценки качества (нет дифференцируемой метрики), высокие требования к GPU-памяти. В последние годы диффузионные модели в ряде задач превзошли GAN по качеству и стабильности.
Связь с другими понятиями
GAN входят в широкий класс генеративных моделей наряду с VAE и диффузионными моделями. Архитектура G/D опирается на свёрточные нейронные сети (CNN) для работы с изображениями. Для оценки качества генерации применяются FID-score, IS и метрики, пересекающиеся с evaluation-ml. Современные трансформеры постепенно вытесняют GAN в задачах генерации текста и мультимодальных систем.