Лекция CS231N: Математический анализ авторегрессионных моделей и VAE

Stanford Online 19 тыс. 1 ч 12 мин 10 мин 02.09.2025
Главное

В лекции из серии Стэнфордского курса CS231N подробно рассматривается эволюция и математический фундамент генеративных моделей в глубоком обучении. Лектор анализирует драматический переход технологий от «размытого мусора» десятилетней давности до современных коммерчески успешных систем вроде ChatGPT. Центральной темой материала становится развертывание детальной таксономии генеративных подходов, изучение авторегрессионных моделей и глубокий разбор работы вариационных автокодировщиков (VAE).

🔄 Напоминание: Самообучение и контрастивное обучение 0:05

Лекция начинается с краткого обзора предыдущей темы — самообучения (self-supervised learning). Этот подход представляет собой парадигму, в которой нейросеть извлекает структурные закономерности напрямую из неразмеченных данных, избавляя инженеров от необходимости ручной разметки. Модель обучается с помощью вспомогательных задач (pretext tasks), таких как предсказание угла поворота картинки, определение взаимного расположения фрагментов-пазлов (jigsaw puzzles) или реконструкция (inpainting) намеренно удаленных областей изображения. Полученные кодировщиком признаки затем успешно переносятся на целевые задачи (downstream tasks), где доступно лишь небольшое количество человеческой разметки.

Особое внимание уделяется контрастивному обучению (contrastive learning) и фреймворку SimCLR. Алгоритм берет неразмеченное изображение и применяет к нему две случайные трансформации (например, разные варианты кадрирования или перевод в черно-белую гамму), пропуская их через экстрактор признаков. Задача сети — максимизировать сходство векторов для модификаций одного и того же объекта и минимизировать его для репрезентаций разных объектов. Главной проблемой SimCLR, как отмечает лектор, является потребность в гигантском размере батча для стабильной сходимости, поскольку для сети задача выбора правильной пары слишком проста при малом количестве негативных примеров.

Чтобы обойти аппаратные ограничения распределенного обучения с огромными батчами, исследователи разработали подходы MoCo и DINO:

📊 Классификация методов: Супервизорное против несупервизорного обучения 11:53

Для точной навигации в терминологии лектор предлагает разграничить концепции машинного обучения по двум независимым, ортогональным осям. Первая ось разделяет обучение с учителем (supervised) и обучение без учителя (unsupervised).

При обучении с учителем датасет состоит из пар входных данных $x$ и целевых меток $y$, а цель алгоритма — аппроксимировать функцию отображения $x \to y$. В компьютерном зрении это покрывает большинство классических сценариев:

Обучение без учителя (куда входит и самообучение) оперирует исключительно массивом объектов $x$ без каких-либо априорных человеческих аннотаций. Модели поручается самостоятельно обнаружить скрытую внутреннюю структуру данных. Сюда традиционно относят алгоритм кластеризации K-means, метод главных компонент (PCA) для снижения размерности данных и аппроксимацию плотности вероятности (density estimation), которая пытается воссоздать вероятностную функцию, породившую наблюдаемые объекты.

🧠 Дискриминативные и генеративные модели: Борьба за вероятностную массу 15:04

Вторая ось классификации делит вероятностные математические модели на дискриминативные и генеративные. Поведение этих систем диктуется фундаментальным свойством вероятностных распределений — их нормализацией. Интеграл функции плотности вероятности $p(x)$ по всему пространству всегда строго равен единице, что создает жесткую конкуренцию за фиксированную «вероятностную массу». Если модель увеличивает плотность вероятности для одной точки пространства, значения для других точек неизбежно падают.

Дискриминативные модели нацелены на поиск условной вероятности меток при условии заданного входа: $p(y|x)$. При таком подходе:

Генеративные модели решают фундаментально иную задачу — они моделируют безусловное распределение плотности самих данных: $p(x)$. В этой парадигме:

