# Лектор Stanford Online о латентных моделях и вариационных автокодировщиках

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

---

## Введение в латентные переменные: путь к глубоким генеративным моделям
[[JUMP:0:05]]

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

## 🧠 Зачем нужны латентные переменные?
[[JUMP:2:20]]

Авторегрессионные модели (RNN, CNN, трансформеры) эффективно работают с правдоподобием, но сталкиваются с рядом ограничений:

*   **Сложность выбора порядка:** Необходимо задавать порядок факторов, что не всегда очевидно.
*   **Медленная генерация:** Данные генерируются последовательно, по одной переменной за раз.
*   **Отсутствие признаков:** Авторегрессионные модели не предоставляют удобного способа извлечения скрытых признаков (unsupervised representation learning).

Латентные модели решают эти проблемы, добавляя переменные $z$, которые отражают факторы вариации в данных, такие как возраст, поза или цвет волос на изображениях. По мнению лектора, это делает семейство моделей более гибким и позволяет проводить классификацию на основе признаков, а не «сырых» пикселей.

## 📊 Простые модели: от смесей Гауссиан к глубоким нейросетям
[[JUMP:17:56]]

В качестве «разогрева» обсуждается модель смеси Гауссиан (GMM) — классическая латентная модель. В GMM переменная $z$ является категориальной и определяет компонент смеси. 

При работе с более сложными данными, например, набором изображений MNIST, эксперт отмечает, что использование глубоких нейронных сетей позволяет моделировать параметры распределения ($μ$ и $\sigma$) как функции от $z$. Хотя это делает процесс обучения сложнее (из-за необходимости оценивать правдоподобие данных), это дает преимущество:

*   **Гибкость:** Вместо ограниченного набора компонент $k$, модель использует непрерывное пространство $z$, действуя как «бесконечная смесь» Гауссиан.
*   **Автоматическое выделение структур:** Модель потенциально находит 의미мые закономерности, хотя это не гарантируется целевой функцией.

## 📉 Проблема «бесплатного обеда нет»: сложность оценки
[[JUMP:41:01]]

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

*   Для дискретных переменных это сумма по всем комбинациям, что при 30 бинарных переменных дает $2^{30}$ слагаемых.
*   Для непрерывных — интеграл, который крайне сложно вычислить точно.

Для решения этой задачи лектор предлагает использовать методы аппроксимации. Прямое случайное сэмплирование (Uniform Monte Carlo) работает плохо из-за высокой дисперсии. Более эффективный подход — **Importance Sampling**, где сэмплирование происходит из распределения $q(z)$, которое лучше соответствует данным.

## 🔍 Оптимизация и доказательство через неравенство Йенсена
[[JUMP:107:28]]

Так как нас интересует логарифм вероятности (log-likelihood), возникает разрыв между ожиданием и логарифмом. Лектор поясняет применение неравенства Йенсена, которое позволяет получить нижнюю границу (ELBO — Evidence Lower Bound) для log-marginal probability.

Основные выводы по оптимизации:

*   Оптимизация ELBO позволяет улучшать истинную целевую функцию, так как граница является нижней.
*   Выбор $q(z)$ напрямую влияет на «плотность» (tightness) границы.
*   Идеальным вариантом $q(z)$ является истинное апостериорное распределение $p(z|x)$, но его вычисление обычно требует инверсии нейронной сети, что является сложной задачей.