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

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

Перейти к: навигация, поиск
Статья написана с использованием LLM DeepSeek-V4 Preview и проверена участником С.А.Суворов 18:23, 13 июля 2026 (MSD). Данная статья является объединением статей С.А.Суворов и К.А.Савицкий на тему: Вариационный автокодировщик

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

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

Содержание


Интуиция

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

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

Определение и ключевые понятия

Пусть задан набор наблюдений \{x_i\}_{i=1}^N, порождённых неизвестным распределением P_{\text{data}}(x). Предполагается, что данные порождаются некоторым скрытым (латентным) процессом: сначала из априорного распределения P(z) порождается скрытая переменная z, затем из условного распределения P(x|z) — наблюдение x. Задача обучения состоит в том, чтобы, имея только наблюдения x, восстановить параметры модели P_\theta(x|z) и P(z), максимизируя логарифм правдоподобия:

\log P_\theta(x) = \log \int P_\theta(x|z) P(z) \, dz

Прямое вычисление этого интеграла, однако, практически всегда является вычислительно неразрешимым. Кроме того, апостериорное распределение P(z|x), необходимое для обучения, также оказывается недоступным в аналитическом виде.

Вариационный автокодировщик предлагает обходной путь: вместо точного вычисления апостериорного распределения вводится его параметрическая аппроксимация q_\phi(z|x) (также называемая распознающей моделью, recognition model), и задача обучения формулируется как совместная оптимизация параметров \theta (генеративная модель, декодер) и \phi (вариационная аппроксимация, энкодер).

В отличие от детерминированного автокодировщика, в VAE энкодер выдаёт не точку в скрытом пространстве, а параметры распределения (обычно математическое ожидание и дисперсию), из которого затем семплируется скрытый вектор z. Это вероятностное представление скрытого пространства позволяет генерировать новые данные, семплируя z из априорного распределения и пропуская его через декодер.

Исторический контекст

Развитие вариационных автокодировщиков органично вписывается в эволюцию методов снижения размерности и генеративного моделирования:

  • 1933 годМетод главных компонент (PCA): Хотеллинг предлагает линейный метод снижения размерности, находящий проекции данных на направления максимальной дисперсии. PCA остаётся стандартным инструментом, однако его линейность ограничивает применимость для сложных данных.
  • 1980–1990-е годыАвтокодировщики (Autoencoders): С появлением обратного распространения ошибки становятся возможными нелинейные обобщения PCA — автокодировщики, использующие нейронные сети для кодирования и декодирования данных. Однако они не имеют вероятностной интерпретации и не могут служить генеративными моделями.
  • 2013–2014 годыПоявление VAE: Д. П. Кингма и М. Веллинг в работе «Auto-Encoding Variational Bayes» (опубликована на ICLR 2014) формализуют подход, сочетающий вариационный вывод с обучением глубоких генеративных моделей. Ключевая инновация — Приём репараметризации (reparameterization trick), позволяющий вычислять градиенты по параметрам вариационного распределения с помощью стандартных методов стохастического градиентного спуска. Почти одновременно независимая работа Резенде, Мохамеда и Вирстры «Stochastic Backpropagation and Approximate Inference in Deep Generative Models» (ICML 2014) развила схожий подход, акцентировав связь с вариационным байесовским выводом и предложив нормализующие потоки для более богатых апостериорных приближений. Эти две работы считаются каноническими и положили начало активному развитию VAE.
  • 2015–2020 годыРасширения и модификации: Предложены многочисленные варианты VAE — Conditional VAE (Sohn et al., 2015) для условной генерации, β-VAE (Higgins et al., 2017) для разложенных (disentangled) представлений, VQ-VAE (van den Oord et al., 2017) с дискретными латентными кодами, VAE с иерархическими скрытыми переменными, динамические VAE для временных рядов, а также гибридные архитектуры, сочетающие VAE с GAN или нормализующими потоками.
  • 2020-е годыЗрелость технологии: VAE становятся стандартным инструментом в медицинской визуализации, генерации молекулярных структур, синтезе речи и других областях. Активно ведутся исследования по преодолению фундаментальных ограничений VAE, таких как коллапс апостериорного распределения, а также по интеграции VAE в диффузионные модели (например, Latent Diffusion Models, где VAE используется для сжатия в латентное пространство перед диффузией).

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

Проблема неразрешимого правдоподобия

В классической постановке задачи генеративного моделирования требуется максимизировать логарифм правдоподобия:

\log P_\theta(x) = \log \int P_\theta(x|z) P(z) \, dz

Для сложных данных (изображения, текст) это интегрирование не имеет аналитического решения, а численные методы (например, Монте-Карло) оказываются вычислительно несостоятельными.

Вариационный вывод и ELBO

