# Янник Кильхер объяснил математику Flow Matching в Stable Diffusion 3

Источник: https://www.youtube.com/watch?v=7NNxK3CqaDk
Канал: Yannic Kilcher
Опубликовано: 08.04.2024

---

В современном ландшафте генеративного искусственного интеллекта происходит фундаментальный сдвиг от классических диффузионных моделей к более общим и эффективным подходам. Известный ИИ-исследователь Янник Кильхер (Yannic Kilcher) подробно разбирает концепцию Flow Matching (согласование потоков) — математический метод, который лёг в основу таких прорывных технологий, как Stable Diffusion 3. Этот подход позволяет значительно ускорить генерацию контента за счёт выпрямления траекторий движения от случайного шума к целевому распределению данных.

## 🔄 От диффузии к генеративному потоку
[[JUMP:0:00]]

Традиционно для генерации изображений по текстовому описанию (например, в моделях вроде DALL-E или ранних версиях Stable Diffusion) использовались диффузионные процессы. В отличие от классических подходов на основе GAN (генеративно-состязательных сетей) или VAE (вариационных автокодировщиков), диффузия представляет собой многошаговый процесс. Генерация начинается с полного случайного шума, сэмплированного из стандартного гауссова распределения, после чего нейросеть шаг за шагом вычисляет всё более очищенные («деноизированные») версии изображения, пока не будет достигнут целевой результат. Янник Кильхер иронично замечает, что в день записи ролика празднуется «Международный день худи», поэтому он ведет трансляцию в толстовке, но это не мешает ему углубиться в суровый математический анализ.

Обучение таких моделей строится на обратном принципе: берётся реальное изображение из датасета, к которому итеративно добавляется шум, пока сигнал не будет полностью уничтожен. Согласно классическим научным публикациям по диффузии, при многократном повторении этого процесса распределение данных гарантированно превращается в стандартное нормальное распределение. Нейросеть обучается обращать каждый промежуточный шаг зашумления вспять. Современные оптимизации позволяют предсказывать финальное состояние напрямую и пропускать шаги, но в основе всегда лежит фиксированный процесс зашумления. 

Концепция Flow Matching радикально обобщает этот подход. По словам Кильхера, вместо жесткой фиксации процесса зашумления исследователи из Meta AI и Института Вейцмана предложили напрямую обучать модель трансформировать (морфировать) исходное легко сэмплируемое распределение в целевое распределение данных.

## 🧮 Математический фундамент: путевые плотности и векторные поля
[[JUMP:10:42]]

В основе математического аппарата Flow Matching лежат три главных объекта:

* **Временной путь плотности вероятности** ($p_t(x)$) — функция, которая принимает координату в пространстве данных $R^d$ и переменную времени $t \in [0, 1]$, возвращая плотность вероятности нахождения точки в данном месте в конкретный момент времени.
* **Временное векторное поле** ($v_t(x)$) — поле векторов в пространстве $R^d$, зависящее от времени, которое определяет мгновенную скорость и направление движения каждой точки.
* **Поток (диффеоморфное отображение)** ($\psi_t(x)$) — траектория движения, которая в начальный момент времени $t=0$ равна самой точке ($\psi_0(x) = x$), а её изменение во времени строго задаётся векторным полем через дифференциальное уравнение $$\frac{d}{dt}\psi_t(x) = v_t(\psi_t(x))$$.

По словам ведущего, векторное поле определяет, с какой скоростью и куда должна двигаться каждая точка, чтобы исходное гауссово распределение со временем перетекло в целевое. Векторное поле само по себе динамично и может меняться от шага к шагу. 

На практике, для генерации нового объекта пользователь берет случайную точку из исходного распределения и с помощью обычного численного решателя обыкновенных дифференциальных уравнений (ODE solver) перемещает её вперед по времени до $t=1$ вдоль выученного векторного поля. Главная задача метода — корректно обучить эту функцию векторного поля $v_t$, чтобы регрессировать целевой поток.

## 🧩 Концепция условных потоков и маргинализация
[[JUMP:21:54]]

Поскольку точное целевое распределение реального мира неизвестно, на практике его аппроксимируют с помощью доступных сэмплов из датасета, например, через модель смеси гауссиан (Gaussian Mixture Model). Чтобы сделать вычисления реализуемыми, авторы исследуемой статьи применили математический трюк: переход к условным путям вероятности (conditional probability paths), привязанным к конкретным конечным точкам $x_1$ из датасета.

Для отдельного сэмпла задаются следующие граничные условия:

* При $t=0$ распределение всегда остается чистым, независимым от данных источником (стандартным гауссианом).
* При $t=1$ распределение концентрируется вокруг конкретной целевой точки данных $x_1$ в виде узкого гауссиана с малой дисперсией.

Объединение (маргинализация) таких индивидуальных траекторий по всему датасету дает итоговый агрегированный путь плотности, который при $t=1$ с высокой точностью воссоздает реальное распределение данных. Аналогичным образом маргинализируются и условные векторные поля. 

Как подчеркивает Янник Кильхер, прямое вычисление таких маргинальных интегралов математически невозможно (intractable) для больших размерностей. Решением стал метод **Conditional Flow Matching (CFM)**. Авторы доказали фундаментальную теорему: градиенты функции потерь CFM, вычисленной для отдельных пар точек, в точности равны градиентам оригинальной, невычислимой функции Flow Matching. Это позволяет обучать нейросеть на индивидуальных парах «шум — изображение» без необходимости интегрирования по всему датасету, гарантируя достижение глобального оптимума.

## 🏎️ Оптимальный транспорт и ускорение генерации
[[JUMP:38:43]]

В рамках предложенного фреймворка можно выбирать различные траектории интерполяции. Авторы статьи продемонстрировали, что классическая диффузия является лишь частным, избыточно усложненным случаем Flow Matching, где траектории движения искривлены, а для полного зашумления требуется бесконечное время ($t \to \infty$)[40:17]. Из-за этого диффузионные модели требуют сложных вычислений на границах временных отрезков, где функции теряют стабильность.

Вместо этого разработчики Flow Matching предложили использовать пути **Оптимального Транспорта (Optimal Transport paths)**, которые обладают уникальными свойствами:

* **Прямолинейность траекторий:** Точки перемещаются между исходным шумом и целевым объектом по кратчайшему пути — по прямой линии в пространстве данных.
* **Постоянство векторного поля:** Направление векторного поля для конкретной траектории остается неизменным во времени, меняется только его интенсивность.
* **Четкие временные границы:** Процесс гарантированно завершается за конечный фиксированный отрезок времени от 0 до 1.

По оценке Кильхера, визуализация траекторий наглядно показывает преимущество оптимального транспорта: геометрия целевого распределения формируется значительно раньше, чем при диффузии. При использовании ODE-решателя для генерации изображений по выученному прямолинейному полю требуется в разы меньше шагов вычисления функций (FEV), что делает генерацию Stable Diffusion 3 и аналогичных моделей принципиально более быстрой и вычислительно экономичной. Будущее генерации ИИ, по мнению сообщества Кильхера, лежит именно в переходе на прямые траектории Оптимального Транспорта.