Диффузионная модель
Материал из MachineLearning.
(Новая статья: диффузионные модели (DDPM, LDM, Stable Diffusion), Claude Sonnet 4) |
(Исправлены формулы LaTeX (String.raw), убрано дублирование имени) |
||
| Строка 1: | Строка 1: | ||
| - | {{well|Статья написана с использованием LLM '''Claude Sonnet 4''' и проверена участником [[Участник:Emil Petrov|Emil Petrov]] | + | {{well|Статья написана с использованием LLM '''Claude Sonnet 4''' и проверена участником [[Участник:Emil Petrov|Emil Petrov]] 15:00, 16 июня 2026 (MSD) |
Промпт приводится полностью в [[Обсуждение:Диффузионная модель]] | Промпт приводится полностью в [[Обсуждение:Диффузионная модель]] | ||
}} | }} | ||
| Строка 10: | Строка 10: | ||
=== Прямой процесс (диффузия) === | === Прямой процесс (диффузия) === | ||
| - | Прямой процесс постепенно добавляет гауссовский шум к исходному образцу <tex>x_0 sim q(x_0)</tex> за <tex>T</tex> шагов по фиксированному расписанию <tex> | + | Прямой процесс постепенно добавляет гауссовский шум к исходному образцу <tex>x_0 \sim q(x_0)</tex> за <tex>T</tex> шагов по фиксированному расписанию <tex>\beta_1, \ldots, \beta_T</tex>: |
| - | :<tex>q(x_t mid x_{t-1}) = mathcal{N}!left(x_t;; sqrt{1- | + | :<tex>q(x_t \mid x_{t-1}) = \mathcal{N}\!\left(x_t;\; \sqrt{1-\beta_t}\, x_{t-1},\; \beta_t I\right).</tex> |
| - | + | ||
Благодаря удобному свойству гауссовского распределения, можно выразить <tex>x_t</tex> непосредственно через <tex>x_0</tex> без последовательного шагания: | Благодаря удобному свойству гауссовского распределения, можно выразить <tex>x_t</tex> непосредственно через <tex>x_0</tex> без последовательного шагания: | ||
| - | :<tex>q(x_t mid x_0) = mathcal{N}!left(x_t;; sqrt{ | + | :<tex>q(x_t \mid x_0) = \mathcal{N}\!\left(x_t;\; \sqrt{\bar\alpha_t}\, x_0,\; (1-\bar\alpha_t) I\right),</tex> |
| - | + | ||
| - | где <tex>alpha_t = 1 - | + | где <tex>\alpha_t = 1 - \beta_t</tex>, <tex>\bar\alpha_t = \prod_{s=1}^{t} \alpha_s</tex>. При достаточно большом <tex>T</tex> и правильно выбранном расписании <tex>x_T \approx \mathcal{N}(0, I)</tex>. |
=== Обратный процесс === | === Обратный процесс === | ||
| - | Обратный процесс <tex>p_ | + | Обратный процесс <tex>p_\theta(x_{t-1} \mid x_t)</tex> аппроксимируется нейронной сетью с параметрами <tex>\theta</tex>: |
| - | :<tex>p_ | + | :<tex>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).</tex> |
| - | + | ||
| - | Истинный обратный переход <tex>q(x_{t-1} mid x_t, x_0)</tex> также гауссовский и аналитически вычислим. Нейронная сеть обучается предсказывать добавленный шум <tex>epsilon</tex>, что упрощает целевую функцию. | + | Истинный обратный переход <tex>q(x_{t-1} \mid x_t, x_0)</tex> также гауссовский и аналитически вычислим. Нейронная сеть обучается предсказывать добавленный шум <tex>\epsilon</tex>, что упрощает целевую функцию. |
=== Функция потерь (DDPM) === | === Функция потерь (DDPM) === | ||
| Строка 35: | Строка 32: | ||
Ho et al. (2020) предложили упрощённую вариационную нижнюю границу (ELBO), сводящуюся к задаче предсказания шума: | Ho et al. (2020) предложили упрощённую вариационную нижнюю границу (ELBO), сводящуюся к задаче предсказания шума: | ||
| - | :<tex>mathcal{L}_ | + | :<tex>\mathcal{L}_\text{simple} = \mathbb{E}_{t,\, x_0,\, \epsilon}\!\left[\|\epsilon - \epsilon_\theta(\sqrt{\bar\alpha_t}\, x_0 + \sqrt{1-\bar\alpha_t}\, \epsilon,\; t)\|^2\right],</tex> |
| - | + | ||
| - | где <tex>epsilon sim mathcal{N}(0, I)</tex>, <tex>t sim mathcal{U}{1, ldots, T}</tex>. Генерация осуществляется итеративным применением обратных шагов из <tex>x_T sim mathcal{N}(0, I)</tex>. | + | где <tex>\epsilon \sim \mathcal{N}(0, I)</tex>, <tex>t \sim \mathcal{U}\{1, \ldots, T\}</tex>. Генерация осуществляется итеративным применением обратных шагов из <tex>x_T \sim \mathcal{N}(0, I)</tex>. |
== Архитектура денойзера == | == Архитектура денойзера == | ||
| - | В качестве <tex>epsilon_ | + | В качестве <tex>\epsilon_\theta</tex> исторически использовались сети типа U-Net с остаточными блоками и механизмом [[Механизм внимания|само-внимания]] (self-attention). В последних моделях (DiT — Diffusion Transformer) U-Net заменяется [[Трансформер (модель)|трансформером]], работающим с патчами латентных представлений. |
Для обусловленной генерации (conditioned generation) — например, по текстовому описанию — применяется '''кросс-внимание''': текстовый эмбеддинг (от CLIP или T5) служит ключами и значениями, а карта признаков изображения — запросами. Это позволяет «управлять» генерацией через текст. | Для обусловленной генерации (conditioned generation) — например, по текстовому описанию — применяется '''кросс-внимание''': текстовый эмбеддинг (от CLIP или T5) служит ключами и значениями, а карта признаков изображения — запросами. Это позволяет «управлять» генерацией через текст. | ||
| Строка 60: | Строка 56: | ||
== Управление генерацией == | == Управление генерацией == | ||
| - | * '''Classifier-Free Guidance (CFG)''' — во время обучения с некоторой вероятностью убирается условие (текст), что позволяет при генерации интерполировать между условным и безусловным предсказанием: <tex> | + | * '''Classifier-Free Guidance (CFG)''' — во время обучения с некоторой вероятностью убирается условие (текст), что позволяет при генерации интерполировать между условным и безусловным предсказанием: <tex>\tilde\epsilon = \epsilon_\theta(x_t, \emptyset) + w\,[\epsilon_\theta(x_t, c) - \epsilon_\theta(x_t, \emptyset)]</tex>. Параметр <tex>w > 1</tex> усиливает следование условию за счёт разнообразия. |
* '''ControlNet''' — дополнительная ветвь сети, обусловливающая генерацию на структурированные условия: карты краёв (Canny), позы, глубину и т.д. | * '''ControlNet''' — дополнительная ветвь сети, обусловливающая генерацию на структурированные условия: карты краёв (Canny), позы, глубину и т.д. | ||
* '''Inpainting, img2img''' — диффузия применяется к частично зашумлённому изображению, обеспечивая редактирование и завершение. | * '''Inpainting, img2img''' — диффузия применяется к частично зашумлённому изображению, обеспечивая редактирование и завершение. | ||
Текущая версия
| | Статья написана с использованием LLM Claude Sonnet 4 и проверена участником Emil Petrov 15:00, 16 июня 2026 (MSD)
Промпт приводится полностью в Обсуждение:Диффузионная модель |
|
Диффузио́нная мо́дель (англ. diffusion model) — класс генеративных моделей глубокого обучения, обучающихся постепенно «разрушать» данные добавлением шума (прямой процесс), а затем обращать этот процесс (обратный процесс), генерируя новые образцы из чистого шума. Диффузионные модели достигли выдающихся результатов в генерации изображений (Stable Diffusion, DALL-E 2/3, Midjourney), аудио (WaveGrad), видео и молекулярных структур, конкурируя с генеративно-состязательными сетями (GAN) по качеству и превосходя их по стабильности обучения.
Математическая основа
Прямой процесс (диффузия)
Прямой процесс постепенно добавляет гауссовский шум к исходному образцу за
шагов по фиксированному расписанию
:
Благодаря удобному свойству гауссовского распределения, можно выразить непосредственно через
без последовательного шагания:
где ,
. При достаточно большом
и правильно выбранном расписании
.
Обратный процесс
Обратный процесс аппроксимируется нейронной сетью с параметрами
:
Истинный обратный переход также гауссовский и аналитически вычислим. Нейронная сеть обучается предсказывать добавленный шум
, что упрощает целевую функцию.
Функция потерь (DDPM)
Ho et al. (2020) предложили упрощённую вариационную нижнюю границу (ELBO), сводящуюся к задаче предсказания шума:
где ,
. Генерация осуществляется итеративным применением обратных шагов из
.
Архитектура денойзера
В качестве исторически использовались сети типа U-Net с остаточными блоками и механизмом само-внимания (self-attention). В последних моделях (DiT — Diffusion Transformer) U-Net заменяется трансформером, работающим с патчами латентных представлений.
Для обусловленной генерации (conditioned generation) — например, по текстовому описанию — применяется кросс-внимание: текстовый эмбеддинг (от CLIP или T5) служит ключами и значениями, а карта признаков изображения — запросами. Это позволяет «управлять» генерацией через текст.
Ускоренные сэмплеры
Стандартный DDPM требует шагов для генерации. Разработаны методы ускорения:
- DDIM (Denoising Diffusion Implicit Models) — детерминированный сэмплер, сокращающий число шагов до 20–50 без переобучения модели.
- DPM-Solver — ODE-решатель второго порядка, обеспечивающий высокое качество при 10–20 шагах.
- Consistency Models — обучаются напрямую предсказывать
из любого
, позволяя сэмплировать за 1–4 шага.
Латентная диффузия
Вместо работы в пиксельном пространстве Rombach et al. (2022) предложили латентные диффузионные модели (LDM), работающие в компрессированном латентном пространстве вариационного автокодировщика. Это на порядок снижает вычислительные затраты при сопоставимом качестве. Stable Diffusion — наиболее известная реализация LDM.
Управление генерацией
- Classifier-Free Guidance (CFG) — во время обучения с некоторой вероятностью убирается условие (текст), что позволяет при генерации интерполировать между условным и безусловным предсказанием:
. Параметр
усиливает следование условию за счёт разнообразия.
- ControlNet — дополнительная ветвь сети, обусловливающая генерацию на структурированные условия: карты краёв (Canny), позы, глубину и т.д.
- Inpainting, img2img — диффузия применяется к частично зашумлённому изображению, обеспечивая редактирование и завершение.
Применения
- Генерация изображений — Stable Diffusion, DALL-E 2/3, Midjourney, Adobe Firefly.
- Генерация видео — Sora (OpenAI), Stable Video Diffusion.
- Генерация аудио и музыки — WaveGrad, AudioLDM, MusicGen.
- Молекулярный дизайн — генерация молекул белков (RFDiffusion), дизайн лекарственных препаратов.
- 3D-генерация — DreamFusion применяет Score Distillation Sampling для оптимизации NeRF под текстовый запрос.
Сравнение с другими генеративными моделями
| Модель | Качество | Стабильность обучения | Скорость генерации | Управляемость |
|---|---|---|---|---|
| Диффузионная | Очень высокое | Высокая | Медленная (много шагов) | Высокая |
| GAN | Высокое | Нестабильная (mode collapse) | Быстрая (1 проход) | Умеренная |
| VAE | Среднее | Высокая | Быстрая | Ограниченная |
| Flow-based | Высокое | Высокая | Средняя | Умеренная |
См. также
- Трансформер (модель)
- Механизм внимания
- Генеративно-состязательная сеть
- Автокодировщик
- Нейросетевое встраивание
- Большая языковая модель
Примечания
Литература
- Ho J., Jain A., Abbeel P. Denoising Diffusion Probabilistic Models // NeurIPS. — 2020.
- Song J., Meng C., Ermon S. Denoising Diffusion Implicit Models // ICLR. — 2021.
- Rombach R., Blattmann A., Lorenz D., Esser P., Ommer B. High-Resolution Image Synthesis with Latent Diffusion Models // CVPR. — 2022.
- Peebles W., Xie S. Scalable Diffusion Models with Transformers // ICCV. — 2023.