Вместо точного вычисления P(z|x) вводится параметрическая аппроксимация q_\phi(z|x). Для любой такой аппроксимации справедливо неравенство:

\log P_\theta(x) \ge \mathbb{E}_{q_\phi(z|x)}[\log P_\theta(x|z)] - D_{KL}(q_\phi(z|x) \| P(z))

Правая часть этого неравенства называется нижней границей свидетельства (Evidence Lower Bound, ELBO). Она состоит из двух слагаемых:

  • Ошибка реконструкции (reconstruction loss): \mathbb{E}_{q_\phi(z|x)}[\log P_\theta(x|z)] — насколько хорошо декодер восстанавливает исходный образец из скрытого представления.
  • Регуляризационный член (KL-дивергенция): D_{KL}(q_\phi(z|x) \| P(z)) — мера расхождения между апостериорным распределением q_\phi(z|x) и априорным распределением P(z) (обычно стандартным нормальным). Этот член обеспечивает гладкость скрытого пространства и предотвращает переобучение.

Оптимизация ELBO по параметрам \theta и \phi является корректной задачей, поскольку максимизация нижней границы приводит к увеличению самого правдоподобия. Действительно, логарифм правдоподобия можно разложить как:

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

где D_{KL} \ge 0, поэтому \log P_\theta(x) \ge \mathcal{L}.

Приём репараметризации

Основная техническая трудность при оптимизации ELBO заключается в том, что операция семплирования z \sim q_\phi(z|x) недифференцируема по параметрам \phi. Приём репараметризации обходит эту проблему: вместо прямой генерации z из распределения q_\phi(z|x) вводится вспомогательная случайная переменная \varepsilon \sim \mathcal{N}(0, I), и z выражается как детерминированная функция от \varepsilon и параметров \phi.

В случае гауссовского апостериорного распределения q_\phi(z|x) = \mathcal{N}(z; \mu_\phi(x), \sigma_\phi^2(x) I) приём репараметризации записывается как:

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

Это позволяет вычислять градиенты по \phi стандартным образом, так как вся случайность теперь сосредоточена в \varepsilon, независимом от параметров модели.

Архитектура

Вариационный автокодировщик состоит из двух основных компонентов:

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

Процесс работы VAE включает следующие этапы:

  1. Входной образец x подаётся на энкодер, который вычисляет параметры распределения \mu_\phi(x) и \log \sigma_\phi^2(x).
  2. С помощью приёма репараметризации из этого распределения семплируется скрытый вектор z.
  3. Скрытый вектор z подаётся на декодер, который восстанавливает образец \hat{x} (или вычисляет параметры распределения P_\theta(x|z)).
  4. Вычисляется функция потерь — отрицательный ELBO, состоящий из ошибки реконструкции и KL-дивергенции.
  5. Градиенты функции потерь распространяются обратно через всю сеть (обратное распространение ошибки), обновляя параметры как энкодера, так и декодера.

Свойства латентного пространства

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

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

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

Обучение

Обучение VAE — это задача максимизации ELBO с использованием стохастического градиентного спуска. Функция потерь для одного образца имеет вид:

\mathcal{L}(\theta, \phi; x) = - \mathbb{E}_{q_\phi(z|x)}[\log P_\theta(x|z)] + D_{KL}(q_\phi(z|x) \| P(z))

Первый член (отрицательная ошибка реконструкции) штрафует модель за неточное восстановление входных данных. Для изображений в качестве \log P_\theta(x|z) обычно используется бинарная или гауссовская кросс-энтропия. Для непрерывных данных ошибка реконструкции пропорциональна среднеквадратичному отклонению \|x - \hat{x}\|^2, для бинарных — перекрёстной энтропии.

Второй член (KL-дивергенция) действует как регуляризатор, «притягивая» апостериорное распределение q_\phi(z|x) к априорному P(z) = \mathcal{N}(0, I). В случае гауссовских распределений KL-дивергенция вычисляется аналитически:

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

Эта регуляризация обеспечивает два важных свойства:

  • Непрерывность скрытого пространства: близкие точки в скрытом пространстве соответствуют семантически близким образцам.
  • Полнота скрытого пространства: любая точка из априорного распределения \mathcal{N}(0, I) при пропуске через декодер даёт осмысленный образец.

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

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

Разновидности VAE

За годы развития предложено множество модификаций базовой архитектуры, нацеленных на улучшение качества генерации, интерпретируемости или применимости к конкретным типам данных. Наиболее известные из них:

Conditional VAE (CVAE)

Добавляет условие c (метка класса, атрибуты) на вход энкодеру q_\phi(z|x,c) и декодеру p_\theta(x|z,c). Позволяет контролировать свойства генерируемых объектов, например, генерировать изображения цифр заданного класса или изменять атрибуты лица (возраст, эмоция). Предложена в работе Sohn et al. (2015).

