Генеративные модели
GAN (StyleGAN), VAE, Diffusion Models (DDPM, Stable Diffusion) — генерация и редактирование изображений.
Генеративные модели — GAN, VAE, Diffusion
Генеративные модели создают новые изображения — от фотореалистичных лиц до художественных иллюстраций по текстовому описанию. Это одна из самых быстро развивающихся областей CV. DALL-E, Midjourney, Stable Diffusion — все они построены на генеративных моделях. На собеседовании ожидают знание трёх парадигм: GAN, VAE и Diffusion.
GAN — генеративно-состязательные сети
GAN (Goodfellow et al., 2014) — два конкурирующих модуля: Generator создаёт изображения из шума, Discriminator отличает реальные от сгенерированных. Они обучаются одновременно в "игре".
- Generator G(z) — принимает случайный шум z ∈ R^d, генерирует изображение. Цель: обмануть Discriminator.
- Discriminator D(x) — бинарный классификатор: real vs fake. Цель: правильно различать.
- Min-max game — min_G max_D E[log D(x)] + E[log(1 - D(G(z)))]. Generator минимизирует, Discriminator максимизирует.
- Проблемы — mode collapse (генерация однообразных изображений), training instability, исчезающие градиенты.
Эволюция GAN: DCGAN → Progressive GAN → StyleGAN → StyleGAN2 → StyleGAN3. StyleGAN2 генерирует фотореалистичные лица в разрешении 1024×1024 с тонким контролем стиля (через mapping network + AdaIN).
VAE — вариационные автоэнкодеры
VAE (Kingma & Welling, 2013) — обучает непрерывное латентное пространство, из которого можно сэмплировать:
- Encoder q(z|x) — проецирует изображение в параметры распределения (μ, σ) в латентном пространстве.
- Reparameterization trick — z = μ + σ · ε (ε ~ N(0,1)). Позволяет backprop через стохастический sampling.
- Decoder p(x|z) — восстанавливает изображение из латентного кода z.
- ELBO loss = Reconstruction loss (MSE/BCE) + KL divergence (регуляризация латентного пространства к N(0,1)).
- Преимущества: стабильное обучение, интерпретируемое латентное пространство, интерполяция. Недостаток: размытые (blurry) генерации.
Diffusion Models — текущий SOTA
Diffusion Models (DDPM, 2020) — добавляют гауссовский шум к изображению за T шагов (forward process), затем обучают нейросеть обращать процесс (reverse process):
- Forward process — x_0 → x_1 → ... → x_T ≈ N(0, I). Постепенно добавляем шум по расписанию β_t.
- Reverse process — x_T → x_{T-1} → ... → x_0. Нейросеть ε_θ предсказывает шум на каждом шаге.
- Training — MSE loss: ||ε - ε_θ(x_t, t)||². Простой, стабильный процесс обучения.
- Sampling — итеративно убираем шум от x_T до x_0. Медленно (T=1000 шагов), но DDIM ускоряет до ~50 шагов.
Latent Diffusion (Stable Diffusion) — ключевое ускорение: диффузия происходит не в пространстве пикселей (512×512×3), а в латентном пространстве VAE (64×64×4). Это уменьшает compute в ~50x. Текстовое кондиционирование через CLIP text encoder + cross-attention.
Загрузка интерактивного виджета...
Сравнение подходов
- GAN — быстрая генерация (один forward pass), высокое качество лиц. Но нестабильное обучение, mode collapse. Эпоха 2014–2021.
- VAE — стабильное обучение, интерпретируемое пространство. Но blurry результаты. Чаще используется как компонент (latent space в Stable Diffusion).
- Diffusion — лучшее качество, стабильное обучение, гибкое кондиционирование (text, image, depth). Но медленный инференс. Доминирует с 2022+.
- Практика: Stable Diffusion = VAE encoder/decoder + U-Net denoiser + CLIP text encoder. Знание всех трёх парадигм необходимо.
Метрики генерации
- FID (Fréchet Inception Distance) — расстояние между распределениями реальных и сгенерированных изображений в feature space Inception-V3. Ниже = лучше. SOTA ~2-5 на CIFAR-10.
- IS (Inception Score) — качество + разнообразие через Inception-V3. Выше = лучше. Но не учитывает overfitting к training data.
- CLIP Score — cosine similarity между CLIP-эмбеддингами текста и сгенерированного изображения. Для text-to-image.
🎯 На собеседовании
Частые вопросы
Материалы
DDPM — основополагающая работа по диффузионным моделям. Чёткое изложение forward/reverse process.
Latent Diffusion — основа Stable Diffusion. Диффузия в латентном пространстве VAE.
Оригинальная статья GAN (2014). Классика deep learning. Обязательное чтение.