Вариационный автоэнкодер

Материал из MachineLearning.

Перейти к: навигация, поиск
Статья написана с использованием LLM DeepSeek и проверена участником К.А.Савицкий 23:24, 14 июль 2026 (UTC)


Вариацио́нный автоэнко́дер (Variational autoencoder, VAE) — генеративная модель, основанная на глубоких нейронных сетях и байесовском выводе, которая обучается представлять данные в латентном пространстве меньшей размерности и генерировать новые правдоподобные примеры из этого пространства. В отличие от обычного автоэнкодера, VAE не просто сжимает и восстанавливает данные, а строит вероятностное распределение над латентными представлениями, что позволяет осуществлять направленную генерацию, интерполяцию и редактирование атрибутов.

Модель относится к классу глубоких генеративных моделей с латентными переменными и обучается методом стохастического градиентного спуска путём максимизации вариационной нижней границы правдоподобия (ELBO). Ключевой вклад оригинальной работы (Kingma & Welling, 2013) — переформулировка вариационного вывода таким образом, чтобы он был совместим с градиентной оптимизацией через трюк репараметризации.

Содержание

Интуиция

Классический автоэнкодер учится отображать входной объект x в вектор скрытого кода z и восстанавливать по нему \hat{x}. Однако полученное латентное пространство часто оказывается нерегулярным — маленькие смещения в z могут приводить к бессмысленным декодированным образам, а случайный выбор z не гарантирует порождения реалистичного примера.

VAE решает эту проблему, моделируя латентное представление не как точку, а как вероятностное распределение. Энкодер выдаёт параметры нормального распределения (среднее \mu и дисперсию \sigma^2), из которого затем сэмплируется конкретный код z. Декодер, в свою очередь, задаёт распределение p(x|z). Обучение максимизирует правдоподобие восстановленных данных, одновременно удерживая латентное распределение каждого примера близким к стандартному нормальному априорному распределению \mathcal{N}(0, I). Это обеспечивает непрерывность и гладкость латентного пространства: два близких в смысле метрики кода порождают похожие декодированные объекты.

История развития

Идея объединения нейросетевых автоэнкодеров и вариационного вывода восходит к началу 2010-х годов. Первые формулировки глубоких латентных гауссовских моделей и стохастического вариационного вывода с обратным распространением ошибки появились в неопубликованных заметках 2012 года. Каноническими считаются две одновременные работы 2013–2014 годов:

  • Auto-Encoding Variational Bayes (Kingma & Welling, 2013) — представила VAE в современном виде, ввела трюк репараметризации для обучения через SGD, сформулировала ELBO и показала применимость к изображениям MNIST и Frey Faces.Шаблон:Sfn
  • Stochastic Backpropagation and Approximate Inference in Deep Generative Models (Rezende, Mohamed, Wierstra, 2014) — независимо развила схожий подход, акцентировав связь с вариационным байесовским выводом, и предложила нормализующие потоки для более богатых апостериорных приближений.Шаблон:Sfn

После этого последовали многочисленные расширения: Conditional VAE (Sohn et al., 2015), β-VAE (Higgins et al., 2017) для разложенных (disentangled) представлений, VQ-VAE (van den Oord et al., 2017) с дискретными латентными кодами, иерархические VAE, а также гибриды с нормализующими потоками, диффузионными моделями и генеративно-состязательными сетями.

Математические основы

VAE — это вероятностная модель данных x со скрытыми переменными z. Полное правдоподобие задаётся как:

p_\theta(x) = \int p_\theta(x|z) p(z) dz,

где p(z) = \mathcal{N}(z; 0, I)априорное распределение, а p_\theta(x|z)функция правдоподобия, параметризованная декодером (обычно бернуллиевское для бинарных данных или гауссовское с фиксированной дисперсией для непрерывных).

Прямое вычисление интеграла или максимизация \log p_\theta(x) через EM-алгоритм невозможны из-за сложности истинного апостериорного распределения p_\theta(z|x). Вместо этого вводится аппроксимирующее распределение (энкодер) q_\phi(z|x), которое обучается вместе с декодером в рамках вариационного вывода.

Вариационная нижняя граница (ELBO)

Логарифм правдоподобия отдельного примера можно разложить как:

\log p_\theta(x) = D_{KL}\big(q_\phi(z|x) \parallel p_\theta(z|x)\big) + \mathcal{L}(\theta, \phi; x),

где D_{KL}расстояние Кульбака — Лейблера, а \mathcal{L} — вариационная нижняя граница (Evidence Lower BOund, ELBO):

