Профессор Стэнфорда объяснил математику нормализующих потоков и VAE

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

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

🔄 От вариационного вывода к автокодированию: суть VAE 0:05

Лекция начинается с подведения итогов по теме вариационных автокодировщиков (VAE). Профессор предлагает взглянуть на VAE не просто как на модель со скрытыми переменными, а именно как на систему автокодирования. Традиционно архитектура выводится через скрытые переменные, где декодер определяет генеративный процесс, а энкодер аппроксимирует апостериорное распределение.

В процессе совместной оптимизации параметров декодера и энкодера используется целевая функция ELBO (вариационная нижняя оценка правдоподобия). Эта функция является нижней границей истинной маргинальной вероятности данных. Интуитивно энкодер пытается угадать наиболее вероятные значения скрытой переменной для каждого объекта.

Если оптимизировать только логарифм правдоподобия реконструкции, модель будет искать лишь самые очевидные соответствия. Однако в ELBO присутствует регуляризатор — энтропия вариационного распределения, которая заставляет массу вероятности распределяться шире. Это побуждает энкодер находить все возможные скрытые факторы, совместимые с входным сигналом.

Компоненты целевой функции VAE включают в себя:

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

При оценке методом Монте-Карло входной образ пропускается через энкодер, выдающий параметры среднего и дисперсии для гауссианы. Затем из этого распределения извлекается случайное значение. Первый компонент функции потерь оценивает, насколько хорошо декодер способен восстановить исходный объект на основе этого скрытого кода. Без второго слагаемого система превратилась бы в обычный стохастический автокодировщик.

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

Обычный детерминированный автокодировщик привязан к обучающей выборке и не способен создавать принципиально новые объекты. В то же время стохастическая природа энкодера в VAE необходима для корректной передачи неопределенности реального мира.

🚀 Парадокс регуляризации и проблема коллапса апостериорного распределения 13:12

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

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

Процесс генерации новых данных выглядит следующим образом:

  1. Энкодер полностью отбрасывается за ненадобностью.
  2. Скрытая переменная извлекается из простейшего априорного распределения — например, гауссианы с нулевым средним и единичной ковариационной матрицей.
  3. Полученный вектор передается в нейросеть-декодер для вычисления параметров итогового распределения.

На вопрос о моделировании тяжелых хвостов в финансовых данных лектор ответил, что априорное распределение не обязательно должно быть строго гауссовым. Математика вывода ELBO сохраняет гибкость, позволяя выбирать распределения с тяжелыми хвостами или усложнять архитектуру энкодера. Сам термин «потери автокодирования» закрепился потому, что при гауссовом декодере максимизация правдоподобия математически эквивалентна минимизации среднеквадратичной ошибки (L2-loss).

Серьезным вызовом при обучении является противоборство двух сил в целевой функции: KL-дивергенция стремится сделать скрытые распределения одинаковыми для всех входов, тогда как ошибка реконструкции требует уникальных кодов для каждого объекта. Если декодер построен на базе мощной авторегрессионной сети, возникает опасный феномен — коллапс апостериорного распределения (posterior collapse).

В этом состоянии модель полностью игнорирует скрытую переменную, обнуляя взаимную информацию между ними, и настраивает энкодер строго под априорное распределение. Чтобы избежать этого, по словам лектора, разработчики намеренно используют менее мощные декодеры или модифицируют функцию потерь для гибкого управления объемом взаимной информации.

🛰️ Космическая аналогия: сжатие данных и мысленный эксперимент Элис и Боба 25:17

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

В этой метафоре роли распределяются так:

Успешность этой схемы зависит от минимизации потерь информации. Ограничение на размерность заставляет модель автоматически группировать похожие изображения и выделять семантические признаки, например, наличие травы или бегущей собаки. Компонент дивергенции KL гарантирует, что распределение сообщений Элис подчиняется известному Бобу закону. Благодаря этому Боб может генерировать новые сообщения сам, сэмплируя их из априорного распределения, и декодировать в реалистичные изображения без участия Элис.

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

  1. Изменить функцию потерь реконструкции, отойдя от стандартной L2-метрики в сторону более чувствительных к важным деталям функций.
  2. Использовать размеченные данные или подписи к изображениям, что принудительно заставит латентные переменные кодировать нужные смыслы.

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

Напоследок лектор упомянул феномен «генеративного сумасшествия моделей» (generative models going mad). Согласно теоретическим исследованиям, если бесконтрольно дообучать генеративные сети на их собственных синтетических данных, этот итеративный процесс начинает расходиться, ухудшая качество генерации.

🌊 Введение в потоковые модели (Normalizing Flows) 34:45

Во второй части лекции профессор переходит к разбору принципиально иного семейства архитектур — нормализующих потоков (Flow models). Они созданы для обхода проблемы невычислимости маргинальной вероятности, которая преследует модели со скрытыми переменными. Предыдущие подходы имели свои компромиссы: авторегрессионные модели дают прямой доступ к вероятности данных, но лишены скрытых представлений; VAE предоставляют скрытый код, но требуют оптимизации суррогатной нижней оценки правдоподобия.

