Что такое GAN, какие архитектуры GAN знаете?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
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 остаются одной из самых мощных и интересных областей в глубоком обучении, постоянно эволюционируя и находя новые применения.