\mathcal{L}(\theta, \phi; x) = \mathbb{E}_{z \sim q_\phi(z|x)} \big[ \log p_\theta(x|z) \big] - D_{KL}\big( q_\phi(z|x) \parallel p(z) \big).

Поскольку D_{KL} \ge 0, ELBO является нижней оценкой маргинального правдоподобия. Максимизация ELBO одновременно увеличивает ожидаемое правдоподобие восстановления и регуляризует апостериорное распределение энкодера, приближая его к априорному p(z).

Трюк репараметризации

Градиент ELBO по параметрам \phi энкодера содержит операцию сэмплирования z \sim q_\phi(z|x), которая блокирует обратное распространение ошибки. Трюк репараметризации переписывает сэмплирование как детерминированную функцию от вспомогательной случайной величины \epsilon:

z = \mu_\phi(x) + \sigma_\phi(x) \odot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I),

где \odot — поэлементное умножение. Это позволяет градиентам свободно проходить через \mu_\phi и \sigma_\phi, и оптимизация выполняется обычным SGD.

Архитектура модели

Классический VAE состоит из двух нейронных сетей:

  • Энкодер (вариационная аппроксимация) q_\phi(z|x) — получает на вход данные x и выдаёт параметры латентного распределения: вектор средних \mu_\phi(x) и вектор логарифмов дисперсий \log \sigma^2_\phi(x) (для численной устойчивости). Обычно это свёрточная (для изображений) или полносвязная архитектура.
  • Декодер (генеративная модель) p_\theta(x|z) — принимает латентный вектор z и параметризует распределение данных. Для изображений часто используется транспонированная свёрточная сеть, выдающая параметры Бернулли (пиксели 0/1) или среднее гауссовского распределения.

На этапе обучения сначала кодируется вход, затем с помощью репараметризации получают z, после чего декодер восстанавливает \hat{x}. На этапе генерации новые примеры порождаются путём сэмплирования z \sim \mathcal{N}(0, I) и пропускания его через декодер.

Латентное пространство

Благодаря регуляризации через KL-дивергенцию апостериорное распределение каждого примера «стягивается» к стандартному нормальному, а латентное пространство приобретает следующие свойства:

  • Непрерывность: близкие точки z декодируются в семантически похожие объекты.
  • Полнота: случайная точка, сэмплированная из p(z), с высокой вероятностью порождает осмысленный пример.
  • Гладкая интерполяция: линейный переход между двумя латентными кодами даёт плавное морфирование объектов.

Эти качества делают VAE удобным для задач генерации, редактирования атрибутов (например, «добавить улыбку») и обучения интерпретируемых представлений.

Обучение модели

Функция потерь для одного объекта x — отрицательная ELBO:

\mathcal{L}(\theta, \phi; x) = - \mathbb{E}_{z \sim q_\phi(z|x)} \big[ \log p_\theta(x|z) \big] + D_{KL}\big( q_\phi(z|x) \parallel p(z) \big).

Первый член — ошибка восстановления. Для непрерывных данных он пропорционален среднеквадратичному отклонению \|x - \hat{x}\|^2, для бинарных — перекрёстной энтропии. Второй член — регуляризация, которая в гауссовском случае имеет аналитический вид:

D_{KL}\big( \mathcal{N}(\mu, \sigma^2) \parallel \mathcal{N}(0, 1) \big) = \frac{1}{2} \sum_{j=1}^{d} \big( \mu_j^2 + \sigma_j^2 - \log \sigma_j^2 - 1 \big),

где d — размерность латентного пространства. На практике часто используют весовой коэффициент \beta перед KL-слагаемым (см. β-VAE), чтобы управлять балансом между качеством восстановления и регулярностью латентного пространства.

Обучение ведётся мини-батчами с помощью оптимизатора Adam или RMSProp. Поскольку ELBO — оценка правдоподобия, модель также позволяет вычислять перплексию и сравнивать различные конфигурации.

Основные разновидности

Conditional VAE (CVAE)

Добавляет условие c (метка класса, атрибуты) на вход энкодеру q_\phi(z|x,c) и декодеру p_\theta(x|z,c). Позволяет контролировать свойства генерируемых объектов.Шаблон:Sfn

β-VAE

Вводит множитель \beta > 1 перед KL-членом: \mathcal{L} = \mathbb{E}[\log p_\theta(x|z)] - \beta \, D_{KL}(q_\phi(z|x) \parallel p(z)). Более сильная регуляризация способствует выделению независимых факторов вариации в латентных размерностях (disentanglement), что улучшает интерпретируемость.Шаблон:Sfn

