Strategy/content/ddpm_post.md
+

ddpm_post

review_statusnew
projectfminxyz
creation_date2026-02-25

@fminxyz — Пост: DDPM — учимся добавлять шум наоборот

Серия 2 | Пост 1 из 5 | Дата: 4 марта 2026, 19:30 MSK


Текст поста (~1800 символов)

Чтобы нарисовать кошку, нужно сначала научиться её СТИРАТЬ 🐈‍⬛

Звучит странно. Но это буквально то, что делают диффузионные модели.

Шаг 1 — Forward process:
Берём картинку x₀ и постепенно добавляем гауссовский шум:

x_t = √(1−β) · x_{t−1} + √β · ε, ε ~ N(0, I)

После 1000 шагов — чистый белый шум. Информация “размазана”.

Шаг 2 — Reverse process:
Нейросеть учится делать обратное — по зашумлённому x_t предсказать шум ε, который был добавлен.

Loss = ||ε − ε_θ(x_t, t)||²

Это называется denoising score matching. Мы не учим p(x) напрямую — мы учим “куда убирать шум”.

Почему это работает?
Если каждый маленький шаг зашумления — гауссовский, то каждый шаг восстановления тоже приближённо гауссовский. Это позволяет параметризовать обратный процесс аналитически.

p_θ(x_{t-1}|x_t) = N(μ_θ(x_t, t), σ_t²I)

FID (Fréchet Inception Distance) — метрика качества:
чем ближе статистика сгенерированных картинок к реальным — тем лучше. Оригинальный DDPM: FID≈3.17 на CIFAR-10.

В анимации: 10 шагов зашумления → 10 шагов восстановления. Реальный DDPM делает это за 1000 шагов, но идея та же.

🔜 Завтра: score function ∇log p(x) — нейросеть не знает плотность, но знает куда идти


Метаданные

  • Файлы: ddpm_animation.py → ddpm_animation.mp4
  • Хэштеги: #нейросети #диффузия #DDPM #generativeAI #deeplearning
  • CTA: “Опрос: сколько шагов нужно, чтобы уничтожить картинку? 10 / 100 / 1000”
  • Связь с каналом: DDPM обратный процесс ≈ Langevin dynamics = SGD + шум → паттерн оптимизации
Choose icon