Документация Engee

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

Обзор

Здесь рассмотрим так называемый вариационный вывод (VI), семейство аппроксимирующих байесовских методов вывода. В частности, мы сосредоточимся на одном из наиболее стандартных методов VI, который называется вариационным выводом автоматического дифференцирования (ADVI).

Мотивация

В байесовском выводе модель обычно задается следующим образом: заданы данные ,

где означает, что выборки одинаково независимо распределены. Наша цель в байесовском выводе состоит в том, чтобы найти апостериорное значение.

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

Как вам уже известно, Turing.jl предоставляет множество различных методов с гарантиями асимптотической точности, которые можно применить для решения такой задачи.

К сожалению, запуск таких несмещенных сэмплеров может быть чрезмерно дорогим. При увеличении сложности модели сходимость этих несмещенных сэмплеров может сильно замедлиться. Тем не менее в бесконечном пределе эти методы должны сходиться к истинному апостериорному распределению. Но бесконечность довольно велика, например по крайней мере больше 12, так что выполнение может занять некоторое время.

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

В этом случае можно использовать несколько подходов, одним из которых является вариационный вывод (VI).

Вариационный вывод (VI)

В VI мы ищем возможность аппроксимировать с помощью некоторого аппроксимирующего или вариационного апостериорного значения .

Чтобы что-то аппроксимировать, нужно иметь представление о том, что значит «близко». В контексте плотностей вероятностей стандартном такой «меры» близости является дивергенция Кульбака-Лейблера (KL). Но это далеко не единственная мера. Дивергенция Кульбака-Лейблера определяется между двумя плотностями и следующим образом:

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

Поэтому можно (и мы попытаемся) аппроксимировать с помощью плотности , минимизируя дивергенцию Кульбака-Лейблера между этими двумя плотностями.

Можно также показать, что , что понадобится позже. Наконец, заметим, что дивергенция Кульбака-Лейблера хорошо определена только в том случае, если плотность равна нулю везде, где плотность равна нулю, т. е.

В противном случае может существовать точка , такая что , в результате чего получится , что не имеет смысла.

Существует одна большая проблема: как видно из определения дивергенции Кульбака-Лейблера, нам нужна плотность для любой точки , если мы хотим вычислить дивергенцию Кульбака-Лейблера между ней и . У нас этого нет. Вся причина, по которой мы вообще делаем байесовский вывод, заключается в том, что нам неизвестно апостериорное значение. Понятно, что ничего не выйдет. Или все-таки получится?!

Вычисление дивергенции Кульбака-Лейблера без знания апостериорного значения

Прежде всего, вспомним, что

поэтому можно написать

где в последнем уравнении мы использовали тот факт, что не зависит от .

Сейчас вы, вероятно, думаете: «Отлично! Теперь у нас есть , который мы также не можем вычислить (в общем случае)». Ничего себе. Успокойтесь. Давайте еще раз пройдемся по алгебре. Выражение выше можно преобразовать к следующему виду:

Понимаете? Левая часть — это константа и, как мы уже говорили, . Что произойдет, если мы попытаемся максимизировать член, которому мы только что дали совершенно произвольное имя ? Если увеличивается, а остается без изменений, то должно уменьшаться! То есть , которое минимизирует дивергенцию Кульбака-Лейблера, — это то же , которое максимизирует :

где

Предполагая, что совместное и энтропия поддаются решению, мы можем использовать метод Монте-Карло для оставшегося ожидания. Таким образом, мы получаем следующее разрешимое выражение

где

Следовательно, пока мы можем делать выборку из , мы действительно можем минимизировать дивергенцию Кульбака-Лейблера. Здорово, да?

Примечание. В случае, когда поддается решению, но не поддается, мы можем использовать оценку Монте-Карло и для этого члена, но это обычно приводит к оценке с большей дисперсией.

Кроме того, вас удалось обмануть: ELBO не является произвольным именем. На самом деле это сокращение от ожидаемой нижней границы (ELBO), потому что это на самом деле ожидаемая нижняя граница (помните ). Да.

Максимизация ELBO

Поиск оптимальной плотности по всем возможным плотностям, конечно же, не представляется возможным. Вместо этого рассмотрим семейство параметризованных плотностей , где обозначает пространство возможных параметров. Каждая плотность в этом семействе параметризуется уникальным . Более того, предположим, что

  1. , i.e. evaluating the probability density at any point , is differentiable

  2. , i.e. the process of sampling from , is differentiable

