# Как работают скоринговые и диффузионные модели: разбор Стэнфорда

Источник: https://www.youtube.com/watch?v=8G-OsDs1RLI
Канал: Stanford Online
Опубликовано: 06.05.2024

---

# Лекция Стэнфордского университета по генеративным моделям: Скоринговые модели и диффузия

[[JUMP:0:05]]

Лекция 13 курса CS236 «Глубинные генеративные модели» посвящена score-based моделям (скоринговым моделям) и диффузионным процессам. Ведущий курса объясняет, почему этот класс моделей стал современным стандартом (SOTA) для генерации изображений, видео и аудио, а также разбирает фундаментальные математические подходы к их обучению и проблемам, с которыми сталкиваются исследователи.

## 🧬 Переход от плотностей к скоринговым функциям
[[JUMP:3:26]]

В классических генеративных моделях основной задачей является моделирование вероятностной плотности $p(x)$ или функции массы вероятности. Основная сложность здесь заключается в необходимости нормализации функции, чтобы интеграл по всему пространству был равен 1.

*   **Модели на основе правдоподобия (Likelihood-based):** Использование авторегрессионных моделей или нормализующих потоков (normalizing flows) ограничивает архитектуру нейронных сетей.
*   **Energy-based модели (EBM):** Позволяют использовать гибкие архитектуры, но требуют вычисления сложной константы нормализации, что затрудняет обучение.

**Score-based модели** предлагают альтернативный подход: моделировать не саму плотность, а её градиент — **скоринговую функцию** (score function), определяемую как $\nabla_x \log p(x)$.

*   **Преимущество:** Скоринговая функция — это векторное поле, где каждый вектор указывает направление наиболее быстрого возрастания логарифмического правдоподобия.
*   **Упрощение:** В отличие от плотностей, скоринговая функция не требует соблюдения условий нормализации (интегрирования в 1), что делает архитектуры более гибкими.

## 📊 Математика обучения: Fisher Divergence
[[JUMP:8:27]]

Для обучения скоринговых моделей используется минимизация **дивергенции Фишера** (Fisher divergence) — разности между истинным векторным полем градиентов данных и векторным полем, предсказываемым моделью.

Главная техническая проблема при попытке оптимизации такой модели — наличие следа Якобиана (trace of the Jacobian) в целевой функции. Прямое вычисление производных в больших размерностях оказывается крайне затратным, так как требует количества операций обратного распространения ошибки, масштабирующегося линейно с размерностью входных данных.

## 🛠 Масштабируемые методы: Denoising Score Matching
[[JUMP:31:52]]

Для обхода вычислительных сложностей предлагаются методы, которые позволяют обучать модели в условиях высокой размерности.

### Denoising Score Matching (Denoising-скоринг)
Основная идея — оценивать градиент не самих данных, а данных, возмущенных шумом.

1.  **Процесс:** К данным добавляется гауссовский шум. Оказывается, что задача оценки скоринга для такой «размытой» плотности математически эквивалентна классической задаче **шумоподавления (denoising)**.
2.  **Преимущество:** Этот подход избавляет от необходимости вычислять след Якобиана, превращая обучение в задачу оптимизации L2-потери между предсказанием сети и фактически добавленным шумом.
3.  **Интерпретация:** Модель обучается «угадывать» шум, который нужно вычесть из картинки, чтобы вернуть её в состояние чистых данных.

### Sliced Score Matching (Слайсинговый скоринг)
Альтернативный метод для эффективного обучения без шума заключается в использовании **случайных проекций**.

*   Вместо сравнения векторов в полном пространстве, они проецируются на случайные направления $v$.
*   Это сводит задачу к одномерной, где производные по направлению могут быть вычислены за один шаг обратного распространения ошибки (backprop).

## 🧪 Генерация образцов: Langevin Dynamics
[[JUMP:1:09:54]]

После того как модель обучена, возникает вопрос: как генерировать данные, если у нас нет явного правдоподобия?

Лектор объясняет, что можно использовать **процедуру Ланжевена (Langevin MCMC)**. Идея заключается в следующем:

1.  Инициализировать частицы случайным шумом.
2.  Итеративно обновлять частицы, следуя направлению градиента скоринговой функции.
3.  Добавлять небольшое количество шума на каждом шаге (для перемешивания).

Однако, по словам автора, этот базовый подход сталкивается с проблемами:

*   Данные лежат на низкоразмерных многообразиях, где скоринговая функция может быть плохо определена.
*   Модели плохо обучаются в регионах с низкой плотностью данных, что делает генерацию нестабильной.
*   Процесс перемешивания (mixing) между разными модами распределения происходит слишком медленно.

Лектор заключает, что именно эти трудности с «застреванием» Ланжевена в локальных модах привели к созданию **диффузионных моделей** (diffusion models), которые в следующей лекции будут представлены как решение для корректного оценивания скоринга во всем пространстве.