Условные генеративные модели (Conditional Generative Models) усложняют структуру, вычисляя $p(x|y)$ — распределение объектов $x$, обусловленное входным сигналом $y$. В этом сценарии конкуренция за вероятностную массу разворачивается среди всех возможных цифровых представлений для каждой конкретной текстовой подсказки или метки класса.

Теоретически все три типа моделей неразрывно связаны классической теоремой Байеса:

$$p(x|y) = \frac{p(y|x)p(x)}{p(y)}$$

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

🛠️ Таксономия и практическая польза генерации данных 23:20

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

Примерами триумфа этой технологии в последние годы выступают:

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

  1. Явные точные методы (Explicit exact density): модели, позволяющие математически рассчитать точное численное значение плотности вероятности $p(x)$ для любого объекта. Главный представитель — авторегрессионные модели.
  2. Явные приближенные методы (Explicit approximate density): методы, выводящие поддающуюся расчету аппроксимацию плотности или ее нижнюю границу. Сюда относятся вариационные автокодировщики (VAE).
  3. Неявные методы прямого сэмплирования (Implicit direct density): системы, которые принципиально не способны оценить числовое значение плотности $p(x)$, но могут за один прямой проход нейросети сгенерировать готовый образец. Сюда относятся генеративно-состязательные сети (GAN).
  4. Неявные косвенные методы (Implicit indirect density): модели, генерирующие данные без расчета плотности, но требующие для этого итеративного пошагового процесса (например, бесконечного в теории марковского цепного процесса, сжимаемого на практике до фиксированного числа шагов). Ключевой пример — диффузионные модели.

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

📜 Авторегрессионные модели и метод максимального правдоподобия 34:54

В основе явных методов лежит классический статистический принцип максимального правдоподобия (Maximum Likelihood Estimation, MLE). Задача сводится к поиску вектора весов нейросети $W$, который максимизирует вероятность генерации элементов существующей обучающей выборки $X$. Предполагая, что данные распределены независимо и идентично (IID), совместная вероятность выборки превращается в произведение индивидуальных вероятностей каждого объекта.

Для предотвращения арифметического андерфлоу (зануления чисел в памяти ЭВМ при перемножении малых вероятностей) применяется стандартный «лог-трюк» (log trick). Поскольку логарифм является монотонной функцией, максимизация правдоподобия эквивалентна максимизации логарифма правдоподобия, что превращает громоздкое произведение в удобную для оптимизации сумму:

$$\sum_{i=1}^{N} \log p(x_i | W)$$

Авторегрессионные модели накладывают на этот процесс жесткую структурную парадигму: они разделяют каждый объект $x$ на упорядоченную последовательность субкомпонентов $x_1, x_2, \dots, x_T$. Применяя фундаментальное цепное правило вероятности (chain rule), которое не требует никаких сторонних допущений и всегда истинно, совместную плотность раскладывают на произведение условных вероятностей:

$$p(x) = p(x_1) \cdot p(x_2 | x_1) \cdot p(x_3 | x_1, x_2) \dots p(x_T | x_1, \dots, x_{T-1})$$

Такая факторизация критически важна: если пытаться моделировать дискретное совместное распределение последовательности длиной $T$ из словаря размером $V$ «в лоб», пространство состояний будет расти экспоненциально как $V^T$, что абсолютно невычислимо. Пошаговая условная схема удерживает сложность в рамках разумного.

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

Однако попытка применить авторегрессию напрямую к пикселям изображений сталкивается с непреодолимым вычислительным барьером. Если растеризовать скромное изображение размером $1024 \times 1024$ пикселя в одномерный массив (где каждый пиксель состоит из 3 цветовых каналов, принимающих дискретные значения от 0 до 255), модель получит на вход последовательность длиной в 3 миллиона элементов. Подобные вычисления колоссально дороги. Как намекает лектор, авторегрессионный подход к графике пережил возрождение лишь тогда, когда пиксели догадались предварительно сжимать сторонними сетями в компактные дискретные токены, о чем подробно пойдет речь на следующей встрече.

