В рамках курса CS236 Стэнфордского университета (Stanford University) прошла лекция, посвященная принципам обучения глубоких генеративных моделей. Основное внимание было уделено переходу от рекуррентных архитектур к трансформерам, а также фундаментальному методу обучения — максимизации правдоподобия (Maximum Likelihood Learning).
🧠 От RNN к механизмам внимания в авторегрессионных моделях 0:05
В начале лекции спикер напомнил о базовом принципе авторегрессионных моделей: последовательном предсказании каждого следующего элемента на основе предыдущего контекста. Рекуррентные нейронные сети (RNN) долгое время были стандартом, используя скрытый вектор $H$ для суммирования всей истории. Однако RNN обладают критическими недостатками :
- Информационное «бутылочное горлышко»: один вектор должен вместить смысл всей последовательности.
- Сложность обучения: последовательная природа вычислений делает невозможным параллелизм, а длинные зависимости приводят к проблеме исчезающих или взрывающихся градиентов (vanishing/exploding gradients).
Решением стал механизм внимания (Attention), используемый в современных LLM вроде GPT-4 и Llama. Вместо сжатия истории в один вектор, модель напрямую «смотрит» на все предыдущие скрытые состояния .
Ключевые концепции внимания:
- Query (запрос) и Key (ключ): механизм определяет релевантность текущего шага по отношению к предыдущим, используя скалярное произведение векторов .
- Softmax: превращает оценки релевантности в распределение вероятностей внимания.
- Параллелизм: в отличие от RNN, трансформеры позволяют вычислять предсказания для всех токенов в обучающей последовательности одновременно, что позволяет эффективно использовать мощности GPU .
🖼️ Авторегрессия в мире изображений 10:35
Авторегрессионный подход применим не только к тексту, но и к изображениям, если рассматривать их как последовательность пикселей (обычно слева направо, сверху вниз) .
В моделях типа PixelCNN обучение строится на предсказании каналов RGB. Для этого используется маскирование: при предсказании красного (R) канала модель не должна «видеть» зеленый (G) и синий (B) текущего пикселя. Маскирование реализуется через обнуление определенных весов в сверточных ядрах .
Интересным применением таких моделей является детекция аномалий и защита от состязательных атак (adversarial attacks). Было показано, что PixelCNN присваивает оригинальным изображениям высокую вероятность, а изображениям с едва заметным «состязательным шумом» — значительно более низкую . Это доказывает, что модель действительно понимает тонкую структуру данных, а не просто копирует их.
📏 Обучение через максимизацию правдоподобия 30:38
Основная задача обучения — найти параметры нейросети $\theta$, которые сделают модельную дистрибуцию $P_\theta$ максимально близкой к реальному распределению данных $P_{data}$.
Главная проблема здесь — колоссальная размерность . Спикер привел пример с изображениями из датасета MNIST (28x28 пикселей). Даже при работе с бинарными пикселями существует $2^{784}$ возможных комбинаций. Это число ($10^{236}$) на много порядков превышает количество атомов во вселенной. Покрытие данных всегда будет разреженным, что делает задачу оценки плотности фундаментально сложной.
В качестве критерия близости распределений используется дивергенция Кульбака — Лейблера (KL-divergence). Она имеет информационно-теоретическую интерпретацию: KL-дивергенция показывает, насколько неэффективным будет сжатие данных, если мы используем код, оптимизированный под ошибочное распределение $Q$ вместо истинного $P$ .
Математически минимизация KL-дивергенции эквивалентна методу максимального правдоподобия (Maximum Likelihood Estimation, MLE) . На практике это означает:
- Мы берем обучающий датасет.
- Считаем логарифм вероятности, которую наша модель присваивает этим данным.
- Меняем веса сети так, чтобы эта вероятность росла.
🎲 Метод Монте-Карло и оптимизация 1:00:21
Поскольку мы не знаем истинного распределения $P_{data}$, мы заменяем теоретическое ожидание эмпирическим средним по выборке. Это классическая оценка Монте-Карло :
- Несмещенность: при достаточном количестве образцов среднее по выборке сходится к истинному значению.
- Снижение дисперсии: чем больше данных, тем точнее наша оценка градиента.
Для масштабирования на огромные датасеты используется стохастический градиентный спуск (SGD) или мини-батчи: градиенты вычисляются не по всей базе данных сразу, а по небольшим случайным подгруппам образцов .
⚖️ Проблема переобучения: смещение и дисперсия 1:18:01
В завершение лекции спикер затронул проблему обобщающей способности (generalization). Если модель слишком сложная, она может просто «запомнить» датасет (overfitting), что приведет к плохим результатам на новых данных.
- Bias (Смещение): Модель слишком проста (например, линейная функция для сложных данных) и не может уловить закономерность.
- Variance (Дисперсия): Модель слишком гибкая (полином высокой степени) и начинает реагировать на шум в данных.
Для борьбы с этим применяются методы регуляризации (предпочтение более простых весов) и кросс-валидация: если разрыв между ошибкой на обучающей и валидационной выборках растет, это сигнал о переобучении .