Современные подходы
~35 мин

Генеративные модели

GAN (StyleGAN), VAE, Diffusion Models (DDPM, Stable Diffusion) — генерация и редактирование изображений.

Генеративные модели — GAN, VAE, Diffusion

Генеративные модели создают новые изображения — от фотореалистичных лиц до художественных иллюстраций по текстовому описанию. Это одна из самых быстро развивающихся областей CV. DALL-E, Midjourney, Stable Diffusion — все они построены на генеративных моделях. На собеседовании ожидают знание трёх парадигм: GAN, VAE и Diffusion.

Архитектура GAN: Generator и Discriminator в состязательном обучении
GAN: Generator создаёт изображения из случайного шума, Discriminator отличает реальные от сгенерированных — обучение через состязание

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.

🎯 На собеседовании

Частые вопросы

Объясните как работает GAN. Generator создаёт из шума, Discriminator различает real/fake. Обучаются одновременно в adversarial game. Проблемы: mode collapse, training instability. • Чем Diffusion лучше GAN? Стабильнее обучение (нет adversarial training), лучше mode coverage, гибкое кондиционирование. Но медленнее инференс. • Что такое Latent Diffusion? Диффузия в латентном пространстве VAE (64×64) вместо pixel space (512×512). Ускоряет в ~50x. Stable Diffusion = Latent Diffusion + CLIP. • Как считается FID? Fréchet distance между распределениями features (Inception-V3) реальных и сгенерированных изображений. Ниже = лучше.