β-VAE

Вводит множитель \beta > 1 перед KL-членом:

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

Более сильная регуляризация способствует выделению независимых факторов вариации в латентных размерностях (disentanglement), что улучшает интерпретируемость и позволяет управлять отдельными семантическими атрибутами. Предложена в работе Higgins et al. (2017).

VQ-VAE (Vector Quantized VAE)

Использует дискретные латентные коды z из обучаемого словаря векторов. Априорное распределение моделируется авторегрессионно (например, PixelCNN). Сочетает высокое качество сжатия и генерации, активно применяется в синтезе речи, музыки и изображений (например, в моделях WaveNet, Jukebox). Предложена в работе van den Oord et al. (2017).

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

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

VAE-GAN гибриды

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

Динамические VAE

Предназначены для моделирования последовательных данных (временные ряды, видео). Они вводят скрытые переменные, эволюционирующие во времени, что позволяет прогнозировать и генерировать динамические сцены. Подробный обзор представлен в работе Girin et al. (2020).

Применения

Вариационные автокодировщики находят применение в широком спектре областей:

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

Современные вызовы и ограничения

Несмотря на успехи, VAE сталкиваются с рядом фундаментальных проблем:

  • Размытость генерируемых образцов (blurry samples): VAE часто дают менее чёткие изображения по сравнению с GAN или диффузионными моделями. Это связано с тем, что оптимизация ELBO поощряет модель восстанавливать усреднённое по всем возможным z значение, что приводит к сглаживанию. Стандартный VAE с поэлементной независимой функцией правдоподобия (MSE или кросс-энтропия) оптимизирует пиксельное правдоподобие, а не перцептивное качество.
  • Коллапс апостериорного распределения (posterior collapse): в некоторых случаях вариационное распределение q_\phi(z|x) перестаёт зависеть от входных данных x и сходится к априорному распределению P(z). В результате скрытые переменные становятся неинформативными, и модель фактически перестаёт использовать скрытое пространство. Проблема особенно остра для моделей с мощными авторегрессионными декодерами.
  • Вычислительная сложность: обучение VAE на больших наборах данных требует значительных вычислительных ресурсов, что влечёт как финансовые, так и экологические издержки.
  • Оценка качества: как и для других генеративных моделей, остаётся открытой проблема объективной оценки качества генерируемых образцов.
  • Качество против разнообразия (quality vs. diversity trade-off): существует внутреннее противоречие между стремлением к высокому качеству отдельных образцов и необходимостью покрывать всё многообразие данных.
  • Предположение о факторизованном апостериорном: диагональное гауссовское приближение q_\phi(z|x) может быть недостаточно выразительным для сложных данных, что ограничивает точность приближения.
  • Трудности с дискретными данными: хотя VAE справляется с бинарными изображениями, моделирование текста и других дискретных последовательностей требует дополнительных приёмов (Gumbel-Softmax, дискретные латентные переменные).

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

Несмотря на перечисленные недостатки, VAE обладают рядом важных достоинств, которые обеспечивают их широкое применение:

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

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

См. также

Литература

  • Kingma D. P., Welling M. ICLR. — 2014.
  • Kingma D. P., Welling M. Foundations and Trends in Machine Learning. — 2019. — Т. 12. — № 4. — С. 307–392.
  • Rezende D. J., Mohamed S., Wierstra D. Proceedings of the 31st International Conference on Machine Learning (ICML). — 2014. — С. 1278–1286.
  • Sohn K., Lee H., Yan X. Advances in Neural Information Processing Systems (NeurIPS). — 2015. — С. 3483–3491.
  • Higgins I., Matthey L., Pal A. et al. Proceedings of the International Conference on Learning Representations (ICLR). — 2017.
  • van den Oord A., Vinyals O., Kavukcuoglu K. Advances in Neural Information Processing Systems (NeurIPS). — 2017. — С. 6309–6318.
  • Asperti A., Evangelista D., Loli Piccolomini E. arXiv:2103.01071. — 2021.
  • Kalingeri V. arXiv:2206.09891. — 2022.
  • Yu R. arXiv:2006.10273. — 2020.
  • Fabius O., van Amersfoort J. R. arXiv:2206.09891. — 2022.
  • Girin L., Leglaive S., Bie X., Diard J., Hueber T., Alameda-Pineda X. arXiv:2008.12595. — 2020.
  • Stats. — 2026. — Т. 9. — № 2. — С. 23.
  • Journal of Big Data. — Springer, 2025. — Т. 12. — № 230.
  • Goodfellow I., Bengio Y., Courville A. Deep Learning. — MIT Press, 2016. — ISBN 978-0262035613