Диффузионная модель

Материал из MachineLearning.

Версия от 17:15, 14 июля 2026; Emil Petrov (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM Claude Sonnet 4 и проверена участником Emil Petrov 20:00, 14 июля 2026 (MSD)

Промпт приводится полностью в Обсуждение:Диффузионная модель


Содержание

Диффузио́нная мо́дель (англ. diffusion model) — класс генеративных моделей, которые обучаются разрушать данные постепенным добавлением шума (прямой процесс) и восстанавливать их обратным процессом, стартуя из чистого шума. С начала 2020-х они задают стандарт качества в генерации изображений (Stable Diffusion, DALL-E 2/3, Midjourney, Imagen), а также применяются к аудио, видео, 3D и молекулам. По стабильности обучения они обычно превосходят GAN, а по качеству выборок — классические VAE; плата — многошаговый (и потому более медленный) сэмплинг.

Аналогия: скульптура из камня наоборот. Прямой процесс — аккуратно «зашумлять» статую до бесформенной пыли по известным правилам; обратный — нейросеть учится на каждом уровне шума угадывать, куда сдвинуть пыль, чтобы снова проявилась форма. Генерация — пройти путь от пыли к статуе, опираясь на выученный «реставратор».

Математическая основа

Прямой процесс (диффузия)

Пусть x_0 \sim q(x_0) — образец из распределения данных. Прямой марковский процесс добавляет гауссовский шум по расписанию \beta_1, \ldots, \beta_T:

q(x_t \mid x_{t-1}) = \mathcal{N}\!\left(x_t;\; \sqrt{1-\beta_t}\, x_{t-1},\; \beta_t I\right).

Ключевое удобство гауссиан: можно перейти к x_t сразу из x_0:

q(x_t \mid x_0) = \mathcal{N}\!\left(x_t;\; \sqrt{\bar\alpha_t}\, x_0,\; (1-\bar\alpha_t) I\right),

где \alpha_t = 1 - \beta_t, \bar\alpha_t = \prod_{s=1}^{t} \alpha_s. При большом T (типично 1000) и подходящем schedule x_T \approx \mathcal{N}(0, I). Расписания бывают линейные, cosine (улучшает сохранение сигнала на средних t) и обучаемые.

С точки зрения непрерывного времени прямой процесс — вариация диффузии Ornstein–Uhlenbeck / VP-SDE (Song et al.); дискретные DDPM — её практическая дискретизация.

Обратный процесс

Генерация требует обратных переходов p_\theta(x_{t-1} \mid x_t). Их параметризуют гауссианой:

p_\theta(x_{t-1} \mid x_t) = \mathcal{N}\!\left(x_{t-1};\; \mu_\theta(x_t, t),\; \Sigma_\theta(x_t, t)\right).

Истинный постериор тоже гауссовский. Обозначая \tilde\beta_t = \frac{1-\bar\alpha_{t-1}}{1-\bar\alpha_t}\,\beta_t,

q(x_{t-1} \mid x_t, x_0) = \mathcal{N}\!\bigl(x_{t-1};\; \tilde\mu_t(x_t, x_0),\; \tilde\beta_t I\bigr),
\tilde\mu_t(x_t, x_0) = \frac{\sqrt{\bar\alpha_{t-1}}\,\beta_t}{1-\bar\alpha_t}\, x_0 + \frac{\sqrt{\alpha_t}\,(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}\, x_t.

Сеть не обязана предсказывать \mu напрямую: эквивалентные параметризации — шум \epsilon, чистый x_0 или score \nabla_{x_t}\log q(x_t). На практике доминирует ε-параметризация: из предсказанного \hat\epsilon восстанавливают оценку \hat x_0 и подставляют в формулу среднего.

Исторически идея non-equilibrium thermodynamics для генерации восходит к Sohl-Dickstein et al. (2015); DDPM сделали её практически работоспособной на изображениях. Параллельная линия — score matching и NCSN/SDE (Song et al.): обучение градиента логарифма плотности зашумлённых данных; DDPM и score-SDE — две записи близкой математики.

Функция потерь DDPM

Ho, Jain и Abbeel (2020)[1] показали, что вариационная нижняя граница (ELBO) после упрощений сводится к регрессии шума:

\mathcal{L}_\text{simple} = \mathbb{E}_{t,\, x_0,\, \epsilon}\!\left[\bigl\|\epsilon - \epsilon_\theta(\sqrt{\bar\alpha_t}\, x_0 + \sqrt{1-\bar\alpha_t}\, \epsilon,\; t)\bigr\|^2\right],

где \epsilon \sim \mathcal{N}(0, I), t \sim \mathcal{U}\{1, \ldots, T\}. Это обычный MSE: сеть видит зашумлённый пример и момент времени t (через эмбеддинг шага) и должна восстановить добавленный шум. Полный ELBO включает веса по t и член для \Sigma; \mathcal{L}_\text{simple} на практике часто работает лучше «теоретически точной» взвешенной версии.

Сэмплинг DDPM: взять x_T \sim \mathcal{N}(0, I) и итеративно применять обратный шаг до x_0. Без ускорений это сотни–тысячи проходов сети.

Архитектура денойзера: U-Net и DiT

Исторически \epsilon_\thetaU-Net со skip-connections, residual-блоками, групповой/адаптивной нормализацией и вставками self-attention на низком разрешении. Время t модулирует блоки (FiLM / AdaGN). Для текст→изображение текстовые токены (CLIP, T5) подаются через кросс-внимание: запросы из карты признаков изображения, ключи/значения из текста.

Diffusion Transformer (DiT)[1] заменяет U-Net на трансформер по патчам латента. При масштабировании DiT демонстрирует предсказуемые законы качества (аналог scaling laws) и лёг в основу ряда SOTA-систем (в том числе линий Stable Diffusion 3 / Flux-подобных архитектур). Индуктивное смещение сдвигается: меньше «встроенной» многомасштабности свёрток, больше — емкости внимания и данных.

Ускоренные сэмплеры

Узкое место диффузии — число шагов. Основные семейства:

  • DDIM[1] — немарковское обобщение: тот же обученный \epsilon_\theta, но детерминированная (или частично стохастическая) траектория. Качество при 20–50 шагах близко к DDPM-1000; детерминизм даёт осмысленную интерполяцию латентов.
  • DPM-Solver / DPM-Solver++ — численные методы для вероятностного ODE/SDE диффузии высокого порядка; часто 10–20 шагов достаточно для высокого FID.
  • Consistency Models — обучение (или дистилляция) отображения x_t \mapsto x_0, согласованного вдоль траектории; сэмплинг за 1–4 шага ценой отдельного обучения/дистилляции.
  • Дистилляция и Progressive Distillation — учитель с многими шагами учит ученика с меньшим числом; крайний случай — одношаговые генераторы, конкурирующие с GAN по скорости.

Связь с score-based моделями (Song et al., SDE/ODE) показывает, что многие сэмплеры — разные дискретизации одной непрерывной динамики.

Латентная диффузия

Работа в пикселях дорога. Rombach et al. (2022)[1] предложили Latent Diffusion Models (LDM): сначала VAE сжимает изображение в латент z = \mathcal{E}(x), диффузия идёт в пространстве z, затем декодер \mathcal{D}(z) восстанавливает пиксели. Вычислительные затраты падают на порядок при сопоставимом восприятии. Stable Diffusion — массовая реализация LDM; открытые веса и экосистема ControlNet/LoRA сделали её стандартом de facto.

Компромисс: артефакты и предел детализации во многом наследуются от VAE; для сверхвысоких разрешений используют каскады, тайлинг или пиксельные/латентные гибриды.

Управление генерацией

  • Classifier-Free Guidance (CFG) — при обучении условие c (текст, класс) случайно отбрасывается. На инференсе:
\tilde\epsilon = \epsilon_\theta(x_t, \emptyset) + w\,\bigl[\epsilon_\theta(x_t, c) - \epsilon_\theta(x_t, \emptyset)\bigr].

Параметр w > 1 усиливает следование промпту ценой разнообразия и иногда перенасыщения. Связь с промпт-инжинирингом: формулировка c и выбор w — основные рычаги пользователя.

  • ControlNet — параллельная ветвь, в которую подают Canny, глубину, позу, сегментацию и т.п.; нулевые свёртки в начале обучения не ломают предобученный денойзер.
  • Inpainting / img2img — часть латента фиксируется из зашумлённого исходника, остальное генерируется; даёт редактирование и вариации.
  • IP-Adapter, reference attention — условие по изображению-референсу без полного переобучения.

После выравнивания текстовых моделей идеи RLHF/предпочтений переносятся и на диффузию (человеческие рейтинг-модели, DPO-подобные цели для денойзера), хотя зрелость методов ниже, чем у LLM-RLHF.

Применения

  • Изображения — Stable Diffusion, DALL-E, Midjourney, Imagen, Adobe Firefly; дизайн, иллюстрация, синтетические данные.
  • Видео — модели вроде Stable Video Diffusion, Sora и открытые аналоги; выше стоимость и острее проблема временной согласованности.
  • Аудио и музыка — WaveGrad, AudioLDM, диффузионные вокодеры.
  • Наука — RFDiffusion и родственные методы для белков/лигандов; генерация конформаций и каркасов молекул.
  • 3D — DreamFusion и SDS (Score Distillation Sampling): диффузионный prior оптимизирует NeRF/Gaussian Splatting по тексту.
  • Текст — экспериментальные диффузионные языковые модели (альтернатива авторегрессии LLM); пока не вытеснили трансформерный декодер, но показывают иной trade-off параллелизма и качества.

Сравнение с GAN, VAE и normalizing flow

Диффузия GAN VAE Flow
Качество выборок Очень высокое Высокое (при удачном обучении) Среднее / размытое Высокое на простых доменах
Стабильность обучения Высокая (MSE/ELBO) Низкая (mode collapse, хрупкий минимум) Высокая Высокая
Скорость генерации Медленная (много шагов; дистилляция помогает) Быстрая (один проход) Быстрая Быстрая / средняя
Правдоподобие / ELBO Да (вариационная оценка) Нет явной Да Да (точный likelihood)
Управляемость Высокая (CFG, ControlNet, inpaint) Средняя (зависит от архитектуры) Ограниченная Средняя
Память / compute обучения Высокие Средние Средние Высокие на высоком разрешении

Практически: если нужна максимальная визуальная fidelity и контроль — диффузия; если жёсткий realtime на краю — GAN или дистиллированная диффузия; если нужен точный likelihood — flow/VAE-подобные модели.

Ограничения и открытые вопросы

  • Стоимость сэмплинга — даже с DDIM/DPM десятки проходов сети дороже одного forward GAN; дистилляция сужает разрыв, но не всегда сохраняет редактируемость.
  • Контроль и безопасность — CFG усиливает промпт, но не гарантирует фактичность или соблюдение ограничений; для продуктов нужны фильтры, watermarking и policy-слой (частично пересекается с практиками выравнивания LLM).
  • Видео и 3D — согласованность во времени/пространстве всё ещё хрупка; compute растёт быстрее, чем наивное «добавить ось».
  • Оценка качества — FID/CLIPScore коррелируют с восприятием неполно; human eval и task-specific метрики остаются необходимы.
  • Альтернативы — consistency, flow-matching / rectified flow, авторегрессия по токенам изображения (как в некоторых мультимодальных LLM) конкурируют на скорости и простоте пайплайна.

Тем не менее именно диффузия в латентном пространстве с кросс-вниманием к тексту задала канон open-source генерации изображений и показала, что трансформер как денойзер (DiT) масштабируется предсказуемо — в духе scaling laws языковых моделей.

См. также

Примечания

Литература

  • Sohl-Dickstein J., Weiss E., Maheswaranathan N., Ganguli S. Deep Unsupervised Learning using Nonequilibrium Thermodynamics // ICML. — 2015.
  • Ho J., Jain A., Abbeel P. Denoising Diffusion Probabilistic Models // NeurIPS. — 2020.
  • Song J., Meng C., Ermon S. Denoising Diffusion Implicit Models // ICLR. — 2021.
  • Song Y. et al. Score-Based Generative Modeling through Stochastic Differential Equations // ICLR. — 2021.
  • Rombach R., Blattmann A., Lorenz D., Esser P., Ommer B. High-Resolution Image Synthesis with Latent Diffusion Models // CVPR. — 2022.
  • Ho J., Salimans T. Classifier-Free Diffusion Guidance // NeurIPS Workshop. — 2021.
  • Peebles W., Xie S. Scalable Diffusion Models with Transformers // ICCV. — 2023.
  • Song Y., Dhariwal P., Chen M., Sutskever I. Consistency Models // ICML. — 2023.