# Нормализующие потоки: Лекция Stanford CS236 об инвертируемых моделях

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

---

## Нормализующие потоки: Инвертируемые модели для генерации данных

[[JUMP:34:45]]

В рамках курса Stanford CS236 лектор рассматривает концепцию **Normalizing Flows** (нормализующих потоков) как альтернативу вариационным автокодировщикам (VAE). Основная проблема классических генеративных моделей с латентными переменными, таких как VAE, заключается в невозможности напрямую вычислить маргинальную вероятность данных $p(x)$ из-за необходимости интегрирования по всем латентным переменным. Модели на основе потоков решают эту задачу, предлагая инвертируемые преобразования, которые позволяют точно вычислять вероятность и эффективно обучать модель с помощью метода максимального правдоподобия.

### 🔄 Концепция инвертируемых преобразований
[[JUMP:36:35]]

Главная идея Normalizing Flows заключается в том, чтобы трансформировать простое распределение (например, стандартное нормальное распределение) в сложное распределение данных с помощью последовательности детерминированных и обратимых функций.

*   **Отличие от VAE:** В отличие от VAE, где отображение из латентного пространства в пространство данных является вероятностным и требует энкодера для оценки латентных переменных, в потоковых моделях отображение детерминировано и инвертируемо.
*   **Следствие размерности:** Необходимость обратимости требует, чтобы латентные переменные $z$ и наблюдаемые данные $x$ имели одинаковую размерность. Это означает отказ от идеи сжатого представления данных, характерной для классических автокодировщиков.

### 🧮 Математический аппарат: Замена переменных
[[JUMP:46:41]]

Для вычисления плотности вероятности данных после трансформации $x = f(z)$ используется классическая формула замены переменных:

$$p_x(x) = p_z(h(x)) \cdot \left| \det \left( \frac{\partial h}{\partial x} \right) \right|$$

Где $h = f^{-1}$ — обратная функция, а $\det(\partial h / \partial x)$ — определитель матрицы Якоби (Якобиан) обратного отображения, отвечающий за изменение объема пространства.

1.  **Линейный случай:** Если трансформация линейна ($x = Az$), изменение объема определяется определителем матрицы $A$. В этом случае плотность распределения $x$ вычисляется как плотность $z$, деленная на абсолютное значение определителя матрицы $A$.
2.  **Нелинейный случай:** При использовании нейронных сетей для аппроксимации $f$, необходимо вычислять Якобиан и его определитель. Это позволяет локально линеаризовать функцию и применять ту же логику для контроля нормализации.

### 🧠 Практическое применение и ограничения
[[JUMP:1:17:13]]

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

*   **Диффузионные модели:** Лектор отмечает, что современные диффузионные модели можно интерпретировать как «бесконечно глубокие» потоковые модели, что позволяет использовать аппарат вычисления правдоподобия из теории потоков для анализа диффузионных процессов.
*   **Вычислительная сложность:** Вычисление определителя Якобиана для матриц размерности $n \times n$ требует $O(n^3)$ операций, что накладывает требования к архитектуре нейронных сетей. Исследователи проектируют функции, которые легко инвертировать и для которых легко вычислять определители Якобиана.
*   **Смена перспективы:** Лектор подчеркивает, что такие модели не столько «сжимают» данные, сколько меняют систему координат. Переход в пространство, где данные выглядят как Гауссово распределение, делает процесс моделирования значительно проще.