Вариационный автокодировщик
Материал из MachineLearning.
м (→См. также) |
(→Архитектура) |
||
| (1 промежуточная версия не показана) | |||
| Строка 1: | Строка 1: | ||
| - | {{well|Статья написана с использованием LLM '''DeepSeek-V4 Preview''' и проверена участником [[Участник:Stepan Suvorov| | + | {{well|Статья написана с использованием LLM '''DeepSeek-V4 Preview''' и проверена участником [[Участник:Stepan Suvorov|С.А.Суворов]] 18:23, 13 июля 2026 (MSD). Данная статья является объединением статей [[Участник:Stepan Suvorov|С.А.Суворов]] и [[Участник:Kirill_Savitskii|К.А.Савицкий]] на тему: Вариационный автокодировщик }} |
[[Категория:Генеративные модели]] | [[Категория:Генеративные модели]] | ||
| Строка 5: | Строка 5: | ||
[[Категория:Глубокое обучение]] | [[Категория:Глубокое обучение]] | ||
| - | '''Вариационный автокодировщик''' (англ. variational autoencoder, VAE) — класс [[Генеративная модель|генеративных моделей]] [[Машинное обучение|машинного обучения]], сочетающих | + | '''Вариационный автокодировщик''' (англ. variational autoencoder, VAE) — класс [[Генеративная модель|генеративных моделей]] [[Машинное обучение|машинного обучения]], сочетающих [[Вариационный байесовский вывод|вариационный вывод]] с гибкостью [[Глубокое обучение|глубоких нейронных сетей]]. В отличие от классического [[Автокодировщик|автокодировщика]], который отображает каждый входной образец в одну точку [[Скрытое пространство|скрытого пространства]], VAE моделирует скрытое представление как вероятностное распределение, что позволяет не только сжимать данные, но и генерировать новые образцы. Модель относится к классу глубоких генеративных моделей с латентными переменными и обучается методом [[Стохастический градиентный спуск|стохастического градиентного спуска]] путём максимизации вариационной нижней границы правдоподобия ([[ELBO]]). |
Вариационные автокодировщики являются одной из фундаментальных архитектур в области [[Обучение без учителя|обучения без учителя]] и широко применяются для [[Генерация изображений|генерации изображений]], текстов, а также в задачах представления данных. Благодаря своей строгой вероятностной основе и относительно стабильному обучению VAE остаются востребованным инструментом в исследовательской и инженерной практике. | Вариационные автокодировщики являются одной из фундаментальных архитектур в области [[Обучение без учителя|обучения без учителя]] и широко применяются для [[Генерация изображений|генерации изображений]], текстов, а также в задачах представления данных. Благодаря своей строгой вероятностной основе и относительно стабильному обучению VAE остаются востребованным инструментом в исследовательской и инженерной практике. | ||
__TOC__ | __TOC__ | ||
| + | |||
| + | == Интуиция == | ||
| + | |||
| + | Классический автокодировщик учится отображать входной объект <tex>x</tex> в вектор скрытого кода <tex>z</tex> и восстанавливать по нему <tex>\hat{x}</tex>. Однако полученное латентное пространство часто оказывается нерегулярным — маленькие смещения в <tex>z</tex> могут приводить к бессмысленным декодированным образам, а случайный выбор <tex>z</tex> не гарантирует порождения реалистичного примера. | ||
| + | |||
| + | VAE решает эту проблему, моделируя латентное представление не как точку, а как вероятностное распределение. Энкодер выдаёт параметры [[Нормальное распределение|нормального распределения]] (среднее <tex>\mu</tex> и дисперсию <tex>\sigma^2</tex>), из которого затем сэмплируется конкретный код <tex>z</tex>. Декодер, в свою очередь, задаёт распределение <tex>p(x|z)</tex>. Обучение максимизирует правдоподобие восстановленных данных, одновременно удерживая латентное распределение каждого примера близким к стандартному нормальному [[Априорное распределение|априорному распределению]] <tex>\mathcal{N}(0, I)</tex>. Это обеспечивает непрерывность и гладкость латентного пространства: два близких в смысле метрики кода порождают похожие декодированные объекты. | ||
== Определение и ключевые понятия == | == Определение и ключевые понятия == | ||
| Строка 31: | Строка 37: | ||
* '''1980–1990-е годы''' — '''[[Автокодировщик]]и (Autoencoders)''': С появлением [[Обратное распространение ошибки|обратного распространения ошибки]] становятся возможными нелинейные обобщения 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 ([[Условная генерация| | + | * '''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]] для временных рядов, а также гибридные архитектуры, сочетающие VAE с [[Генеративная состязательная сеть|GAN]] или [[Нормализующие потоки|нормализующими потоками]]. |
| - | * '''2020-е годы''' — '''Зрелость технологии''': VAE становятся стандартным инструментом в [[Медицинская визуализация|медицинской визуализации]], генерации молекулярных структур и других областях. Активно ведутся исследования по преодолению фундаментальных ограничений VAE, таких как [[Коллапс апостериорного распределения|коллапс апостериорного распределения]]. | + | * '''2020-е годы''' — '''Зрелость технологии''': VAE становятся стандартным инструментом в [[Медицинская визуализация|медицинской визуализации]], генерации молекулярных структур, синтезе речи и других областях. Активно ведутся исследования по преодолению фундаментальных ограничений VAE, таких как [[Коллапс апостериорного распределения|коллапс апостериорного распределения]], а также по интеграции VAE в диффузионные модели (например, Latent Diffusion Models, где VAE используется для сжатия в латентное пространство перед диффузией). |
== Математическая основа == | == Математическая основа == | ||
| Строка 60: | Строка 64: | ||
* '''Регуляризационный член''' ([[Расхождение Кульбака — Лейблера|KL-дивергенция]]): <tex>D_{KL}(q_\phi(z|x) \| P(z))</tex> — мера расхождения между апостериорным распределением <tex>q_\phi(z|x)</tex> и априорным распределением <tex>P(z)</tex> (обычно стандартным нормальным). Этот член обеспечивает гладкость скрытого пространства и предотвращает [[Переобучение|переобучение]]. | * '''Регуляризационный член''' ([[Расхождение Кульбака — Лейблера|KL-дивергенция]]): <tex>D_{KL}(q_\phi(z|x) \| P(z))</tex> — мера расхождения между апостериорным распределением <tex>q_\phi(z|x)</tex> и априорным распределением <tex>P(z)</tex> (обычно стандартным нормальным). Этот член обеспечивает гладкость скрытого пространства и предотвращает [[Переобучение|переобучение]]. | ||
| - | Оптимизация ELBO по параметрам <tex>\theta</tex> и <tex>\phi</tex> является корректной задачей, поскольку максимизация нижней границы приводит к увеличению самого правдоподобия. | + | Оптимизация ELBO по параметрам <tex>\theta</tex> и <tex>\phi</tex> является корректной задачей, поскольку максимизация нижней границы приводит к увеличению самого правдоподобия. Действительно, логарифм правдоподобия можно разложить как: |
| + | |||
| + | <tex>\log P_\theta(x) = D_{KL}(q_\phi(z|x) \parallel P_\theta(z|x)) + \mathcal{L}(\theta, \phi; x),</tex> | ||
| + | |||
| + | где <tex>D_{KL} \ge 0</tex>, поэтому <tex>\log P_\theta(x) \ge \mathcal{L}</tex>. | ||
=== Приём репараметризации === | === Приём репараметризации === | ||
| Строка 76: | Строка 84: | ||
Вариационный автокодировщик состоит из двух основных компонентов: | Вариационный автокодировщик состоит из двух основных компонентов: | ||
| - | * ''' | + | * '''Энкодер''' (кодировщик, распознающая модель)''' <tex>q_\phi(z|x)</tex> — нейронная сеть, которая принимает на вход образец <tex>x</tex> и выдаёт параметры распределения в скрытом пространстве: математическое ожидание <tex>\mu_\phi(x)</tex> и логарифм дисперсии <tex>\log \sigma_\phi^2(x)</tex> (для численной устойчивости). Выходом энкодера является не сам скрытый вектор, а распределение, из которого он будет семплирован. Обычно это [[Свёрточная нейронная сеть|свёрточная]] (для изображений) или [[Полносвязная нейронная сеть|полносвязная]] архитектура. |
| - | * ''' | + | * '''Декодер''' (раскодировщик, генеративная модель)''' <tex>P_\theta(x|z)</tex> — нейронная сеть, которая принимает на вход скрытый вектор <tex>z</tex> и восстанавливает исходный образец <tex>x</tex> (или параметры распределения, из которого он мог бы быть сгенерирован). Для изображений часто используется [[Транспонированная свёртка|транспонированная]] свёрточная сеть, выдающая параметры [[Распределение Бернулли|Бернулли]] (для бинарных пикселей) или среднее [[Нормальное распределение|гауссовского распределения]] (для непрерывных данных). |
Процесс работы VAE включает следующие этапы: | Процесс работы VAE включает следующие этапы: | ||
| Строка 87: | Строка 95: | ||
# Вычисляется [[Функция потерь|функция потерь]] — отрицательный ELBO, состоящий из ошибки реконструкции и KL-дивергенции. | # Вычисляется [[Функция потерь|функция потерь]] — отрицательный ELBO, состоящий из ошибки реконструкции и KL-дивергенции. | ||
# [[Градиент|Градиенты]] функции потерь распространяются обратно через всю сеть ([[Обратное распространение ошибки|обратное распространение ошибки]]), обновляя параметры как энкодера, так и декодера. | # [[Градиент|Градиенты]] функции потерь распространяются обратно через всю сеть ([[Обратное распространение ошибки|обратное распространение ошибки]]), обновляя параметры как энкодера, так и декодера. | ||
| + | |||
| + | === Свойства латентного пространства === | ||
| + | |||
| + | Благодаря регуляризации через KL-дивергенцию апостериорное распределение каждого примера «стягивается» к стандартному нормальному, а латентное пространство приобретает следующие свойства: | ||
| + | |||
| + | * '''Непрерывность''': близкие точки <tex>z</tex> декодируются в семантически похожие объекты. Это обеспечивает плавные переходы при интерполяции. | ||
| + | * '''Полнота''': случайная точка, сэмплированная из априорного распределения <tex>p(z)</tex>, с высокой вероятностью порождает осмысленный пример. | ||
| + | * '''Гладкая интерполяция''': линейный переход между двумя латентными кодами даёт плавное морфирование объектов, что полезно для визуализации и редактирования. | ||
| + | |||
| + | Эти качества делают VAE удобным для задач генерации, редактирования атрибутов (например, «добавить улыбку») и [[Обучение представлений|обучения интерпретируемых представлений]]. | ||
== Обучение == | == Обучение == | ||
| Строка 94: | Строка 112: | ||
<tex>\mathcal{L}(\theta, \phi; x) = - \mathbb{E}_{q_\phi(z|x)}[\log P_\theta(x|z)] + D_{KL}(q_\phi(z|x) \| P(z))</tex> | <tex>\mathcal{L}(\theta, \phi; x) = - \mathbb{E}_{q_\phi(z|x)}[\log P_\theta(x|z)] + D_{KL}(q_\phi(z|x) \| P(z))</tex> | ||
| - | Первый член (отрицательная ошибка реконструкции) штрафует модель за неточное восстановление входных данных. Для изображений в качестве <tex>\log P_\theta(x|z)</tex> обычно используется бинарная или гауссовская [[Кросс-энтропия|кросс-энтропия]]. | + | Первый член (отрицательная ошибка реконструкции) штрафует модель за неточное восстановление входных данных. Для изображений в качестве <tex>\log P_\theta(x|z)</tex> обычно используется бинарная или гауссовская [[Кросс-энтропия|кросс-энтропия]]. Для непрерывных данных ошибка реконструкции пропорциональна среднеквадратичному отклонению <tex>\|x - \hat{x}\|^2</tex>, для бинарных — перекрёстной энтропии. |
Второй член (KL-дивергенция) действует как [[Регуляризация (машинное обучение)|регуляризатор]], «притягивая» апостериорное распределение <tex>q_\phi(z|x)</tex> к априорному <tex>P(z) = \mathcal{N}(0, I)</tex>. В случае гауссовских распределений KL-дивергенция вычисляется аналитически: | Второй член (KL-дивергенция) действует как [[Регуляризация (машинное обучение)|регуляризатор]], «притягивая» апостериорное распределение <tex>q_\phi(z|x)</tex> к априорному <tex>P(z) = \mathcal{N}(0, I)</tex>. В случае гауссовских распределений KL-дивергенция вычисляется аналитически: | ||
| Строка 104: | Строка 122: | ||
* '''Непрерывность скрытого пространства''': близкие точки в скрытом пространстве соответствуют семантически близким образцам. | * '''Непрерывность скрытого пространства''': близкие точки в скрытом пространстве соответствуют семантически близким образцам. | ||
* '''Полнота скрытого пространства''': любая точка из априорного распределения <tex>\mathcal{N}(0, I)</tex> при пропуске через декодер даёт осмысленный образец. | * '''Полнота скрытого пространства''': любая точка из априорного распределения <tex>\mathcal{N}(0, I)</tex> при пропуске через декодер даёт осмысленный образец. | ||
| + | |||
| + | На практике часто используют весовой коэффициент <tex>\beta</tex> перед KL-слагаемым (см. раздел [[#Разновидности VAE|Разновидности VAE]]), чтобы управлять балансом между качеством восстановления и регулярностью латентного пространства. | ||
| + | |||
| + | Обучение ведётся мини-батчами с помощью оптимизаторов типа [[Adam]] или [[RMSProp]]. Поскольку ELBO является оценкой правдоподобия, модель также позволяет вычислять [[Перплексия|перплексию]] и сравнивать различные конфигурации. | ||
| + | |||
| + | == Разновидности VAE == | ||
| + | |||
| + | За годы развития предложено множество модификаций базовой архитектуры, нацеленных на улучшение качества генерации, интерпретируемости или применимости к конкретным типам данных. Наиболее известные из них: | ||
| + | |||
| + | === Conditional VAE (CVAE) === | ||
| + | |||
| + | Добавляет условие <tex>c</tex> (метка класса, атрибуты) на вход энкодеру <tex>q_\phi(z|x,c)</tex> и декодеру <tex>p_\theta(x|z,c)</tex>. Позволяет контролировать свойства генерируемых объектов, например, генерировать изображения цифр заданного класса или изменять атрибуты лица (возраст, эмоция). Предложена в работе Sohn et al. (2015). | ||
| + | |||
| + | === β-VAE === | ||
| + | |||
| + | Вводит множитель <tex>\beta > 1</tex> перед KL-членом: | ||
| + | |||
| + | <tex>\mathcal{L} = \mathbb{E}_{q_\phi(z|x)}[\log p_\theta(x|z)] - \beta \, D_{KL}(q_\phi(z|x) \parallel p(z))</tex> | ||
| + | |||
| + | Более сильная регуляризация способствует выделению независимых факторов вариации в латентных размерностях (disentanglement), что улучшает интерпретируемость и позволяет управлять отдельными семантическими атрибутами. Предложена в работе Higgins et al. (2017). | ||
| + | |||
| + | === VQ-VAE (Vector Quantized VAE) === | ||
| + | |||
| + | Использует дискретные латентные коды <tex>z</tex> из обучаемого словаря векторов. Априорное распределение моделируется авторегрессионно (например, [[PixelCNN]]). Сочетает высокое качество сжатия и генерации, активно применяется в синтезе речи, музыки и изображений (например, в моделях WaveNet, Jukebox). Предложена в работе van den Oord et al. (2017). | ||
| + | |||
| + | === Иерархические VAE === | ||
| + | |||
| + | Вводят несколько уровней стохастических латентных переменных <tex>z_1, z_2, \dots</tex>, что позволяет улавливать глобальные и локальные структуры данных (например, общую композицию изображения и мелкие детали). Тренируются с использованием лестничных сетей или нормализующих потоков для более выразительных апостериорных приближений. | ||
| + | |||
| + | === VAE-GAN гибриды === | ||
| + | |||
| + | Совмещают декодер VAE с [[Дискриминатор|дискриминатором]] [[Генеративно-состязательная сеть|GAN]], где потери от GAN улучшают визуальное качество генерируемых изображений, а VAE-регуляризация стабилизирует обучение и предотвращает режим коллапса. Это позволяет получать более чёткие образцы, чем стандартный VAE. | ||
| + | |||
| + | === Динамические VAE === | ||
| + | |||
| + | Предназначены для моделирования последовательных данных (временные ряды, видео). Они вводят скрытые переменные, эволюционирующие во времени, что позволяет прогнозировать и генерировать динамические сцены. Подробный обзор представлен в работе Girin et al. (2020). | ||
== Применения == | == Применения == | ||
| Строка 109: | Строка 163: | ||
Вариационные автокодировщики находят применение в широком спектре областей: | Вариационные автокодировщики находят применение в широком спектре областей: | ||
| - | * '''[[Генерация изображений]]''': создание новых реалистичных изображений, интерполяция между образцами, редактирование изображений через манипуляции в скрытом пространстве. | + | * '''[[Генерация изображений]]''': создание новых реалистичных изображений, интерполяция между образцами, редактирование изображений через манипуляции в скрытом пространстве. VAE используются как компоненты [[Диффузионная модель|диффузионных моделей]] (Latent Diffusion Models, Stable Diffusion) для сжатия в латентное пространство перед диффузией. |
| - | * '''[[Медицинская визуализация]]''': генерация синтетических медицинских изображений для [[Аугментация данных|аугментации данных]], [[Сегментация изображений|сегментация]] анатомических структур, [[Обнаружение аномалий|обнаружение аномалий]]. | + | * '''[[Медицинская визуализация]]''': генерация синтетических медицинских изображений для [[Аугментация данных|аугментации данных]], [[Сегментация изображений|сегментация]] анатомических структур, [[Обнаружение аномалий|обнаружение аномалий]] (например, выявление опухолей по ошибке реконструкции). |
| - | * '''[[Обработка естественного языка]]''': генерация текста, моделирование диалогов, представление слов и предложений в непрерывном пространстве. | + | * '''[[Обработка естественного языка]]''': генерация текста, моделирование диалогов, представление слов и предложений в непрерывном пространстве (в том числе для семантического поиска). |
| - | * '''[[Биоинформатика]] и [[Открытие лекарств]]''': генерация молекулярных структур с заданными свойствами. | + | * '''[[Биоинформатика]] и [[Открытие лекарств]]''': генерация молекулярных структур с заданными свойствами (например, в SMILES-представлениях) для виртуального скрининга и оптимизации лекарственных соединений. |
* '''Представление данных''': обучение сжатых, интерпретируемых представлений для последующих задач классификации и кластеризации. | * '''Представление данных''': обучение сжатых, интерпретируемых представлений для последующих задач классификации и кластеризации. | ||
| Строка 122: | Строка 176: | ||
* '''Видео и временные ряды''': [[Динамический VAE|динамические VAE]] для моделирования последовательных данных, прогнозирования и генерации видео. | * '''Видео и временные ряды''': [[Динамический VAE|динамические VAE]] для моделирования последовательных данных, прогнозирования и генерации видео. | ||
| + | |||
| + | * '''Синтез речи и музыки''': [[VQ-VAE]] и его варианты (WaveNet, Jukebox) преобразуют аудиосигналы в дискретные коды и обратно, обеспечивая высококачественный нейронный синтез. | ||
| + | |||
| + | * '''Обучение разложенных представлений (disentanglement)''': [[β-VAE]] и FactorVAE применяются для выделения независимых факторов (освещение, поза, цвет) без учителя, что важно для интерпретируемого [[Искусственный интеллект|ИИ]]. | ||
| + | |||
| + | * '''Реконструкция и восстановление данных''': VAE используются для [[Inpainting|заполнения пропущенных участков]], [[Шумоподавление|шумоподавления]] и сжатия данных с контролируемым качеством. | ||
== Современные вызовы и ограничения == | == Современные вызовы и ограничения == | ||
| Строка 127: | Строка 187: | ||
Несмотря на успехи, VAE сталкиваются с рядом фундаментальных проблем: | Несмотря на успехи, VAE сталкиваются с рядом фундаментальных проблем: | ||
| - | * '''Размытость генерируемых образцов''' (blurry samples): VAE часто дают менее чёткие изображения по сравнению с [[Генеративно-состязательная сеть|GAN]] или [[Диффузионная модель|диффузионными моделями]]. Это связано с тем, что оптимизация ELBO поощряет модель восстанавливать усреднённое по всем возможным <tex>z</tex> значение, что приводит к сглаживанию. | + | * '''Размытость генерируемых образцов''' (blurry samples): VAE часто дают менее чёткие изображения по сравнению с [[Генеративно-состязательная сеть|GAN]] или [[Диффузионная модель|диффузионными моделями]]. Это связано с тем, что оптимизация ELBO поощряет модель восстанавливать усреднённое по всем возможным <tex>z</tex> значение, что приводит к сглаживанию. Стандартный VAE с поэлементной независимой функцией правдоподобия (MSE или кросс-энтропия) оптимизирует пиксельное правдоподобие, а не перцептивное качество. |
* '''[[Коллапс апостериорного распределения]]''' (posterior collapse): в некоторых случаях вариационное распределение <tex>q_\phi(z|x)</tex> перестаёт зависеть от входных данных <tex>x</tex> и сходится к априорному распределению <tex>P(z)</tex>. В результате скрытые переменные становятся неинформативными, и модель фактически перестаёт использовать скрытое пространство. Проблема особенно остра для моделей с мощными авторегрессионными декодерами. | * '''[[Коллапс апостериорного распределения]]''' (posterior collapse): в некоторых случаях вариационное распределение <tex>q_\phi(z|x)</tex> перестаёт зависеть от входных данных <tex>x</tex> и сходится к априорному распределению <tex>P(z)</tex>. В результате скрытые переменные становятся неинформативными, и модель фактически перестаёт использовать скрытое пространство. Проблема особенно остра для моделей с мощными авторегрессионными декодерами. | ||
| Строка 136: | Строка 196: | ||
* '''Качество против разнообразия''' (quality vs. diversity trade-off): существует внутреннее противоречие между стремлением к высокому качеству отдельных образцов и необходимостью покрывать всё многообразие данных. | * '''Качество против разнообразия''' (quality vs. diversity trade-off): существует внутреннее противоречие между стремлением к высокому качеству отдельных образцов и необходимостью покрывать всё многообразие данных. | ||
| + | |||
| + | * '''Предположение о факторизованном апостериорном''': диагональное гауссовское приближение <tex>q_\phi(z|x)</tex> может быть недостаточно выразительным для сложных данных, что ограничивает точность приближения. | ||
| + | |||
| + | * '''Трудности с дискретными данными''': хотя VAE справляется с бинарными изображениями, моделирование текста и других дискретных последовательностей требует дополнительных приёмов ([[Gumbel-Softmax]], дискретные латентные переменные). | ||
| + | |||
| + | === Преимущества VAE === | ||
| + | |||
| + | Несмотря на перечисленные недостатки, VAE обладают рядом важных достоинств, которые обеспечивают их широкое применение: | ||
| + | |||
| + | * '''Принципиальная вероятностная основа''': модель явно оптимизирует оценку правдоподобия, что даёт теоретически обоснованный критерий качества и возможность байесовского вывода. В отличие от GAN, VAE не страдает от проблемы нестабильности обучения, связанной с минимаксной игрой. | ||
| + | |||
| + | * '''Структурированное латентное пространство''': непрерывность и гладкость позволяют выполнять осмысленную интерполяцию, семантическую арифметику и направленную генерацию. Это делает VAE удобным инструментом для исследования свойств данных. | ||
| + | |||
| + | * '''Стабильное обучение''': в отличие от [[Генеративно-состязательная сеть|GAN]], VAE оптимизирует одну чёткую функцию потерь без минимаксных игр, что упрощает тренировку и снижает риск расходимости. Обучение менее чувствительно к гиперпараметрам и архитектурным выборам. | ||
| + | |||
| + | * '''Интерпретируемость''': модификации типа [[β-VAE]] способствуют разложению факторов вариации, что ценно для научных приложений и [[Обучение представлений|обучения представлений]], позволяя выделять независимые семантические атрибуты. | ||
Среди перспективных направлений исследований — разработка методов борьбы с коллапсом апостериорного распределения, создание гибридных архитектур, сочетающих VAE с GAN или диффузионными моделями, повышение вычислительной эффективности, а также развитие теоретических основ VAE. | Среди перспективных направлений исследований — разработка методов борьбы с коллапсом апостериорного распределения, создание гибридных архитектур, сочетающих VAE с GAN или диффузионными моделями, повышение вычислительной эффективности, а также развитие теоретических основ VAE. | ||
| Строка 146: | Строка 222: | ||
* [[Генеративная состязательная сеть]] | * [[Генеративная состязательная сеть]] | ||
* [[Диффузионная модель]] | * [[Диффузионная модель]] | ||
| + | * [[ELBO]] | ||
| + | * [[Нормализующие потоки]] | ||
| + | * [[β-VAE]] | ||
| + | * [[VQ-VAE]] | ||
== Литература == | == Литература == | ||
| Строка 154: | Строка 234: | ||
|заглавие = ICLR | |заглавие = ICLR | ||
|год = 2014 | |год = 2014 | ||
| + | |arxiv = 1312.6114 | ||
}} | }} | ||
| Строка 164: | Строка 245: | ||
|номер = 4 | |номер = 4 | ||
|страницы = 307–392 | |страницы = 307–392 | ||
| + | }} | ||
| + | |||
| + | * {{статья | ||
| + | |автор = 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 | ||
| + | |arxiv = 1401.4082 | ||
| + | }} | ||
| + | |||
| + | * {{статья | ||
| + | |автор = 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 | ||
| + | |arxiv = 1711.00937 | ||
}} | }} | ||
| Строка 221: | Строка 335: | ||
}} | }} | ||
| - | * {{ | + | * {{книга |
|автор = Goodfellow I., Bengio Y., Courville A. | |автор = Goodfellow I., Bengio Y., Courville A. | ||
|заглавие = Deep Learning | |заглавие = Deep Learning | ||
| Строка 227: | Строка 341: | ||
|год = 2016 | |год = 2016 | ||
|тип = книга | |тип = книга | ||
| + | |isbn = 978-0262035613 | ||
}} | }} | ||
Текущая версия
| | Статья написана с использованием LLM DeepSeek-V4 Preview и проверена участником С.А.Суворов 18:23, 13 июля 2026 (MSD). Данная статья является объединением статей С.А.Суворов и К.А.Савицкий на тему: Вариационный автокодировщик |
Вариационный автокодировщик (англ. variational autoencoder, VAE) — класс генеративных моделей машинного обучения, сочетающих вариационный вывод с гибкостью глубоких нейронных сетей. В отличие от классического автокодировщика, который отображает каждый входной образец в одну точку скрытого пространства, VAE моделирует скрытое представление как вероятностное распределение, что позволяет не только сжимать данные, но и генерировать новые образцы. Модель относится к классу глубоких генеративных моделей с латентными переменными и обучается методом стохастического градиентного спуска путём максимизации вариационной нижней границы правдоподобия (ELBO).
Вариационные автокодировщики являются одной из фундаментальных архитектур в области обучения без учителя и широко применяются для генерации изображений, текстов, а также в задачах представления данных. Благодаря своей строгой вероятностной основе и относительно стабильному обучению VAE остаются востребованным инструментом в исследовательской и инженерной практике.
Содержание |
Интуиция
Классический автокодировщик учится отображать входной объект в вектор скрытого кода
и восстанавливать по нему
. Однако полученное латентное пространство часто оказывается нерегулярным — маленькие смещения в
могут приводить к бессмысленным декодированным образам, а случайный выбор
не гарантирует порождения реалистичного примера.
VAE решает эту проблему, моделируя латентное представление не как точку, а как вероятностное распределение. Энкодер выдаёт параметры нормального распределения (среднее и дисперсию
), из которого затем сэмплируется конкретный код
. Декодер, в свою очередь, задаёт распределение
. Обучение максимизирует правдоподобие восстановленных данных, одновременно удерживая латентное распределение каждого примера близким к стандартному нормальному априорному распределению
. Это обеспечивает непрерывность и гладкость латентного пространства: два близких в смысле метрики кода порождают похожие декодированные объекты.
Определение и ключевые понятия
Пусть задан набор наблюдений , порождённых неизвестным распределением
. Предполагается, что данные порождаются некоторым скрытым (латентным) процессом: сначала из априорного распределения
порождается скрытая переменная
, затем из условного распределения
— наблюдение
. Задача обучения состоит в том, чтобы, имея только наблюдения
, восстановить параметры модели
и
, максимизируя логарифм правдоподобия:
Прямое вычисление этого интеграла, однако, практически всегда является вычислительно неразрешимым. Кроме того, апостериорное распределение , необходимое для обучения, также оказывается недоступным в аналитическом виде.
Вариационный автокодировщик предлагает обходной путь: вместо точного вычисления апостериорного распределения вводится его параметрическая аппроксимация (также называемая распознающей моделью, recognition model), и задача обучения формулируется как совместная оптимизация параметров
(генеративная модель, декодер) и
(вариационная аппроксимация, энкодер).
В отличие от детерминированного автокодировщика, в VAE энкодер выдаёт не точку в скрытом пространстве, а параметры распределения (обычно математическое ожидание и дисперсию), из которого затем семплируется скрытый вектор . Это вероятностное представление скрытого пространства позволяет генерировать новые данные, семплируя
из априорного распределения и пропуская его через декодер.
Исторический контекст
Развитие вариационных автокодировщиков органично вписывается в эволюцию методов снижения размерности и генеративного моделирования:
- 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 используется для сжатия в латентное пространство перед диффузией).
Математическая основа
Проблема неразрешимого правдоподобия
В классической постановке задачи генеративного моделирования требуется максимизировать логарифм правдоподобия:
Для сложных данных (изображения, текст) это интегрирование не имеет аналитического решения, а численные методы (например, Монте-Карло) оказываются вычислительно несостоятельными.
Вариационный вывод и ELBO
Вместо точного вычисления вводится параметрическая аппроксимация
. Для любой такой аппроксимации справедливо неравенство:
Правая часть этого неравенства называется нижней границей свидетельства (Evidence Lower Bound, ELBO). Она состоит из двух слагаемых:
- Ошибка реконструкции (reconstruction loss):
— насколько хорошо декодер восстанавливает исходный образец из скрытого представления.
- Регуляризационный член (KL-дивергенция):
— мера расхождения между апостериорным распределением
и априорным распределением
(обычно стандартным нормальным). Этот член обеспечивает гладкость скрытого пространства и предотвращает переобучение.
Оптимизация ELBO по параметрам и
является корректной задачей, поскольку максимизация нижней границы приводит к увеличению самого правдоподобия. Действительно, логарифм правдоподобия можно разложить как:
где , поэтому
.
Приём репараметризации
Основная техническая трудность при оптимизации ELBO заключается в том, что операция семплирования недифференцируема по параметрам
. Приём репараметризации обходит эту проблему: вместо прямой генерации
из распределения
вводится вспомогательная случайная переменная
, и
выражается как детерминированная функция от
и параметров
.
В случае гауссовского апостериорного распределения приём репараметризации записывается как:
Это позволяет вычислять градиенты по стандартным образом, так как вся случайность теперь сосредоточена в
, независимом от параметров модели.
Архитектура
Вариационный автокодировщик состоит из двух основных компонентов:
- Энкодер (кодировщик, распознающая модель)
— нейронная сеть, которая принимает на вход образец
и выдаёт параметры распределения в скрытом пространстве: математическое ожидание
и логарифм дисперсии
(для численной устойчивости). Выходом энкодера является не сам скрытый вектор, а распределение, из которого он будет семплирован. Обычно это свёрточная (для изображений) или полносвязная архитектура.
- Декодер (раскодировщик, генеративная модель)
— нейронная сеть, которая принимает на вход скрытый вектор
и восстанавливает исходный образец
(или параметры распределения, из которого он мог бы быть сгенерирован). Для изображений часто используется транспонированная свёрточная сеть, выдающая параметры Бернулли (для бинарных пикселей) или среднее гауссовского распределения (для непрерывных данных).
Процесс работы VAE включает следующие этапы:
- Входной образец
подаётся на энкодер, который вычисляет параметры распределения
и
.
- С помощью приёма репараметризации из этого распределения семплируется скрытый вектор
.
- Скрытый вектор
подаётся на декодер, который восстанавливает образец
(или вычисляет параметры распределения
).
- Вычисляется функция потерь — отрицательный ELBO, состоящий из ошибки реконструкции и KL-дивергенции.
- Градиенты функции потерь распространяются обратно через всю сеть (обратное распространение ошибки), обновляя параметры как энкодера, так и декодера.
Свойства латентного пространства
Благодаря регуляризации через KL-дивергенцию апостериорное распределение каждого примера «стягивается» к стандартному нормальному, а латентное пространство приобретает следующие свойства:
- Непрерывность: близкие точки
декодируются в семантически похожие объекты. Это обеспечивает плавные переходы при интерполяции.
- Полнота: случайная точка, сэмплированная из априорного распределения
, с высокой вероятностью порождает осмысленный пример.
- Гладкая интерполяция: линейный переход между двумя латентными кодами даёт плавное морфирование объектов, что полезно для визуализации и редактирования.
Эти качества делают VAE удобным для задач генерации, редактирования атрибутов (например, «добавить улыбку») и обучения интерпретируемых представлений.
Обучение
Обучение VAE — это задача максимизации ELBO с использованием стохастического градиентного спуска. Функция потерь для одного образца имеет вид:
Первый член (отрицательная ошибка реконструкции) штрафует модель за неточное восстановление входных данных. Для изображений в качестве обычно используется бинарная или гауссовская кросс-энтропия. Для непрерывных данных ошибка реконструкции пропорциональна среднеквадратичному отклонению
, для бинарных — перекрёстной энтропии.
Второй член (KL-дивергенция) действует как регуляризатор, «притягивая» апостериорное распределение к априорному
. В случае гауссовских распределений KL-дивергенция вычисляется аналитически:
Эта регуляризация обеспечивает два важных свойства:
- Непрерывность скрытого пространства: близкие точки в скрытом пространстве соответствуют семантически близким образцам.
- Полнота скрытого пространства: любая точка из априорного распределения
при пропуске через декодер даёт осмысленный образец.
На практике часто используют весовой коэффициент перед KL-слагаемым (см. раздел Разновидности VAE), чтобы управлять балансом между качеством восстановления и регулярностью латентного пространства.
Обучение ведётся мини-батчами с помощью оптимизаторов типа Adam или RMSProp. Поскольку ELBO является оценкой правдоподобия, модель также позволяет вычислять перплексию и сравнивать различные конфигурации.
Разновидности VAE
За годы развития предложено множество модификаций базовой архитектуры, нацеленных на улучшение качества генерации, интерпретируемости или применимости к конкретным типам данных. Наиболее известные из них:
Conditional VAE (CVAE)
Добавляет условие (метка класса, атрибуты) на вход энкодеру
и декодеру
. Позволяет контролировать свойства генерируемых объектов, например, генерировать изображения цифр заданного класса или изменять атрибуты лица (возраст, эмоция). Предложена в работе Sohn et al. (2015).
β-VAE
Вводит множитель перед KL-членом:
Более сильная регуляризация способствует выделению независимых факторов вариации в латентных размерностях (disentanglement), что улучшает интерпретируемость и позволяет управлять отдельными семантическими атрибутами. Предложена в работе Higgins et al. (2017).
VQ-VAE (Vector Quantized VAE)
Использует дискретные латентные коды из обучаемого словаря векторов. Априорное распределение моделируется авторегрессионно (например, PixelCNN). Сочетает высокое качество сжатия и генерации, активно применяется в синтезе речи, музыки и изображений (например, в моделях WaveNet, Jukebox). Предложена в работе van den Oord et al. (2017).
Иерархические VAE
Вводят несколько уровней стохастических латентных переменных , что позволяет улавливать глобальные и локальные структуры данных (например, общую композицию изображения и мелкие детали). Тренируются с использованием лестничных сетей или нормализующих потоков для более выразительных апостериорных приближений.
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 используются для заполнения пропущенных участков, шумоподавления и сжатия данных с контролируемым качеством.
Современные вызовы и ограничения
Несмотря на успехи, VAE сталкиваются с рядом фундаментальных проблем:
- Размытость генерируемых образцов (blurry samples): VAE часто дают менее чёткие изображения по сравнению с GAN или диффузионными моделями. Это связано с тем, что оптимизация ELBO поощряет модель восстанавливать усреднённое по всем возможным
значение, что приводит к сглаживанию. Стандартный VAE с поэлементной независимой функцией правдоподобия (MSE или кросс-энтропия) оптимизирует пиксельное правдоподобие, а не перцептивное качество.
- Коллапс апостериорного распределения (posterior collapse): в некоторых случаях вариационное распределение
перестаёт зависеть от входных данных
и сходится к априорному распределению
. В результате скрытые переменные становятся неинформативными, и модель фактически перестаёт использовать скрытое пространство. Проблема особенно остра для моделей с мощными авторегрессионными декодерами.
- Вычислительная сложность: обучение VAE на больших наборах данных требует значительных вычислительных ресурсов, что влечёт как финансовые, так и экологические издержки.
- Оценка качества: как и для других генеративных моделей, остаётся открытой проблема объективной оценки качества генерируемых образцов.
- Качество против разнообразия (quality vs. diversity trade-off): существует внутреннее противоречие между стремлением к высокому качеству отдельных образцов и необходимостью покрывать всё многообразие данных.
- Предположение о факторизованном апостериорном: диагональное гауссовское приближение
может быть недостаточно выразительным для сложных данных, что ограничивает точность приближения.
- Трудности с дискретными данными: хотя VAE справляется с бинарными изображениями, моделирование текста и других дискретных последовательностей требует дополнительных приёмов (Gumbel-Softmax, дискретные латентные переменные).
Преимущества VAE
Несмотря на перечисленные недостатки, VAE обладают рядом важных достоинств, которые обеспечивают их широкое применение:
- Принципиальная вероятностная основа: модель явно оптимизирует оценку правдоподобия, что даёт теоретически обоснованный критерий качества и возможность байесовского вывода. В отличие от GAN, VAE не страдает от проблемы нестабильности обучения, связанной с минимаксной игрой.
- Структурированное латентное пространство: непрерывность и гладкость позволяют выполнять осмысленную интерполяцию, семантическую арифметику и направленную генерацию. Это делает VAE удобным инструментом для исследования свойств данных.
- Стабильное обучение: в отличие от GAN, VAE оптимизирует одну чёткую функцию потерь без минимаксных игр, что упрощает тренировку и снижает риск расходимости. Обучение менее чувствительно к гиперпараметрам и архитектурным выборам.
- Интерпретируемость: модификации типа β-VAE способствуют разложению факторов вариации, что ценно для научных приложений и обучения представлений, позволяя выделять независимые семантические атрибуты.
Среди перспективных направлений исследований — разработка методов борьбы с коллапсом апостериорного распределения, создание гибридных архитектур, сочетающих VAE с GAN или диффузионными моделями, повышение вычислительной эффективности, а также развитие теоретических основ VAE.
См. также
- Автокодировщик
- Генеративная модель
- Вариационный байесовский вывод
- Генеративная состязательная сеть
- Диффузионная модель
- ELBO
- Нормализующие потоки
- β-VAE
- VQ-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

