Нормализующий поток

Материал из MachineLearning.

Версия от 23:03, 14 июля 2026; Kirill Savitskii (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM DeepSeek и проверена участником К.А.Савицкий 02:26, 15 июль 2026 (UTC)


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

Содержание

Интуитивное введение

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

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

Определение

Пусть \mathbf{z} \in \mathbb{R}^D — скрытая (латентная) переменная с известной и простой плотностью p_Z(\mathbf{z}), обычно стандартным нормальным распределением \mathcal{N}(\mathbf{0}, \mathbf{I}). Нормализующий поток задаёт биективное (взаимно-однозначное) дифференцируемое преобразование f: \mathbb{R}^D \to \mathbb{R}^D такое, что наблюдаемая переменная \mathbf{x} = f(\mathbf{z}). Плотность наблюдаемых данных определяется формулой замены переменных:

p_X(\mathbf{x}) = p_Z(f^{-1}(\mathbf{x})) \left| \det \frac{\partial f^{-1}}{\partial \mathbf{x}} \right| = p_Z(\mathbf{z}) \left| \det \frac{\partial f}{\partial \mathbf{z}} \right|^{-1}.

Величина \left| \det \frac{\partial f}{\partial \mathbf{z}} \right| называется модулем якобиана преобразования и показывает, как локально изменяется объём при переходе от латентного пространства к пространству данных. Чтобы преобразование могло моделировать сложные распределения, его обычно составляют из композиции K более простых обратимых отображений:

f = f_K \circ f_{K-1} \circ \dots \circ f_1, \quad \mathbf{z}_0 = \mathbf{z}, \quad \mathbf{z}_k = f_k(\mathbf{z}_{k-1}), \quad \mathbf{x} = \mathbf{z}_K.

Плотность конечной переменной последовательно преобразуется:

\log p_X(\mathbf{x}) = \log p_Z(\mathbf{z}_0) - \sum_{k=1}^K \log \left| \det \frac{\partial f_k}{\partial \mathbf{z}_{k-1}} \right|.

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

История развития

Идея использования композиции нелинейных обратимых преобразований для моделирования сложных распределений восходит к классическим работам по методам Монте-Карло и нелинейному анализу независимых компонент (ICA). В контексте глубокого обучения современная концепция нормализующих потоков была предложена Данило Резенде и Шакиром Мохамедом в статье 2015 года «Variational Inference with Normalizing Flows». Они ввели планарные и радиальные потоки — элементарные обратимые преобразования, наращиваемые на скрытое пространство вариационного автокодировщика.

Следующим важным шагом стало семейство архитектур, основанных на идее разделения измерений (coupling layers). Дин и соавторы в модели NICE (2014) и Real NVP (2016) предложили аффинные coupling-слои, в которых половина компонент остаётся неизменной, а вторая половина аффинно преобразуется в зависимости от первой. Это позволило строить глубокие, быстро обратимые и вычислительно эффективные потоки. Кингма и Дхаривал в 2018 году расширили Real NVP до модели Glow, добавив обратимые 1×1 свёртки и активационную нормализацию, что позволило генерировать реалистичные изображения высокого разрешения.

Параллельно развивались авторегрессионные потоки: Masked Autoregressive Flow (MAF) Папамакариоса и др. (2017) и Inverse Autoregressive Flow (IAF) Кингмы и др. (2016). Эти модели используют маскированные авторегрессионные сети (MADE) для параметризации преобразований, гарантируя треугольную структуру якобиана, что упрощает вычисление определителя.

Дальнейшее развитие включало потоки на основе сплайнов (нейронные сплайновые потоки Дуркана и др., 2019), обеспечивающие большую гибкость преобразований; непрерывные во времени потоки, основанные на нейронных обыкновенных дифференциальных уравнениях (Neural ODE, FFJORD); а также остаточные потоки (Residual Flows), использующие методы оценки логарифма определителя для липшицевых остаточных сетей.

Математические основы

Формула замены переменных в плотности

Пусть \mathbf{z} \sim p_Z(\mathbf{z}) — случайный вектор, и f — диффеоморфизм (гладкое биективное отображение с гладким обратным). Тогда распределение случайного вектора \mathbf{x} = f(\mathbf{z}) имеет плотность:

p_X(\mathbf{x}) = p_Z(g(\mathbf{x})) \left| \det \mathbf{J}_g(\mathbf{x}) \right|,

где g = f^{-1}, а \mathbf{J}_g = \frac{\partial g}{\partial \mathbf{x}} — матрица Якоби. Эквивалентно, через прямое преобразование:

p_X(\mathbf{x}) = p_Z(\mathbf{z}) \left| \det \mathbf{J}_f(\mathbf{z}) \right|^{-1}, \quad \mathbf{z} = g(\mathbf{x}).

Это классический результат из теории вероятностей. В контексте потоков он служит основой для точного вычисления логарифмического правдоподобия.

Построение сложных потоков через композицию

Одиночное обратимое преобразование с простой структурой ограничено в выразительности. Моделирование сложных многомодальных распределений достигается композицией K преобразований f = f_K \circ \dots \circ f_1. Благодаря правилу цепочки для якобианов, логарифм модуля определителя общей композиции равен сумме логарифмов модулей определителей каждого шага:

\log \left| \det \mathbf{J}_f(\mathbf{z}_0) \right| = \sum_{k=1}^K \log \left| \det \mathbf{J}_{f_k}(\mathbf{z}_{k-1}) \right|.

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

Вычисление логарифма плотности

Для заданного наблюдения \mathbf{x} вычисление \log p_X(\mathbf{x}) требует:

  1. Прямого прохода по потоку в обратном направлении: \mathbf{z} = g(\mathbf{x}).
  2. Вычисления \log p_Z(\mathbf{z}).
  3. Вычисления и суммирования логарифмов модулей якобианов каждого обратного слоя g_k.

Для генерации выборки из модели, напротив, осуществляют проход в прямом направлении: извлекают \mathbf{z} \sim p_Z(\mathbf{z}) и применяют f.

Архитектуры нормализующих потоков

Элементарные преобразования

Первые нейросетевые потоки, предложенные Резенде и Мохамедом, — планарный и радиальный. Планарный поток задаётся как \mathbf{z}' = \mathbf{z} + \mathbf{u}\, h(\mathbf{w}^\top \mathbf{z} + b), где \mathbf{w}, \mathbf{u} — векторы, b — скаляр, h — гладкая функция активации. Такие преобразования легко обратимы при определённых ограничениях, но имеют ограниченную выразительность и требуют наращивания большого числа слоёв для моделирования сложных распределений.

Потоки с разделением измерений (coupling flows)

Наиболее популярный класс архитектур. Входной вектор \mathbf{z} разбивается на две части: \mathbf{z} = (\mathbf{z}_a, \mathbf{z}_b). Преобразование имеет вид: \mathbf{z}'_a = \mathbf{z}_a, \quad \mathbf{z}'_b = h(\mathbf{z}_b; \theta(\mathbf{z}_a)), где h — обратимая функция (например, аффинная: \mathbf{z}'_b = \mathbf{z}_b \odot \exp(s(\mathbf{z}_a)) + t(\mathbf{z}_a)), а \theta(\mathbf{z}_a) = (s(\mathbf{z}_a), t(\mathbf{z}_a)) — произвольная нейронная сеть, не обязанная быть обратимой. Якобиан такого слоя имеет блочно-треугольную структуру, и его определитель равен произведению диагональных элементов матрицы \partial \mathbf{z}'_b / \partial \mathbf{z}_b, что вычисляется очень эффективно. Модели NICE (аддитивное coupling, где s \equiv 0), Real NVP (аффинное coupling) и Glow (добавляет обратимые 1×1 свёртки и чередование маскирования по каналам и пространственным измерениям) основаны на этом принципе.

Авторегрессионные потоки

В авторегрессионных потоках преобразование имеет вид: z'_i = h(z_i; \theta_i(\mathbf{z}_{1:i-1})), где \theta_i — нейросетевой параметризатор, зависящий только от предыдущих компонент. Тогда матрица Якоби нижнетреугольная, и определитель сводится к произведению частных производных \partial z'_i/\partial z_i. Masked Autoregressive Flow (MAF) использует маскированные авторегрессионные сети (MADE) для одновременного получения всех \theta_i и удобен для вычисления плотности (обратный проход), но генерация требует последовательного прохода по размерности. Inverse Autoregressive Flow (IAF) меняет направление зависимости, делая генерацию быстрой, а вычисление плотности — медленным.

Потоки на основе сплайнов

Чтобы повысить гибкость по сравнению с аффинными преобразованиями, в качестве элементарных обратимых функций h применяются монотонные рациональные квадратичные или кубические сплайны. Параметры сплайна (узлы, производные) предсказываются нейронной сетью на основе «неизменной» части вектора. Такие потоки достигают высокой выразительности при относительно небольшом числе слоёв и демонстрируют передовые результаты в оценке плотности.

Непрерывные во времени потоки

Идея, основанная на нейронных ОДУ (Neural ODE, Chen et al., 2018). Вместо дискретной композиции слоёв, преобразование задаётся как решение задачи Коши: \frac{d\mathbf{z}(t)}{dt} = \phi(\mathbf{z}(t), t; \theta), \quad \mathbf{z}(0) = \mathbf{z}, \quad \mathbf{z}(T) = \mathbf{x}, где \phi — нейронная сеть, определяющая поле скоростей. Логарифм изменения плотности вдоль траектории даётся уравнением на мгновенное изменение логарифма плотности (формула Лиувилля-Остроградского): \frac{d \log p(\mathbf{z}(t))}{dt} = - \operatorname{tr} \left( \frac{\partial \phi}{\partial \mathbf{z}} \right). Метод FFJORD (Grathwohl et al., 2019) использует стохастическую оценку следа матрицы для эффективного обучения таких непрерывных потоков без явного вычисления якобиана.

Остаточные потоки

Остаточные сети вида f(\mathbf{z}) = \mathbf{z} + g(\mathbf{z}) могут быть обратимыми при ограничении константы Липшица g (например, \operatorname{Lip}(g) < 1). Residual Flows (Behrmann et al., 2019) и i-ResNet используют методы оценки логарифма определителя через разложение в степенной ряд, что позволяет применять глубокие остаточные архитектуры в качестве потоков.

Обучение нормализующих потоков

Максимизация правдоподобия

Стандартный подход к обучению — максимизация правдоподобия на обучающей выборке \{\mathbf{x}^{(i)}\}_{i=1}^N. Целевая функция — средний логарифм правдоподобия: \mathcal{L}(\theta) = \frac{1}{N} \sum_{i=1}^N \log p_X(\mathbf{x}^{(i)}; \theta). Подставляя выражение потока, получаем \mathcal{L}(\theta) = \frac{1}{N} \sum_{i=1}^N \left[ \log p_Z(g(\mathbf{x}^{(i)}; \theta)) + \log \left| \det \mathbf{J}_g(\mathbf{x}^{(i)}; \theta) \right| \right] \to \max_\theta. Параметры нейронных сетей, входящих в слои, оптимизируются градиентными методами, при этом обратное распространение проходит через прямое/обратное преобразование и вычисление якобиана.

Вариационный вывод с потоками

Нормализующие потоки могут использоваться для построения богатых апостериорных распределений в вариационных автокодировщиках (VAE). Поток f_\phi преобразует простое начальное приближение q_0(\mathbf{z}|\mathbf{x}) в более выразительное вариационное распределение q_K(\mathbf{z}|\mathbf{x}). Нижняя граница свидетельства (ELBO) в этом случае принимает вид: \mathcal{L}_{\text{VAE}} = \mathbb{E}_{\mathbf{z} \sim q_K}\left[ \log p(\mathbf{x}|\mathbf{z}) + \log p(\mathbf{z}) - \log q_K(\mathbf{z}|\mathbf{x}) \right], причём \log q_K(\mathbf{z}|\mathbf{x}) вычисляется по формуле замены переменных, аналогичной основной. Такой подход, предложенный в пионерской работе Резенде и Мохамеда, позволяет приближать сложные апостериорные распределения и повышает качество латентных представлений.

Другие критерии обучения

Помимо максимизации правдоподобия, потоки могут обучаться с помощью:

  • Байесовского вывода — как гибкие семейства приближений;
  • Контрастных и моментных методов — в задачах, где плотность известна с точностью до константы;
  • Обучения с учителем — для моделирования условных распределений p(\mathbf{x}|\mathbf{y}) с помощью условных нормализующих потоков.

Связь с генеративным моделированием

Нормализующие потоки принадлежат к классу моделей с явной плотностью (в отличие от GAN, которые моделируют только семплер, и VAE, которые оптимизируют нижнюю границу правдоподобия). Это даёт ряд уникальных свойств:

  • Точное вычисление правдоподобия — возможно прямое сравнение моделей по тестовому правдоподобию и применение в задачах детекции аномалий.
  • Эффективная генерация — прямое преобразование латентных переменных, без MCMC или стохастических итераций.
  • Обратимость — естественное получение латентного представления для любого входа, что полезно в задачах сжатия, интерпретации и редактирования атрибутов.

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

Преимущества и ограничения

Преимущества

  • Точная оценка плотности: аналитически вычисляемое правдоподобие позволяет строго оценивать качество модели и решать задачи, где значение плотности критично (поиск аномалий, статистические тесты).
  • Эффективная генерация: выборка из модели требует лишь одного прямого прохода, без сэмплирования из цепи Маркова.
  • Обратимость и латентное представление: каждому наблюдению однозначно сопоставляется латентный код, что упрощает анализ скрытых факторов и интерполяции.
  • Гибкость: архитектура потоков может адаптироваться под структуру данных (изображения, временные ряды, графы).

Ограничения

  • Сохранение размерности: стандартные потоки требуют, чтобы размерность латентного пространства совпадала с размерностью данных, что может быть неэффективно для высокоразмерных данных с низкой внутренней размерностью. Существуют обобщения (инжективные потоки, многоуровневые модели), но это усложняет архитектуру.
  • Вычислительные затраты: вычисление якобиана и обратного преобразования для некоторых архитектур может быть ресурсоёмким, особенно в авторегрессионных потоках при генерации или в непрерывных потоках.
  • Ограниченная выразительность при малом числе слоёв: для моделирования сложных распределений с резкими границами могут потребоваться очень глубокие композиции или неограниченно гибкие элементы (сплайны, остаточные потоки), что увеличивает объём вычислений.
  • Топологические ограничения: диффеоморфизмы сохраняют топологию носителя распределения; если истинное распределение данных имеет принципиально иную топологию (например, сосредоточено на несвязных многообразиях), классические потоки могут испытывать трудности. Частичное решение — использование разрывов или стягивающих отображений.

Применения

Оценка плотности и детекция аномалий

Благодаря точному логарифмическому правдоподобию, потоки успешно применяются для обнаружения аномалий в изображениях, трафике сетей, промышленных данных. Низкое значение плотности подсказывает, что пример не характерен для обучающей выборки.

Генерация данных

Нормализующие потоки способны генерировать изображения (модель Glow), аудио (WaveFlow), трёхмерные молекулярные конфигурации и другие типы данных. Хотя по качеству изображений они могут уступать современным GAN и диффузионным моделям, возможность точного контроля над латентным пространством делает их привлекательными для задач, где важна интерпретируемость.

Улучшение вариационного вывода

Потоки используются для построения гибких апостериорных приближений в вариационных автокодировщиках (normalizing flow-based VAE). Это повышает логарифмическую нижнюю границу свидетельства и улучшает качество латентных представлений.

Обратные задачи и научные вычисления

Обратимость и точная плотность делают потоки подходящими для решения обратных задач (восстановление изображений, инпэинтинг), где необходимо семплировать из условных распределений. В вычислительной физике потоки применяются для моделирования плотности состояний, ускорения марковских цепей Монте-Карло (MCMC) и генерации конфигураций в статистических системах.

Другие области

  • Байесовский анализ: аппроксимация апостериорных распределений.
  • Сжатие данных: обратимость позволяет строить эффективные кодеки с точным контролем битрейта.
  • Стилизация и перенос признаков: манипуляции в латентном пространстве потока.

См. также

Примечания

Rezende D. J., Mohamed S. Variational Inference with Normalizing Flows // Proceedings of the 32nd International Conference on Machine Learning (ICML). — 2015. — С. 1530–1538. Dinh L., Krueger D., Bengio Y. NICE: Non-linear Independent Components Estimation // 3rd International Conference on Learning Representations (ICLR), Workshop Track. — 2015. Dinh L., Sohl-Dickstein J., Bengio S. Density estimation using Real NVP // 5th International Conference on Learning Representations (ICLR). — 2017. Kingma D. P., Dhariwal P. Glow: Generative Flow with Invertible 1x1 Convolutions // Advances in Neural Information Processing Systems 31 (NeurIPS). — 2018. Papamakarios G., Pavlakou T., Murray I. Masked Autoregressive Flow for Density Estimation // Advances in Neural Information Processing Systems 30 (NIPS). — 2017. Kingma D. P., Salimans T., Jozefowicz R. et al. Improving Variational Inference with Inverse Autoregressive Flow // Advances in Neural Information Processing Systems 29 (NIPS). — 2016. Chen R. T. Q., Rubanova Y., Bettencourt J., Duvenaud D. Neural Ordinary Differential Equations // Advances in Neural Information Processing Systems 31 (NeurIPS). — 2018. Grathwohl W., Chen R. T. Q., Bettencourt J., Sutskever I., Duvenaud D. FFJORD: Free-form Continuous Dynamics for Scalable Reversible Generative Models // 7th International Conference on Learning Representations (ICLR). — 2019. Durkan C., Bekasov A., Murray I., Papamakarios G. Neural Spline Flows // Advances in Neural Information Processing Systems 32 (NeurIPS). — 2019. Behrmann J., Grathwohl W., Chen R. T. Q., Duvenaud D., Jacobsen J.-H. Invertible Residual Networks // Proceedings of the 36th International Conference on Machine Learning (ICML). — 2019. Papamakarios G., Nalisnick E., Rezende D. J., Mohamed S., Lakshminarayanan B. Normalizing Flows for Probabilistic Modeling and Inference // Journal of Machine Learning Research. — 2021. — Т. 22. — № 57. — С. 1–64. Kobyzev I., Prince S. J. D., Brubaker M. A. Normalizing Flows: An Introduction and Review of Current Methods. — IEEE Transactions on Pattern Analysis and Machine Intelligence, 2021.