flow_matching_post
@fminxyz — Пост: Flow Matching — прямое регрессирование поля скоростей
Серия 2 | Пост 4 из 5 | Дата: 7 марта 2026, 19:30 MSK
Текст поста (~1800 символов)
Зачем учить score, если можно напрямую выучить КУДА двигаться? 📐
DDPM и Score Matching — красиво. Но у них одна проблема: траектории кривые. Тысяча шагов по зигзагам. Flow Matching говорит: давайте сразу пойдём по прямой.
Идея:
Вместо score ∇log p(x) учим поле скоростей uₜ(x):
dx/dt = uₜ(x), x(0) ~ N(0, I), x(1) ~ p_data
Просто учим нейросеть: “в момент времени t, в точке x — вот куда надо двигаться”.
OT Flow Matching (оптимальный транспорт):
Ключевой insight: если интерполировать прямолинейно:
x(t) = (1−t)·x₀ + t·x₁
…то поле скоростей постоянно: uₜ(x) = x₁ − x₀.
Это оптимальный транспорт — минимальный путь из шума в данные. Никаких зигзагов.
Почему лучше диффузии?
• Меньше шагов сэмплирования (10-20 вместо 1000)
• Прямые траектории = ODE solvers работают точнее
• Лучше интерполяция в латентном пространстве
Кто использует:
Stable Diffusion 3, FLUX.1, Sora (вероятно) — все перешли на flow matching. DDPM остался в учебниках.
Loss:
L(θ) = 𝔼ₜ,x₀,x₁ [ ||vθ(x(t), t) − (x₁ − x₀)||² ]
Просто MSE между предсказанной скоростью и прямолинейным направлением.
В анимации: синие и розовые точки движутся от шума (N(0,I)) к двум лунам по прямым линиям. Стрелки — аппроксимация поля скоростей.
🔜 Послезавтра: CFG — как усилить “кошачесть” без классификатора
Метаданные
- Файлы: flow_matching_animation.py → flow_matching_animation.mp4
- Хэштеги: #нейросети #диффузия #flowMatching #OT #FLUX #deeplearning
- CTA: “Прямые линии vs кривые пути — почему прямые лучше?”
- Связь с каналом: OT flow = прямые траектории = аналог адаптивного шага в оптимизации