Пункт (1) достаточно прост, а вот пункт (2) немного сложнее. Что вообще означает, что процесс выборки является дифференцируемым? Это довольно интересный вопрос сам по себе, и для того, чтобы должным образом рассмотреть различные подходы, потребуется изучить статью объемом около 50 страниц (настоятельно рекомендуется прочитать).

Мы будем использовать один из таких подходов, который имеет множество разных названий: трюк с репараметризацией, производная пути и т. д. Он заключается в предположении, что все элементы можно рассматривать как репараметризации некоторой базовой плотности, скажем . То есть если , то

для некоторой функции , дифференцируемой относительно . Таким образом, все используют одну и ту же функцию репараметризации , но каждому соответствуют разные варианты для .

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

Выяснив эти моменты, мы в конце концов доходим до раздела Вариационный вывод автоматического дифференцирования (ADVI).

Вариационный вывод автоматического дифференцирования (ADVI)

Итак, давайте вернемся к предположениям, которые мы сделали на данный момент.

  1. Вариационное апостериорное значение находится в параметризованном семействе плотностей, обозначенным , с .

  2. is a space of reparameterizable densities with as the base-density.

  3. Функция параметризации дифференцируема по .

  4. Оценка плотности вероятности дифференцируема по .

  5. is tractable.

  6. Оценка совместной плотности дифференцируема по .

  7. Поддержка является подпространством поддержки : .

Все это не требуется для выполнения VI, но эти предположения очень удобны и приводят к достаточно гибкому подходу. Одним из распределений, плотность которого удовлетворяет всем вышеприведенным предположениям, за исключением (7) (мы вернемся к этому во второй части) для любого поддающегося решению и дифференцированию , является старое доброе гауссовское или нормальное распределение:

где с получены из разложения Холецкого. Немного злоупотребляя обозначениями, напишем

С этим предположением у нас наконец-то появилось решаемое выражение для . Ну, если предположить, что (7) имеет место. Поскольку гауссиан имеет ненулевую вероятность во всем множестве , нам также требуется, чтобы имел ненулевую вероятность во всем .

Хотя это и не обязательно, мы часто будем делать предположение среднего поля для вариационного апостериорного значения , то есть предполагать независимость между латентными переменными. В этом случае мы напишем

Примеры

В качестве (тривиального) примера можно применить описанный выше подход для создания следующей генеративной модели для :

В этом случае , и у нас есть определенное апостериорное значение . Тогда вариационное апостериорное значение будет иметь вид

А так как априорное значение для ( ) имеет ненулевую вероятность для всего , такую, как и , т. е. существует предположение (7) выше, значит, все хорошо.

Но как насчет генеративной модели для :

с апостериорным значением и вариационным апостериорным значением среднего поля будет

где мы обозначили оценку плотности вероятности гауссиана как .

Обратите внимание, что имеет ненулевую вероятность только в , который явно не является всем , как и , т. е.

Вспомните из определения дивергенции Кульбака-Лейблера, что в таком случае дивергенция Кульбака-Лейблера не является хорошо определенной. Это приводит нас к автоматической части ADVI.

«Автоматическое»? Каким образом?

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

Преобразование плотностей с помощью замены переменных

Если нужно вычислить вероятность того, что примет значение в некотором множестве , следует проинтегрировать по , т. е.

Это означает, что если у нас есть дифференцируемая биекция с дифференцируемой обратной , можно выполнить замену переменных

где обозначает якобиан из , вычисленный в . Обратите внимание, что это определяет распределение вероятности

так как , что имеет вероятность 1. Это распределение вероятностей имеет плотность с , определенную

или эквивалентным образом

из-за того, что

Примечание. Также необходимо, чтобы член log-abs-det-jacobian был неисчезающим. Этого можно добиться, например, предположив, что также является поэлементно монотонной.

Вернемся к VI

Так почему же это полезно? Мы хотим обобщить подход, использующий нормальное распределение, на случаи, когда поддержки не подходят. Как насчет того, чтобы определить через

где  — это дифференцируемая биекция с дифференцируемым обратным. Затем , как мы и хотели. Результирующая вариационная плотность имеет следующий вид.

Обратите внимание, что способ, которым мы построили здесь, по сути, является обратным тому, который был описан выше. Здесь мы делаем выборку из распределения с поддержкой в и преобразуем в .

Если мы хотим записать ELBO в явном виде в членах , а не , то первый член в ELBO становится

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

Таким образом, эмпирическая оценка ELBO имеет вид

А максимизация этого относительно и и есть то, что называется вариационным выводом автоматического дифференцирования (ADVI).