Вопрос или проблема
Для вариационного автокодировщика у нас есть следующее:
$$\mathscr{L}(x,\theta,\phi) := \mathbb{E}_{z \sim q_\phi(z|x)}[\log p_{\theta}(x|z)] -KL[q_{\phi}(z|x) ||p(z)] $$
Это называется вариационной нижней границей или нижней границей доказательства (ELBO). Но я думаю, что мы на самом деле пытаемся максимизировать лог-правдоподобие наших данных:
$$\log p_{\theta}(x) = \mathscr{L}(x,\theta,\phi) + KL[q_{\phi}(z|x)||p_{\theta}(z|x)]$$
Есть несколько вещей, в которых я не уверен, в порядке возрастания сложности.
-
Для фактической функции потерь VAE мы используем $-\mathscr{L}$, более или менее. Конечно, вычисление ожидания дорогое, поэтому мы используем одну выборку $z$ каждый раз, верно?
-
Нам говорят считать $p(z)$ равным $\mathscr{N}(0,1)$, но я не вижу, что вызывает это нормальное распределение. Нам просто говорят подставить $\mathscr{N}(0,1)$ вместо $p(z)$ при вычислении потерь, и все это, похоже, только гарантирует, что $q_\phi(z|x)$ приближается к этому. Мы ничего не знаем о $p(z)$, верно (помимо того факта, что если все $p_{\theta}(z|x)$ близки к какому-то распределению, то и $p_{\theta}(z)$ тоже близко)?
-
Как нам следует думать об этом KL-расхождении во второй формуле? Обычно указывается, что для фиксированного $p_{\theta}$ максимизация $\mathscr{L}$ эквивалентна минимизации KL-расхождения. Но $p_{\theta}$ не является фиксированным; он обучается. Мы также могли бы улучшить $\log p_{\theta}(x)$ (наша конечная цель), сделав это расхождение хуже, не так ли? Что оправдывает оптимизацию $\mathscr{L}$ в одиночку (помимо удобства)?
В основном, я запутался в распространенном объяснении, что то, что мы на самом деле хотим, — это минимизировать это второе KL-расхождение, а также что лучший способ сделать это — максимизировать ELBO.
- Для фактической функции потерь VAE мы используем $−\mathcal{L}$, более или менее. Конечно, вычисление ожидания дорогое, поэтому мы используем одну выборку 𝑧 каждый раз, верно?
Да. Оказалось, что оценка с использованием одной выборки MC имеет довольно низкую дисперсию в этом случае. Однако Автокодировщик с взвешиванием важности показывает, что использование нескольких выборок может быть полезным.
- Обычно объясняется, что мы рассматриваем 𝑝(𝑧) как $\mathcal{N}(0,1)$. Но просто подставив $\mathcal{N}(0,1)$ в KL-расхождение в потере (как мы и делаем), мы просто гарантируем, что $𝑞_𝜙(𝑧|𝑥)$ приближается к этому. Мы ничего не знаем о $𝑝(𝑧)$, верно (помимо того факта, что если все $𝑝_𝜃(𝑧|𝑥)$ близки, то и $𝑝_𝜃(𝑧)$ тоже?)
Я предпочитаю думать об этом так. На самом деле есть две модели: стохастический кодировщик (модель вывода) $q_\phi(x,z)=q_\phi(z|x) q(x)$ и вероятностный декодер (генерирующая модель) $p_\theta(x,z)=p_\theta(x|z) p(z)$. Наша цель — обеспечить, чтобы $ q_\phi(x,z) $ и $ p_\theta(x,z) $ были близки (малое KL-расхождение).
Обратите внимание, что $q(x)$ и $p(z)$ являются эмпирическим распределением и байесовским приоритетом и фиксируются заранее (не обучаются). Это для обычного VAE. Однако они совершенно отличаются от агрегированных маргиналов:
$$
q_\phi(z) = \int q_\phi(z|x) q(x) \, dx
\;\;\;\;\&\;\;\;\;
p_\theta(x) = \int p_\theta(x|z) p(z) \, dz
$$
Другими словами, $p(z)$ — это то, что мы выбираем в качестве части модели. Наша задача затем заключается в том, чтобы гарантировать, что маргинал вывода $q_\phi(z)$ близок к этому. Другими словами, мы знаем $p(z)$, но мы обучаем $q_\phi(z)$ (также называемый выведенным приором или агрегированным постериором), который мы хотели бы сопоставить с ним.
- Как нам следует думать об этом KL-расхождении во второй формуле? Обычно указывается, что для фиксированного $𝑝_𝜃$ максимизация $\mathcal{L}$ эквивалентна минимизации KL-расхождения. Но $𝑝_𝜃$ не фиксирован; он обучается. Мы также могли бы улучшить $\log 𝑝_𝜃(𝑥)$ (наша конечная цель), сделав это расхождение хуже, не так ли? Что оправдывает оптимизацию $\mathcal{L}$ в одиночку (помимо удобства)?
Важно отметить, что хотя $p_\theta(x)$ обучается (ну, приближение обучается), на самом деле существует “правильное”, которое можно вычислить с помощью правила Байеса:
$$ p_\theta(z|x) = \frac{p_\theta(x|z) p(z) }{p_\theta(x)} $$
когда $ p_\theta(x|z) $ фиксировано.
Другими словами, нам не обязательно обучать модель вывода; существует оптимальная, задаваемая правилом Байеса. Теоретически мы можем просто обучить генерирующую модель и использовать это правило для создания кодировщика.
Но на практике это, конечно, трудно вычислить.
Как нам следует думать об этом KL-расхождении во второй формуле?
Мы занимаемся вариационным выводом. Мы не можем вычислить истинный постериор $p_\theta(z|x)$. Вместо этого мы вычисляем приближение $q_\phi(z|x)$. Второе KL говорит, что приближение должно быть хорошим. Обратите внимание на что-то важное: когда вариационное приближение постериора идеально, тогда ELBO равно маргинальному правдоподобию. Другими словами, когда наш $q_\phi$ идеален, тогда мы действительно оптимизируем истинное маргинальное правдоподобие, как вы заметили, что мы хотим сделать.
Мы также могли бы улучшить $\log 𝑝_𝜃(𝑥)$ (наша конечная цель), сделав это расхождение хуже, не так ли?
Нет, уменьшение должно всегда ухудшать маргинальное правдоподобие. У меня нет доказательства, но я предполагаю, что это так.
Что оправдывает оптимизацию $\mathcal{L}$ в одиночку (помимо удобства)?
Что ж, это нижняя граница, так что максимизация гарантирует, что мы “поднимаем” истинное маргинальное правдоподобие. Как уже упоминалось, когда вариационное приближение хорошее, нам гарантировано, что мы делаем правильную вещь. Существует много литературы по теории вариационного вывода; я подозреваю, что можно сказать больше в более строгих условиях.
В основном, я запутался в распространенном объяснении, что то, что мы на самом деле хотим, — это минимизировать это второе KL-расхождение, а также что лучший способ сделать это — максимизировать ELBO.
Я не знаю, является ли это лучшим способом. Это определенно эффективный. Но в некоторых случаях может быть лучше выполнять вывод более непосредственно, например, с помощью методов Гамильтонова Монте-Карло.
Ответ или решение
Почему нужно максимизировать ELBO в вариационном автокодировщике (VAE)
Вариационный автокодировщик (VAE) представляет собой мощный инструмент для генерации данных, который основан на вероятностных моделях. Ключевым элементом его обучения является концепция, называемая нижней границей обоснования, или ELBO (Evidence Lower Bound). Понимание значимости максимизации ELBO — важный аспект для любого, кто работает с VAE. Давайте подробнее разберемся с этой концепцией.
1. Определение ELBO и связь с истинной правдоподобностью
ELBO определяется как:
[
\mathscr{L}(x, \theta, \phi) := \mathbb{E}{z \sim q\phi(z|x)}[\log p{\theta}(x|z)] – KL[q{\phi}(z|x) || p(z)]
]
где:
- ( \mathbb{E}{z \sim q\phi(z|x)}[\log p_{\theta}(x|z)] ) — это ожидание логарифма правдоподобия наблюдаемых данных ( x ) при условии скрытой переменной ( z ).
- ( KL[q{\phi}(z|x) || p(z)] ) — это дивергенция Кульбака-Лейблера, которая измеряет, насколько близко распределение ( q\phi(z|x) ) (постериорное распределение) к заранее установленному распределению ( p(z) ) (априорное распределение).
Согласно приведенной формуле, вам необходимо максимизировать ELBO, чтобы увеличить истинную правдоподобность наблюдаемого результата ( \log p_\theta(x) ), которая выражается как:
[
\log p{\theta}(x) = \mathscr{L}(x, \theta, \phi) + KL[q{\phi}(z|x) || p_{\theta}(z|x)]
]
Таким образом, максимизация ELBO ведет к минимизации KL-дивергенции между постериорным распределением ( q\phi(z|x) ) и истинным постериорным распределением ( p\theta(z|x) ).
2. Процесс ведения обучения с использованием ELBO
В ходе обучения VAE, мы фактически максимизируем ELBO, что соответствует минимизации функции потерь ( -\mathscr{L} ). Прежде всего, это обеспечивает более высокую оценку правдоподобия модели, что в конечном итоге помогает VAE лучше представлять данные. Поскольку расчет полного значения ожидаемого значения может быть вычислительно сложным, практика использования сэмплирования для приближенных оценок является общепринятой.
3. Выбор априорного распределения
Использование стандартного нормального распределения ( \mathcal{N}(0, 1) ) в качестве априорного распределения ( p(z) ) является относительно произвольным, но оно упрощает процесс и служит стабильной отправной точкой. Мы хотим, чтобы постериорное распределение ( q_\phi(z|x) ) приближалось к этому априорному, что и обеспечивает регуляризацию во время обучения.
4. Роль KL-дивергенции
Что касается второй KL-дивергенции в уравнении, важно отметить, что при фиксированном ( p\theta ) максимизация ( \mathscr{L} ) эквивалентна минимизации KL-дивергенции. Хотя ( p\theta ) действительно не фиксировано и может изменяться, оптимизация ELBO всегда приводит к уменьшению ошибки в апостериорном приближении. Это ключевой момент: когда приближение ( q_\phi(z|x) ) хорошее, ELBO будет максимальным, а значит, истинная правдоподобность также будет высокой.
5. Обоснование максимизации ELBO
Максимизация ELBO гарантирует, что вы двигаетесь в правильном направлении в контексте повышения правдоподобия данных, что критически важно для обучения качественных моделей. Лишь в случаях, когда точное постериорное распределение будет соответствовать наблюдаемым данным, ELBO и правдоподобие будут эквивалентны.
Таким образом, несмотря на то, что оптимизация ELBO не всегда кажется лучшим способом, она является наиболее эффективным методом для достижения обоснованного обучения в вариационных автокодировщиках. Оптимизация ELBO позволяет вам сосредоточиться на улучшении модели без необходимости вычисления точного постериорного распределения.
В заключение, максимизация ELBO в вариационном автокодировщике является краеугольным камнем, позволяющим находить оптимальные представления данных с помощью вероятностных методов, что в зонах глубинного обучения является крайне важным для создания мощных генеративных моделей.