Профессор Стэнфорда: «VAE — это способ превратить автокодировщик в генеративную модель»

Stanford Online 23,4 тыс. 1 ч 21 мин 4 мин 06.05.2024
Главное

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

🤖 VAE: От автокодировщика к генеративной модели 0:05

Вариационный автокодировщик (VAE) — это генеративная модель, которую в упрощенном виде можно представить как процесс из двух этапов. Сначала из простого априорного распределения (например, многомерного нормального распределения с нулевым средним и единичной ковариацией) выбирается скрытая переменная $z$. Затем эта переменная пропускается через две нейронные сети, $\mu_{\theta}$ и $\sigma_{\theta}$, которые вычисляют параметры другого гауссова распределения, из которого уже генерируется конечная точка данных $x$.

Несмотря на простоту отдельных блоков, итоговое маргинальное распределение $p(x)$ получается чрезвычайно гибким. По словам лектора, это происходит потому, что модель можно рассматривать как смесь бесконечного числа гауссовых распределений — для каждого значения $z$ существует свой «купол» Гаусса.

Ключевые преимущества модели:

Однако за эту гибкость приходится платить отсутствием «бесплатного сыра». Главная проблема VAE заключается в сложности обучения: вычисление правдоподобия $p(x)$ требует интеграции по всем возможным значениям скрытых переменных $z$, что вычислительно невозможно (интрактабельно). Это резко отличает VAE от авторегрессионных моделей, где правдоподобие вычисляется тривиальным умножением условных вероятностей.


📉 Математический фундамент: ELBO и вариационный вывод 8:00

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

Центральным понятием здесь становится ELBO (Evidence Lower Bound) — нижняя граница доказательства. Используя неравенство Йенсена, разработчики строят оптимизируемую величину, которая всегда ниже или равна истинному логарифму правдоподобия.

Объектив ELBO можно разложить на две составляющие:

  1. Ожидаемое логарифмическое правдоподобие: средняя вероятность данных при условии, что скрытые переменные $z$ «угадываются» моделью $q$.
  2. Энтропия распределения $q$: показатель того, насколько неопределенной или случайной является модель вывода.

Лектор подчеркивает важный теоретический момент: если в качестве $q$ выбрать истинное апостериорное распределение $p(z|x)$, то неравенство превращается в равенство, и ELBO становится точно равным маргинальному правдоподобию. Это связывает вариационное обучение с классическим EM-алгоритмом, который используется для моделей с пропущенными данными.


🎯 Оптимизация и выбор аппроксимирующего распределения 22:56

Поскольку вычислить истинное апостериорное распределение $p(z|x)$ в глубоких моделях невозможно (нужно инвертировать нейронную сеть, что крайне сложно), его аппроксимируют семейством простых распределений, параметризованных весами $\phi$.

В процессе обучения решается задача оптимизации: мы меняем параметры $\phi$ так, чтобы наше простое распределение $q$ (например, Гауссиана) стало как можно ближе к сложному истинному распределению в смысле расстояния Кульбака-Лейблера (KL-дивергенция).

«Мы собираемся совместно оптимизировать и $p$, и $q$, чтобы максимизировать нижнюю границу доказательства. Одна компонента — это декодер ($p$), другая — энкодер ($q$)», — поясняет ведущий.

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


🧬 Трюк с репараметризацией (Reparameterization Trick) 1:01:02

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

Для решения этой задачи в случае непрерывных скрытых переменных используется «трюк с репараметризацией».

Суть метода заключается в следующем:

  1. Мы представляем случайную переменную $z$ как детерминированное преобразование простого фиксированного шума $\epsilon$ (например, стандартного нормального распределения).
  2. Например, если $q$ — Гауссиана, то $z = \mu + \sigma \cdot \epsilon$.
  3. Теперь параметры $\phi$ ($\mu$ и $\sigma$) вынесены из-под знака случайного выбора.
  4. Это позволяет «пробрасывать» градиенты через процесс сэмплирования с помощью автоматического дифференцирования.

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


⚡ Амортизированный вывод: масштабирование на Big Data 1:10:27

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

Решением становится амортизированный вывод (amortized inference). Вместо оптимизации индивидуальных параметров для каждого $x$, мы обучаем одну общую нейронную сеть — энкодер. Эта сеть принимает на вход точку данных $x_i$ и сразу выдает (предсказывает) оптимальные параметры вариационного распределения для этой точки.

Преимущества амортизации:

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


💬 Цитаты

«Вы можете думать о VAE как о способе превращения автокодировщика в генеративную модель.»

Лектор Stanford CS236 00:29

«Если вы выберете q равным истинному апостериорному распределению, неравенство превращается в равенство.»

Лектор Stanford CS236 11:01

«Трюк с репараметризацией работает только тогда, когда скрытые переменные z непрерывны.»

Лектор Stanford CS236 1:01:02
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
ELBO
Математическая функция, которая служит нижней границей логарифма правдоподобия данных и используется как цель оптимизации.
KL-дивергенция
Мера того, насколько одно распределение вероятностей отличается от другого.
Интрактабельность
Свойство математической задачи, означающее невозможность её решения за разумное время или прямыми методами.
Амортизированный вывод
Метод, при котором параметры вывода предсказываются нейронной сетью, а не оптимизируются отдельно для каждого примера.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Stanford Online Variational Autoencoder ELBO Reparameterization Trick Amortized Inference