Потоковые модели предлагают изящное архитектурное решение:

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

В отличие от VAE, где отображение скрытого кода в пространство объектов носит стохастический характер, в нормализующих потоках применяется строго детерминированная обратимая функция $f$. Уравнение $x = f(z)$ гарантирует, что для каждого объекта $x$ существует ровно один уникальный скрытый код $z = f^{-1}(x)$.

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

📐 Математика замены переменных: от одной переменной к случайным векторам 42:22

Для понимания работы потоков лектор предлагает вспомнить классическую теорему о замене переменных из математического анализа. На простейшем примере, где переменная $z$ распределена равномерно на отрезке $[0, 2]$, ее плотность вероятности равна $0,5$. Если мы зададим новую переменную как $x = 4z$, то наивный перенос плотности даст неверный результат $0,5$ для точки $x=4$. Очевидно, что $x$ распределена равномерно на отрезке $[0, 8]$, а значит, ее истинная плотность равна $1/8$.

Математически корректный расчет требует использования формулы замены переменных: плотность трансформированной переменной умножается на абсолютное значение производной обратной функции. В данном случае обратная функция имеет вид $h(x) = x/4$, а ее производная равна $1/4$, что и дает правильный ответ.

Еще более наглядным примером служит нелинейное экспоненциальное преобразование $x = \exp(z)$ при том же равномерном распределении $z$. Обратной функцией здесь выступает логарифм, а его производная равна $1/x$. В результате плотность принимает нетривиальную форму:

$$P_x(x) = \frac{1}{2x}$$

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

При переходе к многомерным случайным векторам логика сохраняется. В случае линейного преобразования вектор $z$ умножается на обратимую матрицу, то есть $x = Az$. Геометрически это действие растягивает исходный гиперкуб, превращая его в параллелотоп. Площадь или объем этой фигуры в точности равны абсолютному значению определителя (детерминанта) матрицы.

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

🧠 Глубокие нейросети и якобианы в многомерном пространстве 1:04:42

Чтобы наделить потоковые модели высокой выразительной способностью, в качестве преобразований необходимо использовать глубокие нейросети. Если сеть спроектирована обратимой, то для расчета плотности сложной нелинейной функции применяется локальная линеаризация через аппроксимацию Тейлора. Многомерным аналогом производной здесь выступает матрица Якоби (якобиан), содержащая все частные производные первого порядка.

Математическая формула расчета плотности вероятности на выходе нейросети принимает следующий вид:

$$P_x(x) = P_z(f^{-1}(x)) \cdot |\det(J_{f^{-1}}(x))| = \frac{P_z(z)}{|\det(J_f(z))|}$$

На практическом примере двух переменных профессор показывает структуру якобиана: для системы из двух функций $u_1$ и $u_2$, принимающих на вход два значения, матрица частных производных имеет размер $2 \times 2$. Вычисление детерминанта этой матрицы позволяет точно скорректировать плотность вероятности с учетом локального искажения пространства.

Разбирая области применения нормализующих потоков, лектор указывает на их глубокую связь с диффузионными моделями. Современные diffusion-архитектуры можно математически интерпретировать как бесконечно глубокие непрерывные нормализующие потоки. Использование формул потоков позволяет вычислять точные значения правдоподобия внутри диффузионных моделей, чего нельзя сделать в рамках стандартной концепции каскадных VAE.

Главным вычислительным препятствием при масштабировании таких систем является сложность расчета определителя матрицы Якоби. В общем случае вычисление детерминанта произвольной матрицы размерности $n \times n$ требует $O(n^3)$ операций, что абсолютно неприемлемо для работы с изображениями высокого разрешения. Из-за этого перед исследователями встает задача конструирования особых архитектур нейросетей, якобианы которых вычисляются за линейное время.

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

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

💬 Цитаты

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

Преподаватель Стэнфорда 10:42

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

Преподаватель Стэнфорда 41:35

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

Преподаватель Стэнфорда 1:21:03
👥 Спикер
📖 Термины
VAE (Вариационный автокодировщик)
Генеративная модель, которая сжимает входные данные в вероятностное скрытое пространство и затем восстанавливает их.
ELBO (Evidence Lower Bound)
Вариационная нижняя оценка правдоподобия, используемая в качестве целевой функции для обучения VAE.
Normalizing Flows (Нормализующие потоки)
Класс генеративных моделей, преобразующих простое распределение вероятностей в сложное с помощью цепочки обратимых детерминированных функций.
Коллапс апостериорного распределения
Эффект в VAE, при котором декодер игнорирует скрытые переменные, а энкодер начинает полностью копировать априорное распределение.
Матрица Якоби (Якобиан)
Матрица, состоящая из всех частных производных первого порядка многомерной функции, отражающая локальное растяжение пространства.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект VAE Normalizing Flows Матрица Якоби Stanford Online