Вторая лекция специализированного курса Стэнфордского университета CS236 посвящена фундаментальным основам глубоких генеративных моделей и разбору классического «проклятия размерности». В рамках занятия подробно рассматривается математическая эволюция подходов к моделированию данных: от простейших дискретных распределений и байесовских сетей до современных нейросетевых архитектур. Проводя четкую границу между генеративным и дискриминативным обучением, лектор закладывает теоретический фундамент для понимания принципов работы современных авторегрессионных моделей и вариационных автоэнкодеров.
📐 Проблема аппроксимации и проклятие размерности 0:05
При построении генеративных моделей для сложных типов данных, таких как изображения, тексты или последовательности ДНК, исследователи неизбежно сталкиваются с фундаментальным вызовом машинного обучения — проклятием размерности. Вся индустрия генеративного искусственного интеллекта базируется на предположении, что доступные нам обучающие примеры были извлечены из некоего истинного, но скрытого от нас распределения вероятностей, обозначаемого как $P_{data}$.
Главная задача разработчика — построить качественную математическую аппроксимацию этого неизвестного процесса генерации данных. Располагая точной аппроксимацией, алгоритм получает возможность генерировать принципиально новые текстовые фрагменты или реалистичные изображения, которые семантически близки к обучающей выборке.
Для реализации этой задачи на практике фиксируются три ключевых компонента:
- Семейство моделей: Множество вероятностных распределений (например, гауссиан или семейство конфигураций нейросети), параметризованных вектором $\theta$.
- Функция потерь (метрика близости): Формальный критерий, определяющий расстояние между истинным распределением данных и распределением нашей модели в многомерном пространстве.
- Алгоритм оптимизации: Инструментарий для поиска такой конфигурации параметров внутри выбранного семейства, которая минимизирует заданную функцию потерь.
Успешное решение этой сложной оптимизационной задачи позволяет не только синтезировать контент, но и эффективно решать проблему оценки плотности (density estimation). Модель обучается определять, насколько вероятен тот или иной объект. Это открывает широкие возможности для детекции аномалий в поступающих на вход данных. Более того, в процессе обучения на огромных массивах неразмеченных данных нейросеть неявно исследует ключевые оси вариативности и внутреннюю структуру объектов, реализуя концепцию обучения без учителя.
🎰 Дискретные распределения: от монеты до пиксельного куба 10:16
Определить оптимальный способ математического представления распределения вероятностей над пространствами высокой размерности крайне непросто. Для одномерных дискретных систем задача тривиальна. В случае бинарной случайной величины (распределение Бернулли с исходами вроде «орел/решка» или «истина/ложь») для полного описания системы требуется всего один параметр $p$. Вероятность противоположного исхода автоматически рассчитывается как $1 - p$.
При увеличении числа дискретных исходов до фиксированного значения $m$ система переходит в категориальное распределение, требующее хранения $m$ чисел, сумма которых строго равна единице. Однако при попытке объединить эти базовые кирпичики для моделирования реальных объектов вычисления усложняются экспоненциально.
Рассмотрим кодирование цвета одного пикселя в стандартной системе RGB. Для описания интенсивности каналов (красного, зеленого и синего) используются три случайные величины, каждая из которых принимает значения от 0 до 255. Пространство возможных комбинаций превращается в трехмерный куб. Чтобы задать полностью общее (универсальное) совместное распределение для одного-единственного пикселя, необходимо сопоставить вероятность каждой дискретной точке этого куба.
Общее число параметров для одного RGB-пикселя составляет:
$$256 \times 256 \times 256 = 256^3$$
Даже с учетом ограничения на единичную сумму вероятностей, это число колоссально.
Ситуация становится критической при переходе к полноценным изображениям. Если взять упрощенный пример — черно-белое изображение из датасета MNIST размером 28x28 пикселей, где каждый пиксель является бинарной переменной Бернулли, то размер пространства состояний составит 2^n, где $n$ — общее число пикселей.
Для полного и бескомпромиссного описания совместного распределения такой системы компьютеру потребуется хранить в памяти:
$$2^n - 1$$
параметров. Лектор подчеркивает, что даже для скромного разрешения изображений результирующее число параметров быстро превышает количество атомов в наблюдаемой Вселенной. Это делает невозможным как их хранение, так и эффективное обучение на основе эмпирических данных.
🔗 Разложение вероятностей: независимость и цепное правило 19:04
Наиболее радикальный способ борьбы с экспоненциальным взрывом параметров — введение жесткого допущения о полной независимости всех случайных величин (пикселей или слов) друг от друга. В этом случае совместное распределение распадается на произведение маргинальных распределений. Размерность пространства состояний по-прежнему остается равной $2^n$, однако количество параметров, необходимых для хранения модели, сокращается до линейной зависимости — ровно $n$ параметров для $n$ бинарных пикселей.
Каждый пиксель моделируется изолированно, что вычислительно очень дешево, но абсолютно неприменимо на практике. При генерации модель будет выбирать значения пикселей случайно и независимо друг от друга, превращая итоговое изображение в некогерентный белый шум.
Математической альтернативой, не требующей никаких предварительных допущений, выступает фундаментальное цепное правило вероятностей (chain rule). Оно позволяет строго разложить совместную вероятность любого набора событий в произведение условных вероятностей:
$$P(X_1, X_2, \dots, X_n) = \prod_{i=1}^n P(X_i \mid X_1, \dots, X_{i-1})$$
Именно эта математическая структура лежит в основе всех современных авторегрессионных и больших языковых моделей (LLM). При анализе предложения цепное правило определяет вероятность каждого последующего слова на основе контекста из всех предыдущих слов.
Однако без дополнительных ограничений цепное правило не дает выигрыша в памяти. Математический расчет показывает, что условное распределение для каждого последующего пикселя или токена требует экспоненциально большего объема параметров, поскольку количество комбинаций условий растет в геометрической прогрессии. Для последнего элемента цепочки таблица условных вероятностей по-прежнему будет иметь нереализуемый на практике размер.
Промежуточным компромиссом является марковское предположение (Markov assumption). Модель постулирует, что текущее состояние системы (например, погода завтра или $(i+1)$-е слово в предложении) условно зависит исключительно от предыдущего состояния, а вся более ранняя история распределения является избыточной.
В результате применения марковского допущения формулы условной зависимости упрощаются:
$$P(X_3 \mid X_2, X_1) = P(X_3 \mid X_2)$$
Это позволяет сократить объем параметров до линейной зависимости от общего числа переменных $n$. Модели Маркова успешно применяются на практике, однако для задач генерации связных текстов или сложных изображений они оказываются слишком слабыми, поскольку игнорируют глобальный контекст.
🕸️ Байесовские сети и локальные взаимодействия 29:34
Для обобщения марковских принципов и достижения большей гибкости без потери вычислительной эффективности используются байесовские сети. Это графовые структуры данных, позволяющие компактно задавать сложные совместные распределения. В их основе лежит направленный ациклический граф (DAG), где каждый узел соответствует определенной случайной величине (конкретному пикселю или токену), а ребра указывают на прямые условные зависимости.
Связующим звеном между структурой графа и математическим расчетом условных вероятностей выступает процедура топологической сортировки узлов. Она позволяет упорядочить переменные и применить к ним факторизованное цепное правило, где каждая переменная кондиционируется не на всю историю, а только на явное подмножество своих непосредственных родительских узлов (parents) в графе.
Экономия параметров в байесовской сети напрямую зависит от плотности ребер: сложность и объем условных таблиц растут экспоненциально в зависимости от максимального количества родителей у одного узла. Если граф максимально плотный, мы возвращаемся к полному цепному правилу со всеми его вычислительными проблемами. Если у каждого узла строго один родитель — мы получаем классическую марковскую цепь.
В качестве иллюстрации лектор приводит классическую модель из пяти переменных:
- сложность экзамена (Difficulty),
- интеллект студента (Intelligence),
- оценка (Grade),
- результат теста SAT,
- получение рекомендации.
Глобальные многомерные зависимости здесь успешно декомпозируются на простые локальные взаимодействия. Например, оценка напрямую зависит только от интеллекта и сложности экзамена, а результат SAT — исключительно от интеллекта, что позволяет отбросить остальные параметры при расчете локальных таблиц вероятностей.
Тем не менее, в контексте глубокого обучения классические вероятностные графические модели (PGM) используются ограниченно. В рамках данного курса байесовские сети рассматриваются преимущественно как удобная нотация для описания базовых взаимосвязей между небольшим числом высокоуровневых случайных векторов. Вместо жестких структурных ограничений классических графов современные архитектуры используют «мягкие» нейросетевые условные зависимости.
🆚 Генеративный подход против дискриминативного 39:32
Для понимания специфики генеративного ИИ необходимо сопоставить его с традиционным дискриминативным обучением на примере задачи построения спам-фильтра для электронной почты. Нам задан бинарный класс $Y$ (спам/не спам) и вектор бинарных признаков $X$, указывающих на присутствие или отсутствие определенных слов из выбранного словаря в тексте письма.
В рамках генеративного подхода можно построить наивный байесовский классификатор (Naive Bayes). Эта модель жестко предполагает, что при условии известного класса $Y$ все признаки $X_i$ становятся условно независимыми друг от друга.
Модель описывает совместную плотность $P(X, Y)$ как:
$$P(Y) \prod P(X_i \mid Y)$$
Сам процесс генерации данных в такой парадигме выглядит следующим образом: алгоритм сначала выбирает тип письма (спам или нет), а затем, основываясь на этом решении, независимо генерирует слова из условных распределений. Финальная классификация нового письма осуществляется по правилу Байеса:
$$P(Y \mid X) = \frac{P(X, Y)}{P(X)}$$
Дискриминативный подход идет принципиально иным путем. Если единственная цель системы — предсказать метку класса $Y$ на основе признаков $X$, то моделирование маргинального распределения признаков $P(X)$ становится избыточной вычислительной тратой. Зачем алгоритму тратить ресурсы на изучение законов взаимного появления слов в письмах, если его просят лишь выдать бинарный вердикт? Дискриминативные модели целенаправленно оптимизируют условную вероятность $P(Y \mid X)$ напрямую, полностью игнорируя внутреннюю структуру распределения признаков.
Полноценная условная таблица для $P(Y \mid X)$ при наличии $n$ признаков потребовала бы нереализуемых 2^n строк. Чтобы сделать задачу вычислимо проходимой, дискриминативное обучение вводит допущение о конкретной функциональной форме зависимости между параметрами. В логистической регрессии вместо громоздкого поиска по таблице используется линейная комбинация признаков $X$ с весовыми коэффициентами $\alpha$.
Для удержания выходного значения в строгих рамках теории вероятностей (от 0 до 1) результат линейного уравнения пропускается через сигмоидальную функцию активации:
$$\sigma(z) = \frac{1}{1 + e^{-z}}$$
Это задает жесткую линейную разделяющую границу в пространстве признаков.
В практических задачах дискриминативная логистическая регрессия, как правило, демонстрирует более высокую точность классификации, чем генеративный наивный байесовский классификатор, поскольку базируется на значительно более слабых и реалистичных априорных предположениях. Наивный Байес фатально ошибается при наличии сильно скоррелированных признаков. Встретив в спам-письме неразрывную пару слов «банк» и «счет», он воспримет их как два независимых подтверждения спама и необоснованно завысит итоговую уверенность (double counting). Логистическая регрессия легко справляется с этой проблемой, просто обнулив один из весовых коэффициентов.
Однако у дискриминативного подхода есть критический недостаток — полная неспособность рассуждать о своих входных данных. Если в поступающем на вход изображении или тексте будет пропущена часть пикселей или слов, дискриминативная модель не сможет их восстановить (импутировать), поскольку она ничего не знает о распределении $P(X)$. Генеративная же модель, описывающая полное совместное распределение $P(X, Y)$, теоретически способна вычислить любые условные вероятности и восстановить утерянные фрагменты данных.
🧠 Интеграция нейросетей и глубокие авторегрессионные модели 1:04:36
Главная проблема классической логистической регрессии заключается в ограничении, накладываемом линейной структурой:Contours одинаковой вероятности представляют собой строго прямые линии, что не позволяет описывать сложные нелинейные зависимости реального мира. Для преодоления этого барьера и создания гибких моделей условных распределений применяются искусственные нейронные сети.
Вместо прямой подачи исходных признаков $X$ на линейный классификатор, система сначала трансформирует их в скрытое представление $h$ с помощью умножения на матрицу весов $A$, добавления вектора смещения $b$ и применения нелинейной функции активации:
$$h = \sigma(AX + b)$$
Только после этого над полученными высокоуровневыми признаками $h$ надстраивается финальная логистическая регрессия. Данная конструкция описывает простейший однослойный перцептрон, который за счет добавления параметров матрицы $A$ и вектора $b$ способен аппроксимировать гораздо более сложные, изогнутые формы распределений. Повторяя этот шаг и наслаивая трансформации друг на друга, мы получаем глубокую нейронную сеть.
Интеграция этого мощного математического аппарата в генеративное русло порождает класс глубоких генеративных моделей. Самый прямолинейный подход — взять за основу абсолютно точное, универсальное цепное правило вероятностей и поручить моделирование каждого отдельного условного распределения в цепочке независимой глубокой нейросети.
Именно так устроены современные авторегрессионные языковые модели: они рассчитывают вероятность появления следующего слова на основе контекста предыдущих с помощью прохождения данных через слои нейросети. Платой за вычислительную разрешимость здесь становится предположение, что нейросетевая архитектура обладает достаточной емкостью для адекватного улавливания всех условных взаимосвязей в данных.
Поскольку для каждой позиции в последовательности теоретически требовалась бы своя отдельная нейросеть, на практике инженеры применяют методы разделения весов (weight tying) для унификации вычислений.
📈 Непрерывные переменные и вариационные автоэнкодеры 1:13:10
Подавляющая часть окружающих нас данных носит непрерывный характер, принимая значения на всей вещественной оси. Математический аппарат для работы с такими системами практически идентичен дискретному случаю, с той лишь разницей, что вместо функций вероятностной массы (PMF) исследователи оперируют функциями плотности вероятности (PDF). В непрерывном пространстве концепция табличного хранения параметров полностью теряет смысл из-за бесконечного числа возможных состояний переменной, что требует обязательного введения конкретных параметрических функций плотности.
Наиболее распространенными базовыми функциями являются:
- Гауссово (нормальное) распределение: Зависит от двух параметров — математического ожидания $\mu$ (среднего значения) и стандартного отклонения $\sigma$.
- Равномерное распределение: Задает фиксированную равную плотность вероятности на строго определенном отрезке между значениями $A$ и $B$.
При работе с многомерными непрерывными пространствами используется функция совместной плотности вероятности (например, многомерное распределение Гаусса, где $X$ представляет собой вектор значений). Все ранее изученные правила — цепное разложение и формула Байеса — сохраняют свою силу и в непрерывном режиме, позволяя комбинировать дискретные и непрерывные переменные в рамках единых систем.
Простейший пример такого симбиоза в рамках байесовской сети — смесь двух гауссиан. Граф модели состоит всего из двух узлов: дискретной латентной (скрытой) переменной $z$ и непрерывной наблюдаемой переменной $x$, для которой $z$ выступает родителем.
Совместная плотность рассчитывается как:
$$P(X, Z) = P(Z)P(X \mid Z)$$
Переменная $z$ является бинарным распределением Бернулли с параметром $p$, выполняя роль случайного подбрасывания монетки. В зависимости от того, какое значение приняла переменная $z$ (0 или 1), финальное значение $x$ генерируется из первого или из второго распределения Гаусса, каждое из которых обладает собственными уникальными параметрами среднего значения и дисперсии. Благодаря такому смешению модель получает значительно большую гибкость в описании сложных двухвершинных распределений.
Кульминацией развития этой идеи является архитектура вариационного автоэнкодера (VAE), детальному разбору которой посвящены последующие лекции курса. В своей основе VAE — это все та же лаконичная байесовская сеть из двух узлов ($z$ и $x$), однако связь между ними выведена на принципиально новый уровень за счет интеграции глубоких нейронных сетей.
Процесс генерации нового объекта в VAE выглядит следующим образом:
- Из стандартного многомерного непрерывного распределения Гаусса генерируется вектор латентных переменных $z$.
- Полученный вектор $z$ подается на вход двум сложным глубоким нейросетям — $\mu_\theta(z)$ и $\sigma_\phi(z)$.
- Нейросети осуществляют нелинейное преобразование и выдают на выходе точные значения математического ожидания и дисперсии для финального распределения.
- Итоговый объект $x$ (например, реалистичное изображение человеческого лица) генерируется с помощью финального гауссова сэмплинга на основе рассчитанных нейросетью параметров.
Несмотря на высочайшую сложность нелинейных нейросетевых функций внутри архитектуры, условное распределение $P(X \mid Z)$ с математической точки зрения остается чистым гауссианом. Таким образом, искусная комбинация жестких вероятностных правил цепного разложения и гибкости глубоких нейросетей позволяет создавать эффективные генеративные системы, способные аппроксимировать многомерные распределения реального мира.