В лекции специализированного курса CS236 Стэнфордского университета подробно рассматриваются продвинутые методы обучения энергетических моделей (Energy-Based Models, EBM), которые формируют фундаментальную базу для понимания современных скоринговых и диффузионных алгоритмов. Преподаватель детально разбирает, почему классическое обучение через максимизацию правдоподобия сопряжено с колоссальными вычислительными затратами, и предлагает элегантные математические альтернативы, полностью исключающие ресурсоемкое сэмплирование на этапе обучения. Основной упор в лекции сделан на концепции сопоставления оценок (Score Matching) и шумового контрастирования (Noise Contrastive Estimation), раскрывающих новые подходы к работе с ненормированными вероятностными распределениями.
📐 Рекап: Проблема нормировочной константы в энергетических моделях 0:05
Энергетические модели предоставляют исследователям гибкий математический аппарат для описания широкого спектра вероятностных распределений, позволяя максимально приблизиться к истинному распределению сложных данных. Главное преимущество EBM заключается в том, что они определяются через функцию энергии $f_\theta(x)$, в роли которой может выступать абсолютно любая архитектура нейронной сети.
Вероятность конкретной точки данных в такой модели задается следующим выражением: $$p_\theta(x) = \frac{\exp(-f_\theta(x))}{Z_\theta}$$
В этой формуле знаменатель $Z_\theta$ представляет собой нормировочную константу, или статистическую сумму (partition function). Она вычисляется как сумма или интеграл ненормированных вероятностей по всему пространству возможных состояний системы.
Основная проблема энергетических моделей заключается в следующем:
- Принципиальная невычислимость (intractability): На практике объекты моделирования представляют собой многомерные векторы (например, изображения с тысячами или миллионами пикселей), из-за чего количество возможных состояний $x$ становится астрономическим, делая точный расчет $Z_\theta$ невозможным.
- Асимметрия сложности: Сравнить вероятности двух разных сэмплов $x$ и $x'$ в EBM очень просто, так как при взятии отношения $p_\theta(x)/p_\theta(x')$ константы $Z_\theta$ сокращаются. Однако определить абсолютную вероятность одиночной точки данных без знания константы невозможно.
- Сложность градиентного спуска: Попытка обучить модель методом максимального правдоподобия требует вычисления градиента по параметрам $\theta$. Лектор приводит наглядную аналогию с разрезанием торта: при обновлении параметров нейросети важно не просто увеличить размер своего куска (ненормированную вероятность правильного ответа), но и проконтролировать, как при этом меняется размер всего торта (константа $Z_\theta$). Необходимо заставить общую статистическую сумму уменьшаться, чтобы относительный вес целевой точки рос.
По словам преподавателя, в авторегрессионных моделях этой проблемы не существует по дизайну, так как их условные распределения изначально построены так, что их интеграл всегда равен единице, а $Z_\theta \equiv 1$ при любых параметрах.
🎲 Сэмплирование через MCMC и динамику Ланжевена 8:21
Чтобы обойти вычислительный тупик при обучении через алгоритм контрастивной дивергенции (Contrastive Divergence, CD), ученые традиционно используют аппроксимацию градиента на основе выборки сэмплов из самой модели. Если у исследователя есть доступ к сэмплам, он может оценить изменение нормировочной константы, сравнивая градиент энергии на реальных обучающих данных с градиентом энергии на синтетических сэмплах, сгенерированных моделью. Градиент как бы подталкивает параметры к увеличению правдоподобия реальных данных и уменьшению вероятности «фейковых» генераций.
Для получения этих сэмплов применяется метод Монте-Карло по схеме марковских цепей (MCMC). Алгоритм стартует с некоторого начального распределения $\pi$ — например, с чистого случайного шума на месте изображения. Затем в текущий кандидатский сэмпл последовательно вносятся небольшие локальные пертурбации (добавление гауссова шума для непрерывных пространств или изменение одного пикселя для дискретных).
Поскольку EBM позволяет легко сопоставлять две точки, алгоритм проверяет, стал ли новый предложенный сэмпл $x'$ лучше предыдущего $x$. Если ненормированная вероятность выросла, шаг безоговорочно принимается. Если уменьшилась — переход все равно может быть осуществлен с некоторой малой вероятностью, зависящей от степени ухудшения. Процесс напоминает стохастический подъем на холм (stochastic hill climbing), где высота холма эквивалентна правдоподобию модели. Теоретически, благодаря соблюдению условия детального баланса, при бесконечном числе шагов такая цепь гарантированно сойдется к истинному распределению модели.
Однако на практике, как подчеркивает лектор, этот подход требует слишком много времени: менять пиксели по одному до получения связной структуры — крайне неэффективно.
Более продвинутым подходом является динамика Ланжевена (Langevin dynamics), разработанная для непрерывных пространств. Она заменяет слепые блуждания направленным движением по градиенту: $$x_{t+1} = x_t + \frac{\epsilon}{2} \nabla_x \log p_\theta(x_t) + \sqrt{\epsilon} z_t$$
Где $\epsilon$ — шаг оптимизации, а $z_t \sim \mathcal{N}(0, I)$ — случайный гауссов шум. Шум здесь необходим, чтобы алгоритм не действовал излишне «жадно» и продолжал исследовать все пространство. Главное математическое преимущество динамики Ланжевена заключается в том, что искомый градиент $\nabla_x \log p_\theta(x_t)$ берется по входу $x$, а не по параметрам $\theta$. Поскольку нормировочная константа $Z_\theta$ от $x$ не зависит, при дифференцировании она превращается в ноль и полностью исчезает из уравнений.
Тем не менее, по мнению лектора, даже динамика Ланжевена слишком дорога для использования во внутреннем цикле обучения (inner loop). Если на каждую итерацию обучения одного шага весов нейросети нам требуется запускать цепочку Ланжевена на 1 000 или 10 000 шагов, процесс обучения становится экономически и технически неподъемным.
🎯 Сопоставление оценок (Score Matching) и трюк с интегрированием по частям 26:06
Для преодоления барьера бесконечных симуляций марковских цепей лектор вводит альтернативные функции потерь, которые принципиально не включают в себя константу $Z_\theta$. Базовым элементом этой парадигмы становится функция оценок (score function) — градиент логарифма правдоподобия по входным переменным $\nabla_x \log p(x)$.
Функция оценок преобразует скалярное поле распределения плотности в векторное поле. Если представить распределение как смесь двух гауссиан, то функция оценок в каждой точке пространства выдаст вектор (стрелку), указывающий в направлении ближайшего локального максимума плотности (математического ожидания). Преподаватель проводит физическую аналогию: если плотность распределения или энергия — это электрический потенциал, то функция оценок — это векторное электрическое поле. Оба объекта описывают одну и ту же сущность, но поле градиентов избавляет нас от необходимости интегрирования всего пространства для поиска нормировки.
Метод сопоставления оценок (Score Matching) предлагает оценивать близость двух распределений (реального $p$ и модельного $q$) через среднюю квадратичную разность ($L_2$-дивергенцию Фишера) их векторных полей оценок: $$D_F(p || q) = \frac{1}{2} \mathbb{E}{p{data}(x)} \left[ \left| \nabla_x \log p_{data}(x) - \nabla_x \log p_\theta(x) \right|_2^2 \right]$$
Если распределение модели идеально совпадет с реальным, этот функционал обратится в ноль. Поскольку под знаком градиента находится логарифм модели, константа $Z_\theta$ обнуляется, что делает лосс потенциально вычислимым. Единственный тупик — мы не знаем аналитическую форму распределения реальных данных $p_{data}(x)$, а значит, не можем посчитать член $\nabla_x \log p_{data}(x)$.
Для обхода этого препятствия лектор демонстрирует классический математический трюк с использованием интегрирования по частям (в многомерном случае — теоремы Гаусса-Остроградского). Разложив квадрат разности в одномерном пространстве, мы получаем три компонента:
- Синее слагаемое: Квадрат градиента истинной плотности данных $(\nabla_x \log p_{data}(x))^2$. Оно не содержит параметров $\theta$, а значит, является константой при оптимизации, и его можно отбросить.
- Зеленое слагаемое: Квадрат функции оценок модели $(\nabla_x \log p_\theta(x))^2$. Легко вычисляется через стандартное автоматическое дифференцирование.
- Красное слагаемое: Перекрестное произведение оценок данных и модели, содержащее неизвестный компонент.
Раскрывая градиент логарифма данных как $\frac{\nabla_x p_{data}(x)}{p_{data}(x)}$, лектор показывает, что плотность данных в знаменателе сокращается с плотностью данных, идущей от математического ожидания. Остается интеграл от произведения производной плотности данных на производную логарифма модели. Применяя интегрирование по частям, производная «перекидывается» с функции данных на функцию модели. При стандартном допущении, что на бесконечности (на границах физического пространства) плотность распределения данных затухает и стремится к нулю, граничный член исчезает.
В результате математических преобразований красное слагаемое превращается в математическое ожидание второй производной модели по входу $x$. В многомерном векторном пространстве итоговая целевая функция Score Matching принимает вид: $$\mathcal{L}{SM}(\theta) = \mathbb{E}{p_{data}(x)} \left[ \frac{1}{2} |\nabla_x f_\theta(x)|2^2 - \text{Tr}(\nabla_x^2 f\theta(x)) \right]$$
Где $\text{Tr}(\nabla_x^2 f_\theta(x))$ — это след матрицы Гессиана (сумма вторых чистых частичных производных по диагонали). Лектор дает этому уравнению глубокую интуитивную интерпретацию: первый член пытается минимизировать норму градиента в точках реальных данных, превращая их в стационарные точки (экстремумы), а второй член (след Гессиана) гарантирует, что эти точки станут именно локальными максимумами правдоподобия, а не минимумами или седловыми точками.
Основной практический недостаток чистого сопоставления оценок — необходимость вычисления диагонали Гессиана. Для нейросети с $n$ входами это требует выполнения $n$ раздельных проходов обратного распространения ошибки (backprop), что крайне неэффективно для больших разрешений. Для решения этой проблемы в индустрии используют методы Sliced Score Matching (проекции на случайные направления с Hutchinson-трюком) или Denoising Score Matching (аппроксимация через добавление малого шума).
🎭 Шумовое контрастирование (Noise Contrastive Estimation) 56:52
Еще одним элегантным способом избавиться от сэмплирования цепями Маркова в процессе обучения является метод шумового контрастирования (Noise Contrastive Estimation, NCE). Вместо того чтобы сравнивать реальные данные со сложными и динамичными сэмплами из текущей модели (как в Contrastive Divergence), NCE предлагает сопоставлять их с фиксированным, заведомо известным шумовым распределением $p_n(x)$. Единственное требование к этому шуму — из него должно быть легко генерировать выборку и для него должна быть аналитически доступна точная плотность вероятности.
Задача обучения трансформируется в стандартную задачу бинарной классификации (дискриминации): обучить модель отличать истинные сэмплы из распределения данных от ложных сэмплов из распределения шума. Математически доказано, что оптимальный дискриминатор $D(x)$, минимизирующий стандартную кросс-энтропию в такой схеме, имеет вид отношения плотностей: $$D^*(x) = \frac{p_{data}(x)}{p_{data}(x) + p_n(x)}$$
Вместо использования абстрактной нейросети (как в классических GAN), авторы NCE предлагают принудительно задать архитектурную форму дискриминатора, напрямую внедрив туда нашу энергетическую модель $p_\theta(x)$ вместо неизвестного $p_{data}(x)$: $$D(x) = \frac{p_\theta(x)}{p_\theta(x) + p_n(x)}$$
Поскольку классификатор будет оптимизироваться под задачу разделения реального и вымышленного, он будет вынужден подстраивать параметры модели $p_\theta(x)$ под реальное распределение данных. Но как быть с нормировочной константой $Z_\theta$? Трюк NCE заключается в том, что логарифм нормировочной константы (обозначим его как параметр $Z$) объявляется обычной независимой обучаемой скалярной переменной. На нее не накладывается никаких интегральных ограничений.
Преподаватель объясняет, почему этот подход математически строг: при оптимизации кросс-энтропии на достаточном объеме данных этот свободный параметр $Z$ автоматически примет значение истинной нормировочной константы. Это происходит потому, что единственный способ для классификатора показать идеальный результат — это сделать так, чтобы интеграл распределения модели стал равен единице (как и у распределения реальных данных).
Практический алгоритм NCE выглядит следующим образом:
- Формируется мини-батч реальных данных и батч сэмплов из шумового распределения $p_n$.
- Для численной стабильности логарифм знаменателя рассчитывается через стандартный вычислительный трюк
log-sum-exp. - Вычисляется значение кросс-энтропии, и с помощью стандартного стохастического градиентного подъема (SGD) одновременно обновляются как содержательные параметры энергии $\theta$, так и технический параметр константы $Z$.
По мнению лектора, NCE концептуально очень похож на GAN, но обладает колоссальным преимуществом — стабильностью обучения. Поскольку шумовое распределение статично, здесь нет классической минимаксной игры, приводящей к состязательной нестабильности и коллапсу моды. Плата за стабильность — необходимость знать точную плотность вероятности шума $p_n(x)$ в любой точке, чего в GAN от генератора не требуется.
🌊 Развитие идеи: Потоковое контрастивное оценивание 1:20:14
Несмотря на теоретическую стройность базового NCE, на практике его эффективность критически зависит от выбора шумового распределения $p_n(x)$. Если взять слишком простой шум (например, стандартный белый гауссов шум), то для классификатора задача различения сложного графического датасета и шума окажется элементарной. Он быстро научится их разделять по самым поверхностным признакам, а энергетическая модель $f_\theta(x)$ так и не поймет внутреннюю тонкую структуру реальных данных. Идеальный шум должен быть максимально сложным и близким к распределению данных.
Для преодоления этого ограничения было разработано потоковое контрастивное оценивание (Flow Contrastive Estimation, FCE). Идея заключается в том, чтобы сделать шумовое распределение адаптивным и обучать его параллельно с дискриминатором. В качестве модели шума используется нормализующий поток (Normalizing Flow) с параметрами $\phi$. Эта архитектура идеально вписывается в требования NCE, поскольку она способна как к быстрой генерации сэмплов, так и к точному расчету их правдоподобия через уравнение смены переменных.
В рамках FCE запускается состязательный процесс:
- Энергетическая модель (EBM) обучается как дискриминатор в рамках NCE, пытаясь эффективно отделить реальные данные от текущего шума нормализующего потока.
- Нормализующий поток обучается в рамках минимаксной игры (как генератор в GAN), стремясь создавать такие сэмплы, которые максимально запутают дискриминатор, делая задачу классификации невыполнимой.
В результате такого дуэльного обучения исследователь получает синергетический эффект: высококачественную энергетическую модель и сопутствующий обученный нормализующий поток, из которого можно мгновенно извлекать качественные сэмплы на этапе инференса без применения медленных марковских цепей.