← Назад к вопросам

Что такое GAN, какие архитектуры GAN знаете?

2.0 Middle🔥 191 комментариев
#Глубокое обучение#Машинное обучение

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

GAN: Генеративно-состязательные сети

GAN (Generative Adversarial Network) — это архитектура машинного обучения, состоящая из двух нейросетей, которые соревнуются между собой. Одна генерирует данные, другая их различает. Это привело к революции в генеративном моделировании.

Основной принцип

GAN состоит из двух сетей:

Generator (G) — принимает шумовой вектор и генерирует поддельные данные, стараясь обмануть дискриминатор

Discriminator (D) — классифицирует, является ли входное изображение реальным или поддельным

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

Математическая формулировка

Целевая функция (minimax game):

min_G max_D V(D, G) = E_x[log D(x)] + E_z[log(1 - D(G(z)))]

Где:

  • x — реальные данные
  • z — вектор шума (latent space)
  • D(x) — вероятность что x реальная
  • G(z) — сгенерированные данные

Популярные архитектуры GAN

DCGAN (Deep Convolutional GAN)

  • Использует свёрточные слои вместо полносвязных
  • Значительно улучшила качество генерации изображений
  • Architecture: Conv2d для G и D вместо Dense слоёв

Conditional GAN (cGAN)

  • Добавляет условие (label) к обеим сетям
  • Позволяет контролировать класс генерируемых данных
  • G(z, c) и D(x, c) - принимают условие c

Wasserstein GAN (WGAN)

  • Решает проблему нестабильного обучения стандартного GAN
  • Использует метрику Вассерштейна вместо JS divergence
  • Позволяет отследить качество обучения через loss функцию

StyleGAN / StyleGAN2

  • Введение стиля и контроля на разных уровнях
  • AdaIN (Adaptive Instance Normalization) для контроля деталей
  • Исключительное качество синтеза лиц человека

CycleGAN

  • Неспаренный перевод между доменами (unpaired image-to-image translation)
  • Например: фото→картина, день→ночь, лошадь→зебра
  • Использует cycle consistency loss

Pix2Pix

  • Спаренный перевод между доменами (paired image-to-image translation)
  • Условный GAN с архитектурой U-Net
  • Требует наличие пар изображений для обучения

ProgressGAN

  • Постепенное увеличение разрешения во время обучения
  • Стабилизирует обучение и ускоряет конвергенцию
  • Позволяет генерировать очень высокого разрешения изображения

BigGAN

  • Масштабирование GAN на большие наборы данных (ImageNet)
  • Улучшенная архитектура и техники обучения
  • Exceptional quality но требует много ресурсов

Проблемы и вызовы при обучении GAN

Mode Collapse — генератор учится генерировать только несколько вариантов, не исследуя весь latent space

Нестабильность обучения — баланс между G и D сложен, часто одна доминирует

Требовательность к ресурсам — обучение GAN требует значительных вычислительных мощностей и памяти

Оценка качества — сложно оценить качество генерации (используют Inception Score, FID)

Практические применения

  • Синтез изображений (генерация портретов, ландшафтов)
  • Super-resolution (улучшение качества изображений)
  • Style transfer и художественные трансформации
  • Data augmentation для малых наборов данных
  • Anomaly detection через reconstruction error
  • 3D моделирование и синтез видео

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