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

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

(Различия между версиями)
Перейти к: навигация, поиск
м (Новая: {{well|Статья написана с использованием LLM '''DeepSeek-V4 Preview''' и проверена участником ~~~~}} [[Категория:Генерат...)
м (См. также)
 
(4 промежуточные версии не показаны)
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM '''DeepSeek-V4 Preview''' и проверена участником [[Участник:Stepan Suvorov|@goodbye3215]] 18:17, 13 июля 2026 (MSD)}}
+
{{well|Статья написана с использованием LLM '''DeepSeek-V4 Preview''' и проверена участником [[Участник:Stepan Suvorov|@goodbye3215]] 18:23, 13 июля 2026 (MSD)}}
[[Категория:Генеративные модели]]
[[Категория:Генеративные модели]]
Строка 5: Строка 5:
[[Категория:Глубокое обучение]]
[[Категория:Глубокое обучение]]
-
'''Вариационный автокодировщик''' (англ. variational autoencoder, VAE) — класс [[Генеративная модель|генеративных моделей]] [[Машинное обучение|машинного обучения]], сочетающих байесовский [[Вариационный вывод|вариационный вывод]] с гибкостью [[Глубокое обучение|глубоких нейронных сетей]]. В отличие от классического [[Автокодировщик|автокодировщика]], который отображает каждый входной образец в одну точку скрытого пространства, VAE моделирует скрытое представление как вероятностное распределение, что позволяет не только сжимать данные, но и генерировать новые образцы.
+
'''Вариационный автокодировщик''' (англ. variational autoencoder, VAE) — класс [[Генеративная модель|генеративных моделей]] [[Машинное обучение|машинного обучения]], сочетающих [[Вариационный байесовский вывод|вариационный вывод]] с гибкостью [[Глубокое обучение|глубоких нейронных сетей]]. В отличие от классического [[Автокодировщик|автокодировщика]], который отображает каждый входной образец в одну точку [[Скрытое пространство|скрытого пространства]], VAE моделирует скрытое представление как вероятностное распределение, что позволяет не только сжимать данные, но и генерировать новые образцы.
-
Вариационные автокодировщики являются одной из фундаментальных архитектур в области обучения без учителя и широко применяются для генерации изображений, текстов, а также в задачах представления данных. Благодаря своей строгой вероятностной основе и относительно стабильному обучению VAE остаются востребованным инструментом в исследовательской и инженерной практике.
+
Вариационные автокодировщики являются одной из фундаментальных архитектур в области [[Обучение без учителя|обучения без учителя]] и широко применяются для [[Генерация изображений|генерации изображений]], текстов, а также в задачах представления данных. Благодаря своей строгой вероятностной основе и относительно стабильному обучению VAE остаются востребованным инструментом в исследовательской и инженерной практике.
__TOC__
__TOC__
Строка 13: Строка 13:
== Определение и ключевые понятия ==
== Определение и ключевые понятия ==
-
Пусть задан набор наблюдений <tex>\{x_i\}_{i=1}^N</tex>, порождённых неизвестным распределением <tex>P_{\text{data}}(x)</tex>. Предполагается, что данные порождаются некоторым скрытым (латентным) процессом: сначала из априорного распределения <tex>P(z)</tex> порождается скрытая переменная <tex>z</tex>, затем из условного распределения <tex>P(x|z)</tex> — наблюдение <tex>x</tex>. Задача обучения состоит в том, чтобы, имея только наблюдения <tex>x</tex>, восстановить параметры модели <tex>P_\theta(x|z)</tex> и <tex>P(z)</tex>, максимизируя логарифм правдоподобия:
+
Пусть задан набор наблюдений <tex>\{x_i\}_{i=1}^N</tex>, порождённых неизвестным распределением <tex>P_{\text{data}}(x)</tex>. Предполагается, что данные порождаются некоторым скрытым (латентным) процессом: сначала из [[Априорное распределение|априорного распределения]] <tex>P(z)</tex> порождается [[Скрытая переменная|скрытая переменная]] <tex>z</tex>, затем из условного распределения <tex>P(x|z)</tex> — наблюдение <tex>x</tex>. Задача обучения состоит в том, чтобы, имея только наблюдения <tex>x</tex>, восстановить параметры модели <tex>P_\theta(x|z)</tex> и <tex>P(z)</tex>, максимизируя логарифм правдоподобия:
<tex>\log P_\theta(x) = \log \int P_\theta(x|z) P(z) \, dz</tex>
<tex>\log P_\theta(x) = \log \int P_\theta(x|z) P(z) \, dz</tex>
-
Прямое вычисление этого интеграла, однако, практически всегда является вычислительно неразрешимым. Кроме того, апостериорное распределение <tex>P(z|x)</tex>, необходимое для обучения, также оказывается недоступным в аналитическом виде.
+
Прямое вычисление этого интеграла, однако, практически всегда является вычислительно неразрешимым. Кроме того, [[Апостериорное распределение|апостериорное распределение]] <tex>P(z|x)</tex>, необходимое для обучения, также оказывается недоступным в аналитическом виде.
-
Вариационный автокодировщик предлагает обходной путь: вместо точного вычисления апостериорного распределения вводится его параметрическая аппроксимация <tex>q_\phi(z|x)</tex> (также называемая распознающей моделью, recognition model), и задача обучения формулируется как совместная оптимизация параметров <tex>\theta</tex> (генеративная модель, декодер) и <tex>\phi</tex> (вариационная аппроксимация, энкодер).
+
Вариационный автокодировщик предлагает обходной путь: вместо точного вычисления апостериорного распределения вводится его [[Параметрическая модель|параметрическая аппроксимация]] <tex>q_\phi(z|x)</tex> (также называемая распознающей моделью, recognition model), и задача обучения формулируется как совместная оптимизация параметров <tex>\theta</tex> (генеративная модель, [[Декодер|декодер]]) и <tex>\phi</tex> (вариационная аппроксимация, [[Энкодер|энкодер]]).
В отличие от детерминированного автокодировщика, в VAE энкодер выдаёт не точку в скрытом пространстве, а параметры распределения (обычно математическое ожидание и дисперсию), из которого затем семплируется скрытый вектор <tex>z</tex>. Это вероятностное представление скрытого пространства позволяет генерировать новые данные, семплируя <tex>z</tex> из априорного распределения и пропуская его через декодер.
В отличие от детерминированного автокодировщика, в VAE энкодер выдаёт не точку в скрытом пространстве, а параметры распределения (обычно математическое ожидание и дисперсию), из которого затем семплируется скрытый вектор <tex>z</tex>. Это вероятностное представление скрытого пространства позволяет генерировать новые данные, семплируя <tex>z</tex> из априорного распределения и пропуская его через декодер.
Строка 27: Строка 27:
Развитие вариационных автокодировщиков органично вписывается в эволюцию методов снижения размерности и генеративного моделирования:
Развитие вариационных автокодировщиков органично вписывается в эволюцию методов снижения размерности и генеративного моделирования:
-
* '''1933 год''' — '''Метод главных компонент (PCA)''': Хотеллинг предлагает линейный метод снижения размерности, находящий проекции данных на направления максимальной дисперсии. PCA остаётся стандартным инструментом, однако его линейность ограничивает применимость для сложных данных.
+
* '''1933 год''' — '''[[Метод главных компонент]] (PCA)''': Хотеллинг предлагает линейный метод снижения размерности, находящий проекции данных на направления максимальной дисперсии. PCA остаётся стандартным инструментом, однако его линейность ограничивает применимость для сложных данных.
-
* '''1980–1990-е годы''' — '''Автокодировщики (Autoencoders)''': С появлением обратного распространения ошибки становятся возможными нелинейные обобщения PCA — автокодировщики, использующие нейронные сети для кодирования и декодирования данных. Однако они не имеют вероятностной интерпретации и не могут служить генеративными моделями.
+
* '''1980–1990-е годы''' — '''[[Автокодировщик]]и (Autoencoders)''': С появлением [[Обратное распространение ошибки|обратного распространения ошибки]] становятся возможными нелинейные обобщения PCA — автокодировщики, использующие нейронные сети для кодирования и декодирования данных. Однако они не имеют вероятностной интерпретации и не могут служить генеративными моделями.
-
* '''2013 год''' — '''Появление VAE''': Д. П. Кингма и М. Веллинг в работе «Auto-Encoding Variational Bayes» формализуют подход, сочетающий вариационный вывод с обучением глубоких генеративных моделей. Ключевая инновация — '''приём репараметризации''' (reparameterization trick), позволяющий вычислять градиенты по параметрам вариационного распределения с помощью стандартных методов стохастического градиентного спуска.
+
* '''2013 год''' — '''Появление VAE''': Д. П. Кингма и М. Веллинг в работе «Auto-Encoding Variational Bayes» формализуют подход, сочетающий вариационный вывод с обучением глубоких генеративных моделей. Ключевая инновация — '''[[Приём репараметризации]]''' (reparameterization trick), позволяющий вычислять градиенты по параметрам вариационного распределения с помощью стандартных методов [[Стохастический градиентный спуск|стохастического градиентного спуска]].
-
* '''2014 год''' — '''Публикация на ICLR''': Работа Кингмы и Веллинга получает широкое признание и становится основой для сотен последующих исследований. В том же году появляются [[Генеративно-состязательная сеть|генеративно-состязательные сети (GAN)]], предлагающие альтернативный подход к генеративному моделированию.
+
* '''2014 год''' — '''Публикация на ICLR''': Работа Кингмы и Веллинга получает широкое признание и становится основой для сотен последующих исследований. В том же году появляются [[Генеративная состязательная сеть|генеративно-состязательные сети (GAN)]], предлагающие альтернативный подход к генеративному моделированию.
-
* '''2015–2020 годы''' — '''Расширения и модификации''': Предложены многочисленные варианты VAE — Conditional VAE (условная генерация), VAE с иерархическими скрытыми переменными, динамические VAE для временных рядов, а также гибридные архитектуры, сочетающие VAE с GAN.
+
* '''2015–2020 годы''' — '''Расширения и модификации''': Предложены многочисленные варианты VAE — Conditional VAE ([[Условная генерация|условная генерация]]), VAE с иерархическими скрытыми переменными, [[Динамический VAE|динамические VAE]] для временных рядов, а также гибридные архитектуры, сочетающие VAE с GAN.
-
* '''2020-е годы''' — '''Зрелость технологии''': VAE становятся стандартным инструментом в медицинской визуализации, генерации молекулярных структур и других областях. Активно ведутся исследования по преодолению фундаментальных ограничений VAE, таких как коллапс апостериорного распределения.
+
* '''2020-е годы''' — '''Зрелость технологии''': VAE становятся стандартным инструментом в [[Медицинская визуализация|медицинской визуализации]], генерации молекулярных структур и других областях. Активно ведутся исследования по преодолению фундаментальных ограничений VAE, таких как [[Коллапс апостериорного распределения|коллапс апостериорного распределения]].
== Математическая основа ==
== Математическая основа ==
Строка 55: Строка 55:
<tex>\log P_\theta(x) \ge \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) \ge \mathbb{E}_{q_\phi(z|x)}[\log P_\theta(x|z)] - D_{KL}(q_\phi(z|x) \| P(z))</tex>
-
Правая часть этого неравенства называется '''нижней границей свидетельства''' (Evidence Lower Bound, ELBO). Она состоит из двух слагаемых:
+
Правая часть этого неравенства называется '''[[Нижняя граница свидетельства|нижней границей свидетельства]]''' (Evidence Lower Bound, ELBO). Она состоит из двух слагаемых:
-
* '''Ошибка реконструкции''' (reconstruction loss): <tex>\mathbb{E}_{q_\phi(z|x)}[\log P_\theta(x|z)]</tex> — насколько хорошо декодер восстанавливает исходный образец из скрытого представления.
+
* '''[[Ошибка реконструкции|Ошибка реконструкции]]''' (reconstruction loss): <tex>\mathbb{E}_{q_\phi(z|x)}[\log P_\theta(x|z)]</tex> — насколько хорошо декодер восстанавливает исходный образец из скрытого представления.
-
* '''Регуляризационный член''' (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> является корректной задачей, поскольку максимизация нижней границы приводит к увеличению самого правдоподобия.
Строка 64: Строка 64:
=== Приём репараметризации ===
=== Приём репараметризации ===
-
Основная техническая трудность при оптимизации ELBO заключается в том, что операция семплирования <tex>z \sim q_\phi(z|x)</tex> недифференцируема по параметрам <tex>\phi</tex>. Приём репараметризации обходит эту проблему: вместо прямой генерации <tex>z</tex> из распределения <tex>q_\phi(z|x)</tex> вводится вспомогательная случайная переменная <tex>\varepsilon \sim \mathcal{N}(0, I)</tex>, и <tex>z</tex> выражается как детерминированная функция от <tex>\varepsilon</tex> и параметров <tex>\phi</tex>.
+
Основная техническая трудность при оптимизации ELBO заключается в том, что операция семплирования <tex>z \sim q_\phi(z|x)</tex> недифференцируема по параметрам <tex>\phi</tex>. [[Приём репараметризации]] обходит эту проблему: вместо прямой генерации <tex>z</tex> из распределения <tex>q_\phi(z|x)</tex> вводится вспомогательная случайная переменная <tex>\varepsilon \sim \mathcal{N}(0, I)</tex>, и <tex>z</tex> выражается как детерминированная функция от <tex>\varepsilon</tex> и параметров <tex>\phi</tex>.
В случае гауссовского апостериорного распределения <tex>q_\phi(z|x) = \mathcal{N}(z; \mu_\phi(x), \sigma_\phi^2(x) I)</tex> приём репараметризации записывается как:
В случае гауссовского апостериорного распределения <tex>q_\phi(z|x) = \mathcal{N}(z; \mu_\phi(x), \sigma_\phi^2(x) I)</tex> приём репараметризации записывается как:
Строка 76: Строка 76:
Вариационный автокодировщик состоит из двух основных компонентов:
Вариационный автокодировщик состоит из двух основных компонентов:
-
* '''Энкодер (кодировщик, распознающая модель)''' <tex>q_\phi(z|x)</tex> — нейронная сеть, которая принимает на вход образец <tex>x</tex> и выдаёт параметры распределения в скрытом пространстве: математическое ожидание <tex>\mu_\phi(x)</tex> и логарифм дисперсии <tex>\log \sigma_\phi^2(x)</tex>. Выходом энкодера является не сам скрытый вектор, а распределение, из которого он будет семплирован.
+
* '''[[Энкодер]] (кодировщик, распознающая модель)''' <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> (или параметры распределения, из которого он мог бы быть сгенерирован).
+
* '''[[Декодер]] (раскодировщик, генеративная модель)''' <tex>P_\theta(x|z)</tex> — нейронная сеть, которая принимает на вход скрытый вектор <tex>z</tex> и восстанавливает исходный образец <tex>x</tex> (или параметры распределения, из которого он мог бы быть сгенерирован).
Процесс работы VAE включает следующие этапы:
Процесс работы VAE включает следующие этапы:
Строка 85: Строка 85:
# С помощью приёма репараметризации из этого распределения семплируется скрытый вектор <tex>z</tex>.
# С помощью приёма репараметризации из этого распределения семплируется скрытый вектор <tex>z</tex>.
# Скрытый вектор <tex>z</tex> подаётся на декодер, который восстанавливает образец <tex>\hat{x}</tex> (или вычисляет параметры распределения <tex>P_\theta(x|z)</tex>).
# Скрытый вектор <tex>z</tex> подаётся на декодер, который восстанавливает образец <tex>\hat{x}</tex> (или вычисляет параметры распределения <tex>P_\theta(x|z)</tex>).
-
# Вычисляется функция потерь — отрицательный ELBO, состоящий из ошибки реконструкции и KL-дивергенции.
+
# Вычисляется [[Функция потерь|функция потерь]] — отрицательный ELBO, состоящий из ошибки реконструкции и KL-дивергенции.
-
# Градиенты функции потерь распространяются обратно через всю сеть, обновляя параметры как энкодера, так и декодера.
+
# [[Градиент|Градиенты]] функции потерь распространяются обратно через всю сеть ([[Обратное распространение ошибки|обратное распространение ошибки]]), обновляя параметры как энкодера, так и декодера.
== Обучение ==
== Обучение ==
-
Обучение VAE — это задача максимизации ELBO с использованием стохастического градиентного спуска. Функция потерь для одного образца имеет вид:
+
Обучение VAE — это задача максимизации ELBO с использованием [[Стохастический градиентный спуск|стохастического градиентного спуска]]. Функция потерь для одного образца имеет вид:
<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> обычно используется бинарная или гауссовская [[Кросс-энтропия|кросс-энтропия]].
-
Второй член (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-дивергенция вычисляется аналитически:
<tex>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)</tex>
<tex>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)</tex>
Строка 102: Строка 102:
Эта регуляризация обеспечивает два важных свойства:
Эта регуляризация обеспечивает два важных свойства:
-
* **Непрерывность скрытого пространства**: близкие точки в скрытом пространстве соответствуют семантически близким образцам.
+
* '''Непрерывность скрытого пространства''': близкие точки в скрытом пространстве соответствуют семантически близким образцам.
-
* **Полнота скрытого пространства**: любая точка из априорного распределения <tex>\mathcal{N}(0, I)</tex> при пропуске через декодер даёт осмысленный образец.
+
* '''Полнота скрытого пространства''': любая точка из априорного распределения <tex>\mathcal{N}(0, I)</tex> при пропуске через декодер даёт осмысленный образец.
== Применения ==
== Применения ==
Строка 109: Строка 109:
Вариационные автокодировщики находят применение в широком спектре областей:
Вариационные автокодировщики находят применение в широком спектре областей:
-
* '''Генерация изображений''': создание новых реалистичных изображений, интерполяция между образцами, редактирование изображений через манипуляции в скрытом пространстве.
+
* '''[[Генерация изображений]]''': создание новых реалистичных изображений, интерполяция между образцами, редактирование изображений через манипуляции в скрытом пространстве.
-
* '''Медицинская визуализация''': генерация синтетических медицинских изображений для аугментации данных, сегментация анатомических структур, обнаружение аномалий.
+
* '''[[Медицинская визуализация]]''': генерация синтетических медицинских изображений для [[Аугментация данных|аугментации данных]], [[Сегментация изображений|сегментация]] анатомических структур, [[Обнаружение аномалий|обнаружение аномалий]].
-
* '''Обработка естественного языка''': генерация текста, моделирование диалогов, представление слов и предложений в непрерывном пространстве.
+
* '''[[Обработка естественного языка]]''': генерация текста, моделирование диалогов, представление слов и предложений в непрерывном пространстве.
-
* '''Биоинформатика и открытие лекарств''': генерация молекулярных структур с заданными свойствами.
+
* '''[[Биоинформатика]] и [[Открытие лекарств]]''': генерация молекулярных структур с заданными свойствами.
* '''Представление данных''': обучение сжатых, интерпретируемых представлений для последующих задач классификации и кластеризации.
* '''Представление данных''': обучение сжатых, интерпретируемых представлений для последующих задач классификации и кластеризации.
Строка 121: Строка 121:
* '''Обнаружение аномалий''': выявление выбросов на основе ошибки реконструкции — образцы, которые плохо восстанавливаются декодером, считаются аномальными.
* '''Обнаружение аномалий''': выявление выбросов на основе ошибки реконструкции — образцы, которые плохо восстанавливаются декодером, считаются аномальными.
-
* '''Видео и временные ряды''': динамические VAE для моделирования последовательных данных, прогнозирования и генерации видео.
+
* '''Видео и временные ряды''': [[Динамический VAE|динамические VAE]] для моделирования последовательных данных, прогнозирования и генерации видео.
== Современные вызовы и ограничения ==
== Современные вызовы и ограничения ==
Строка 127: Строка 127:
Несмотря на успехи, VAE сталкиваются с рядом фундаментальных проблем:
Несмотря на успехи, VAE сталкиваются с рядом фундаментальных проблем:
-
* '''Размытость генерируемых образцов''' (blurry samples): VAE часто дают менее чёткие изображения по сравнению с GAN или диффузионными моделями. Это связано с тем, что оптимизация ELBO поощряет модель восстанавливать усреднённое по всем возможным <tex>z</tex> значение, что приводит к сглаживанию.
+
* '''Размытость генерируемых образцов''' (blurry samples): VAE часто дают менее чёткие изображения по сравнению с [[Генеративно-состязательная сеть|GAN]] или [[Диффузионная модель|диффузионными моделями]]. Это связано с тем, что оптимизация ELBO поощряет модель восстанавливать усреднённое по всем возможным <tex>z</tex> значение, что приводит к сглаживанию.
-
* '''Коллапс апостериорного распределения''' (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>. В результате скрытые переменные становятся неинформативными, и модель фактически перестаёт использовать скрытое пространство. Проблема особенно остра для моделей с мощными авторегрессионными декодерами.
* '''Вычислительная сложность''': обучение VAE на больших наборах данных требует значительных вычислительных ресурсов, что влечёт как финансовые, так и экологические издержки.
* '''Вычислительная сложность''': обучение VAE на больших наборах данных требует значительных вычислительных ресурсов, что влечёт как финансовые, так и экологические издержки.
Строка 143: Строка 143:
* [[Автокодировщик]]
* [[Автокодировщик]]
* [[Генеративная модель]]
* [[Генеративная модель]]
-
* [[Вариационный вывод]]
+
* [[Вариационный байесовский вывод]]
* [[Генеративная состязательная сеть]]
* [[Генеративная состязательная сеть]]
* [[Диффузионная модель]]
* [[Диффузионная модель]]

Текущая версия

Статья написана с использованием LLM DeepSeek-V4 Preview и проверена участником @goodbye3215 18:23, 13 июля 2026 (MSD)

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

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

Содержание


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

Пусть задан набор наблюдений \{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 годПоявление VAE: Д. П. Кингма и М. Веллинг в работе «Auto-Encoding Variational Bayes» формализуют подход, сочетающий вариационный вывод с обучением глубоких генеративных моделей. Ключевая инновация — Приём репараметризации (reparameterization trick), позволяющий вычислять градиенты по параметрам вариационного распределения с помощью стандартных методов стохастического градиентного спуска.
  • 2014 годПубликация на ICLR: Работа Кингмы и Веллинга получает широкое признание и становится основой для сотен последующих исследований. В том же году появляются генеративно-состязательные сети (GAN), предлагающие альтернативный подход к генеративному моделированию.
  • 2015–2020 годыРасширения и модификации: Предложены многочисленные варианты VAE — Conditional VAE (условная генерация), VAE с иерархическими скрытыми переменными, динамические VAE для временных рядов, а также гибридные архитектуры, сочетающие VAE с GAN.

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

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

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

\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 является корректной задачей, поскольку максимизация нижней границы приводит к увеличению самого правдоподобия.

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

Основная техническая трудность при оптимизации 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. Градиенты функции потерь распространяются обратно через всю сеть (обратное распространение ошибки), обновляя параметры как энкодера, так и декодера.

Обучение

Обучение 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) обычно используется бинарная или гауссовская кросс-энтропия.

Второй член (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) при пропуске через декодер даёт осмысленный образец.

Применения

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

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

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

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

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

Среди перспективных направлений исследований — разработка методов борьбы с коллапсом апостериорного распределения, создание гибридных архитектур, сочетающих 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.
  • 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.
Личные инструменты