🎭 Вариационные автокодировщики (VAE): Магия латентного пространства 48:27

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

Классический детерминированный автокодировщик (Autoencoder) функционирует по следующей схеме:

Чтобы превратить детерминированный автокодировщик в полноценный генератор, необходимо уметь сэмплировать новые векторы $z$, которые были бы похожи на истинные коды распределения данных. Идея VAE заключается в принудительном наложении известной вероятностной структуры — обычно стандартного нормального распределения $\mathcal{N}(0, I)$ — на латентное пространство кодировщика.

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

Создатели VAE элегантно обошли эту преграду, внедрив вторую нейросеть $q_\phi(z|x)$ (кодировщик), которая аппроксимирует недостижимый истинный математический постерьер. Обе сети параметризуются под гауссовские распределения: кодировщик выдает два вектора — вектор математических ожиданий $\mu$ и вектор диагонали ковариационной матрицы $\sigma$ латентного распределения. Диагональная структура критична, иначе матрица связей между всеми пикселями разрослась бы до размеров $H^2W^2$ и переполнила память. Декодировщик, в свою очередь, оптимизирует среднее значение аналогичного распределения для пикселей, что при фиксированной дисперсии математически эквивалентно минимизации среднеквадратичной ошибки ($L_2$-дистанции).

В результате строгих логарифмических преобразований уравнения правдоподобия выводится вариационная нижняя граница плотности вероятности — ELBo (Evidence Lower Bound). Именно ее максимизируют в процессе обучения VAE. Целевая функция представляет собой арену борьбы двух противоположных по смыслу лоссов:

  1. Ошибка реконструкции (Reconstruction loss): требует от декодировщика идеального воссоздания картинки из латентного кода. Эта сила заставляет кодировщик занулять дисперсии $\sigma \to 0$ и присваивать каждому уникальному изображению свой изолированный, максимально далекий от других вектор $\mu$.
  2. Априорный член (Prior loss): выражается через расхождение Кульбака — Лейблера между предсказанным распределением $q(z|x)$ и эталонным Гауссианом $p(z)$. Эта сила, напротив, стремится стянуть все векторы $\mu$ к абсолютному нулю, а дисперсии $\sigma$ — выровнять в единицу.

Поиск динамического равновесия между этими силами заставляет VAE формировать непрерывное, плотное и гладкое латентное пространство. Для обеспечения возможности сквозного дифференцирования и обратного распространения градиента через стохастический (случайный) узел сэмплирования применяется трюк репараметризации (reparameterization trick): случайность выносится во внешний независимый вектор шума $\epsilon \sim \mathcal{N}(0, I)$, а рабочий латентный вектор формируется детерминированно: $z = \mu + \sigma \odot \epsilon$. На выходе инженер получает систему, способную к плавной интерполяции: при перемещении по осям обученного латентного пространства сгенерированные объекты (например, рукописные цифры) плавно и непрерывно деформируются и трансформируются друг в друга.

💬 Цитаты

«Эта область глубокого обучения прошла путь от абсолютно неработающей 10 лет назад до реально функционирующей в последние пару лет.»

Лектор Стэнфорда 10:45

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

Лектор Стэнфорда 19:05
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
ELBo
Evidence Lower Bound (вариационная нижняя граница правдоподобия) — оптимизируемая функция потерь, используемая для приближенной оценки истинной плотности данных в VAE.
Трюк репараметризации
Математический метод, выносящий случайность из стохастического узла сети в изолированный внешний шум, что позволяет применять обратное распространение градиента.
Контрастивное обучение
Метод самообучения нейросетей, основанный на сближении представлений схожих объектов и отдалении друг от друга разных объектов.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект CS231N VAE ELBo SimCLR Авторегрессионные модели