Генеративный AI

Diffusion Models: теория

2020 год. GAN-ы доминируют в генерации изображений - но нестабильны в обучении, склонны к mode collapse и требуют тонкой балансировки. Команда OpenAI публикует DDPM и показывает результаты лучше лучших GAN - без их недостатков. Секрет - в физическом процессе диффузии, вывернутом наизнанку.

  • **Stable Diffusion, DALL-E 3, Midjourney** - все построены на диффузионных моделях
  • **Drug discovery:** AlphaFold 3 генерирует молекулярные структуры через диффузию
  • **Video generation:** Sora, Gen-3 - диффузия в пространстве-времени
  • **Audio:** Stable Audio, MusicGen - диффузия в частотной области (спектрограммы)

От термодинамики к DDPM

Идея диффузионных моделей родилась в 2015 году: Jascha Sohl-Dickstein с коллегами в статье "Deep Unsupervised Learning using Nonequilibrium Thermodynamics" предложили обучать генеративную модель, обращая процесс постепенного зашумления данных. Подход опирался на неравновесную термодинамику и почти пять лет оставался нишевым. В 2019 году Yang Song и Stefano Ermon независимо пришли к близкой идее через score-based генеративные модели (оценку градиента лог-плотности данных). Переломным стал 2020 год, когда Jonathan Ho, Ajay Jain и Pieter Abbeel опубликовали DDPM и показали, что диффузия даёт изображения качеством выше лучших GAN. Именно DDPM запустил волну, приведшую к Stable Diffusion и DALL-E.

Предварительные знания

  • Понимание VAE и латентных пространств
  • Базовые свёрточные сети и U-Net
  • Attention и трансформеры на уровне идеи
  • Fine-Tuning: SFT, LoRA, QLoRA
  • Токенизация: BPE, SentencePiece

DDPM: Denoising Diffusion Probabilistic Models

Возьми фотографию и каждую итерацию добавляй чуть-чуть гауссовского шума. Через 1000 итераций это уже неразличимый белый шум. DDPM задаёт вопрос: можно ли научить нейросеть обращать этот процесс вспять? Оказывается, можно - если учить её предсказывать, какой именно шум был добавлен на каждом шаге.

**Forward process** - фиксированная цепочка Маркова: шаг t добавляет гауссовский шум к x_{t-1}, получая x_t. Ключевое свойство: x_t при любом t можно получить из x_0 напрямую без итераций - через репараметризацию с alpha_bar_t = ∏ (1 - beta_i).

**Почему предсказываем шум, а не x_0?** Ho et al. (2020) показали: предсказание eps даёт лучшие результаты. Интуиция - шум локален и высокочастотен, нейросети проще его предсказать, чем глобальную структуру целого изображения.

Что предсказывает U-Net в DDPM на каждом шаге деноизинга?

Score Matching и SMLD

Есть альтернативный взгляд на диффузию - через **score function**. Score - это градиент лог-плотности вероятности данных: s(x) = ∇_x log p(x). Если знать score в каждой точке, можно двигаться в сторону большей плотности - то есть восстанавливать изображение из шума.

**Score Matching with Langevin Dynamics (SMLD)** - Yang Song et al. (2019): обучаем нейросеть s_θ(x, σ) ≈ ∇_x log p_σ(x). Для генерации затем используем итерации Ланжевена - дрейф вдоль score плюс малый шум. Song et al. (2021) показали: DDPM и score-based модели математически эквивалентны - оба являются дискретизациями SDE.

**DDPM vs Score-based через SDE.** Song et al. (2021) объединили оба подхода: любой диффузионный процесс - это решение SDE вида dx = f(x,t)dt + g(t)dW. Обращение - тоже SDE, которое требует знания score. Это открыло дорогу к continuous-time диффузии и flow matching.

Что такое score function в контексте диффузионных моделей?

Noise Schedule: linear vs cosine

Noise schedule определяет, как быстро нарастает шум: как именно alpha_bar_t падает от 1 до ~0 за T шагов. От выбора расписания зависит и качество обучения, и эффективность inference.

**Linear schedule** (исходный DDPM): beta_t линейно растёт от 0.0001 до 0.02. Проблема: при малых разрешениях изображение становится чистым шумом уже к середине цепочки - оставшиеся 500 шагов обучаются на бессмысленном сигнале. Cosine schedule (Nichol & Dhariwal, 2021) исправляет это, делая зашумление плавным.

**Flow Matching (2022-2023)** идёт дальше: вместо диффузии - прямые траектории от шума к данным. Это сокращает число шагов с 1000 до 20-50 без потери качества. Stable Diffusion 3 и FLUX используют именно Flow Matching.

Cosine schedule лучше linear schedule потому что:

Denoising через U-Net

Математика диффузии требует конкретного backbone - нейросети, принимающей зашумлённое изображение x_t и номер шага t, возвращающей предсказанный шум eps. DDPM использует **U-Net**: архитектуру с энкодером, боттлнеком и декодером, соединёнными skip connections для сохранения пространственных деталей.

Номер шага t передаётся через **sinusoidal time embedding** - тот же механизм, что в трансформерах. Это позволяет модели адаптироваться: при большом t (много шума) фокусироваться на грубой структуре, при малом t - на тонких деталях.

**DDIM sampling.** Стандартный DDPM требует 1000 шагов inference. DDIM (Song et al. 2020) показал: та же обученная модель может генерировать за 50-100 детерминированных шагов - в 10-20 раз быстрее. DDIM открыл и latent interpolation: между двумя изображениями в пространстве шума.

Зачем U-Net в DDPM получает номер шага t как дополнительный вход?

Diffusion Models: теория

  • Forward process: добавляем гауссовский шум T шагов, x_0 → x_T ~ N(0, I)
  • x_t можно получить из x_0 напрямую через репараметризацию - без итераций
  • Модель учится предсказывать добавленный шум eps; loss = MSE(eps_pred, eps)
  • Score matching - эквивалентный взгляд: учим ∇_x log p(x), затем Langevin dynamics
  • Cosine schedule равномернее использует все шаги обучения чем linear
  • U-Net + sinusoidal time embedding - стандартный backbone; DDIM в 10-20 раз ускоряет inference

Связанные темы

Диффузионные модели - теоретическая основа. Следующий шаг - как это работает в Stable Diffusion на практике.

  • Stable Diffusion и DALL-E — Практическое применение теории диффузии
  • VAE: вариационные автоэнкодеры — Latent space, в котором работает Stable Diffusion
  • Трансформеры и Attention — Attention механизм внутри U-Net диффузии

Вопросы для размышления

  • Почему диффузионные модели превзошли GAN несмотря на более медленную генерацию?
  • В чём математическая связь между DDPM и score matching через стохастические дифференциальные уравнения?
  • Как бы вы применили диффузионную модель к задаче, не связанной с изображениями?

Связанные уроки

  • gai-06 — Идеи VAE и автоэнкодеров питают латентную диффузию
  • gai-10 — Теория отсюда питает практику Stable Diffusion
  • prob-19-brownian — Прямая диффузия - броуновский процесс зашумления
  • ml-33-gan — Другое семейство генеративных моделей, учащее распределение данных
  • cv-16 — Диффузия движет современную генерацию изображений в vision
  • prob-01-intro
Diffusion Models: теория

0

1

Войти