Как работают нормализующие потоки: основы генеративного моделирования

Stanford Online 18,2 тыс. 1 ч 22 мин 3 мин 06.05.2024
Главное

📈 Введение в нормализующие потоки: основы и архитектура 0:05

Нормализующие потоки (Normalizing Flows) представляют собой мощный класс генеративных моделей, позволяющих точно оценивать правдоподобие данных, не прибегая к вариационному выводу, как это происходит в вариационных автокодировщиках (VAE). В отличие от VAE, где связь между наблюдаемыми переменными $X$ и латентными переменными $Z$ является стохастической, в нормализующих потоках это преобразование является детерминированным и обратимым.

Главная идея заключается в использовании формулы замены переменных для оценки вероятности генерации данных. Чтобы получить корректную функцию плотности вероятности, необходимо не только оценить плотность латентного вектора $Z$ в априорном распределении, но и отмасштабировать результат, учитывая абсолютное значение определителя Якобиана обратного преобразования. Последний показывает, насколько локально расширяется или сжимается пространство при трансформации.

Ключевые принципы архитектуры 5:08

Нормализующие потоки получили свое название благодаря двум аспектам:

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

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

🏗️ Простые архитектуры: NICE и RealNVP 29:06

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

Аддитивные слои (NICE) 29:19

В модели NICE (Non-linear Independent Components Estimation) применяется аддитивный связывающий слой (additive coupling layer):

  1. Переменные $Z$ разбиваются на две группы.
  2. Первая группа остается неизменной (тождественное преобразование).
  3. Вторая группа модифицируется путем сдвига, вычисляемого нейронной сетью $m_\theta$ от первой группы.

Это преобразование легко обратимо: достаточно просто вычесть сдвиг, полученный от первой части, которая осталась неизменной. Определитель Якобиана такой матрицы равен 1, что делает модель «сохраняющей объем» (volume preserving).

Аффинные слои (RealNVP) 39:06

Модель RealNVP расширяет этот подход, добавляя масштабирование помимо сдвига. Каждая размерность во второй группе не только сдвигается, но и умножается на коэффициент, зависящий от первой группы переменных. Это делает модель более гибкой, так как позволяет «сжимать» или «расширять» пространство.

🧠 Авторегрессионные модели как частный случай потоков 48:45

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

MAF vs. IAF 57:09

Существует два основных способа реализации такой архитектуры:

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

🚀 Дистилляция и реальные применения 1:06:06

Интересным подходом к оптимизации является метод, использованный в Parallel WaveNet от Google для генерации речи. Авторы обучали «учителя» (авторегрессионную модель / MAF) с помощью максимального правдоподобия, а затем дистиллировали его в «студента» (IAF), который может генерировать семплы параллельно и быстро. Обучение студента основано на минимизации дивергенции Кульбака — Лейблера (KL) между ним и учителем, что оказывается эффективным, так как позволяет оценивать правдоподобие на собственных сгенерированных примерах.


💬 Цитаты

«В потоковой модели отношения между наблюдаемыми и латентными переменными детерминированы и обратимы.»

Лектор Stanford 01:02

«Нормализующие потоки позволяют строить генеративные модели с точной оценкой правдоподобия без использования вариационного вывода.»

Лектор Stanford 00:19
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Нормализующий поток
Генеративная модель, преобразующая простое распределение в сложное через цепочку обратимых функций.
Якобиан
Матрица частных производных, характеризующая локальное изменение пространства при трансформации.
Вариационный вывод
Метод аппроксимации сложных вероятностных распределений, который потоки позволяют избежать.
Дистилляция
Процесс обучения компактной модели (студента) имитировать поведение большой модели (учителя).
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Normalizing Flows RealNVP NICE Autoregressive Models Deep Learning