VQ-VAE (Vector Quantized VAE)

Использует дискретные латентные коды z из обучаемого словаря векторов. Априорное распределение моделируется авторегрессионно (PixelCNN). Сочетает высокое качество сжатия и генерации, активно применяется в синтезе речи и изображений.Шаблон:Sfn

Иерархические VAE

Вводят несколько уровней стохастических латентных переменных z_1, z_2, \dots, что позволяет улавливать глобальные и локальные структуры данных. Тренируются с использованием лестничных сетей или нормализующих потоков.

VAE-GAN гибриды

Совмещают декодер VAE с дискриминатором GAN, где потери от GAN улучшают визуальное качество генерируемых изображений, а VAE-регуляризация стабилизирует обучение.

Преимущества

  • Принципиальная вероятностная основа: модель явно оптимизирует оценку правдоподобия, что даёт теоретически обоснованный критерий качества и возможность байесовского вывода.
  • Структурированное латентное пространство: непрерывность и гладкость позволяют выполнять осмысленную интерполяцию, семантическую арифметику и направленную генерацию.
  • Стабильное обучение: в отличие от GAN, VAE оптимизирует одну чёткую функцию потерь без минимаксных игр, что упрощает тренировку и снижает риск расходимости.
  • Интерпретируемость: модификации типа β-VAE способствуют разложению факторов вариации, что ценно для научных приложений и обучения представлений.

Ограничения

  • Размытость генерации: стандартный VAE с поэлементной независимой функцией правдоподобия (MSE или кросс-энтропия) часто порождает усреднённые, размытые изображения. Это связано с тем, что модель оптимизирует пиксельное правдоподобие, а не перцептивное качество.
  • Постериорный коллапс: в мощных декодерах (особенно авторегрессионных) KL-член может «схлопнуться», и энкодер начнёт игнорировать вход, выдавая априорное распределение; модель превращается в обычный генератор без осмысленного латентного кода.
  • Предположение о факторизованном апостериорном: диагональное гауссовское приближение q_\phi(z|x) может быть недостаточно выразительным для сложных данных, что ограничивает точность приближения.
  • Трудности с дискретными данными: хотя VAE справляется с бинарными изображениями, моделирование текста и других дискретных последовательностей требует дополнительных приёмов (Gumbel-Softmax, дискретные латентные переменные).

Современные применения

  • Генерация изображений и видео: VAE используются как компоненты диффузионных моделей (Latent Diffusion Models, Stable Diffusion) для сжатия в латентное пространство перед диффузией.
  • Синтез речи и музыки: VQ-VAE и его варианты (WaveNet, Jukebox) преобразуют аудиосигналы в дискретные коды и обратно, обеспечивая высококачественный нейронный синтез.
  • Обучение разложенных представлений (disentanglement): β-VAE и FactorVAE применяются для выделения независимых факторов (освещение, поза, цвет) без учителя, что важно для интерпретируемого ИИ.
  • Реконструкция и восстановление данных: VAE используются для заполнения пропущенных участков, шумоподавления и сжатия данных с контролируемым качеством.
  • Молекулярный дизайн и биоинформатика: генеративные VAE генерируют молекулярные структуры с заданными свойствами, в том числе в SMILES-представлениях.

См. также

Примечания

Литература

  • Kingma, D. P., Welling, M. Auto-Encoding Variational Bayes // Proceedings of the International Conference on Learning Representations (ICLR). — 2014.
  • Rezende, D. J., Mohamed, S., Wierstra, D. Stochastic Backpropagation and Approximate Inference in Deep Generative Models // Proceedings of the 31st International Conference on Machine Learning (ICML). — 2014. — С. 1278–1286.
  • Sohn, K., Lee, H., Yan, X. Learning Structured Output Representation using Deep Conditional Generative Models // Advances in Neural Information Processing Systems (NeurIPS). — 2015. — С. 3483–3491.
  • Higgins, I., Matthey, L., Pal, A. et al. beta-VAE: Learning Basic Visual Concepts with a Constrained Variational Framework // Proceedings of the International Conference on Learning Representations (ICLR). — 2017.
  • van den Oord, A., Vinyals, O., Kavukcuoglu, K. Neural Discrete Representation Learning // Advances in Neural Information Processing Systems (NeurIPS). — 2017. — С. 6309–6318.
  • Goodfellow, I., Bengio, Y., Courville, A. Deep Learning. — MIT Press, 2016. — ISBN 978-0262035613 (Глава 20. «Deep Generative Models»).
Личные инструменты