Теория информации
ELBO
Нижняя граница, которую максимизируют вместо недоступного правдоподобия
Задача, которую нельзя решить прямо
Модель со скрытой переменной задаёт , а нужно нам — правдоподобие данных. Оно получается маргинализацией:
и этот интеграл в общем случае не берётся. Для смеси из блока 3 сумма по компонентам ещё считалась; для VAE, где — вектор из сотни непрерывных чисел, интеграл неподъёмен.
Обходной путь — не считать , а ограничить его снизу величиной, которую считать умеем.
Вывод в три строки
Возьмём любое распределение с подходящим носителем и вставим его так, чтобы получилось ожидание:
Это importance sampling из блока 3, урок 150 — тот же вес . Теперь по неравенству Йенсена ( вогнут, поэтому знак противоположен тому, что был в уроке про KL):
Всё. Один шаг Йенсена — и вместо интеграла у нас ожидание по , которое считается методом Монте-Карло, потому что из мы умеем сэмплировать (мы его сами выбрали).
Зазор — это ровно KL
Насколько граница неточна? Посчитаем разность честно:
Отсюда центральное тождество блока:
Подвигайте в виджете. Потолок стоит на месте, а зелёная и красная части обмениваются высотой.
веса q(z)
- log p(x)
- -0.99425
- ELBO(q)
- -1.31865
- KL(q‖posterior)
- 0.3244
Кнопка «взять = истинный posterior» закрывает зазор ровно: KL становится нулём, а ELBO садится на . Равномерная даёт ELBO и зазор ната. Сумма в обоих случаях одна и та же — потому что это тождество, а не приближение.
Второе прочтение: реконструкция и регуляризация
Разложим ELBO иначе, подставив :
Это та форма, в которой ELBO появляется в коде VAE, и в ней читается напряжение между двумя целями:
- первый член хочет, чтобы содержал как можно больше информации об — иначе восстановить не выйдет;
- второй член хочет, чтобы был похож на prior — то есть чтобы содержал как можно меньше информации об .
Крайние случаи объясняют обе типичные поломки. Если второй член побеждает, наступает posterior collapse: для всех , KL равна нулю, латент не несёт ничего, а декодер выучивает безусловное распределение. Если побеждает первый — латентное пространство становится дырявым, и сэмплы из prior декодируются в мусор.
Отсюда и -VAE: коэффициент перед KL, которым это равновесие сдвигают вручную. Заметьте, что при вы оптимизируете уже не нижнюю границу правдоподобия — тождество перестаёт работать, и это осознанный обмен, а не улучшение.
EM — это тот же ELBO
Обещание из блока 3 (урок 200) можно теперь выполнить. EM — координатный подъём по ELBO:
| шаг EM | что делает с ELBO |
|---|---|
| E-шаг | максимизирует по при фиксированных параметрах |
| M-шаг | максимизирует по параметрам при фиксированном |
E-шаг доступен в закрытой форме именно потому, что оптимальное — это истинный posterior , который для смеси считается правилом Байеса. После него зазор равен нулю, и ELBO совпадает с .
Отсюда монотонность EM становится очевидной, а не удивительной: каждый из двух шагов не уменьшает ELBO, а после E-шага ELBO равна правдоподобию — значит правдоподобие тоже не уменьшается.
И отсюда же видно, чем VAE отличается от EM: там posterior недоступен, поэтому E-шаг заменяется на «подвинуть градиентом в сторону posterior», зазор никогда не закрывается полностью, и монотонности нет.
Что ещё стоит знать
Reparametrisation trick. Чтобы взять градиент ELBO по параметрам , нужно дифференцировать через операцию сэмплирования. Приём из блока 3 (урок 110): , где не зависит от параметров. После этого становится обычным ожиданием по , и градиент проходит.
ELBO — плохая оценка правдоподобия. Это нижняя граница с неизвестным зазором, поэтому сравнивать по ней модели рискованно: модель с более высокой ELBO может иметь более низкое , если её зазор меньше. Для честного сравнения используют importance-weighted оценки (IWAE), которые дают более тугую границу за счёт нескольких сэмплов.
Один сэмпл достаточно. На практике оценивают одним сэмплом на пример. Оценка получается шумной, но несмещённой — и этого хватает, ровно по тому же аргументу, по которому хватает одного минибатча в SGD (блок 3, урок 150).
Источники
- Blei, Kucukelbir, McAuliffe — Variational Inference: A Review for Statisticians — ELBO, вариационный вывод, связь с EM
- Kingma, Welling — Auto-Encoding Variational Bayes — VAE и репараметризация
Проверки
0 из 2Что такое ELBO
Отметьте все верные утверждения об ELBO и вариационном выводе.
ELBO, зазор и их сумма
Скрытая переменная дискретна. Дан список
joint— значения для одного наблюдённого , по одному на каждое значение — и ненормированные весаq_weights.Реализуйте
elbo_parts(joint, q_weights)— верните[log_evidence, elbo, gap, total]в натах:log_evidence= ;elbo= , слагаемые с пропускаются;gap= , где ;total=elbo + gap.
Последнее число — проверка: оно обязано совпасть с
log_evidenceдо последней цифры, потому что это тождество, а не приближение. Считайтеgapнезависимо отelbo, а не как их разность, иначе проверка ничего не проверит.Гарантируется, что
q_weightsне кладёт массу туда, гдеjointравен нулю.Загрузка редактора…
Ctrl/⌘ + Enter