В статистике и статистической физике алгоритм Метрополиса -Гастингса представляет собой метод Монте-Карло с цепью Маркова (MCMC) для получения последовательности случайных выборок из распределения вероятностей, из которого прямая выборка затруднена. Эту последовательность можно использовать для аппроксимации распределения (например, для создания гистограммы ) или для вычисления интеграла (например, ожидаемого значения ). Метрополис-Гастингс и другие алгоритмы MCMC обычно используются для выборки из многомерных распределений, особенно когда количество измерений велико. Для одномерных распределений обычно существуют другие методы (например , адаптивная бракованная выборка ), которые могут напрямую возвращать независимые выборки из распределения, и они свободны от проблемы автокоррелированных выборок, присущей методам MCMC.
Алгоритм частично назван в честь Николаса Метрополиса , первого соавтора статьи 1953 года под названием « Уравнение вычислений состояния с помощью быстрых вычислительных машин» , совместно с Арианной В. Розенблут , Маршаллом Розенблутом , Огастой Х. Теллер и Эдвардом Теллером . В течение многих лет алгоритм был известен просто как алгоритм Метрополиса . [1] [2] В статье был предложен алгоритм для случая симметричного распределения предложений, но в 1970 году У.К. Гастингс расширил его на более общий случай. [3] Обобщенный метод в конечном итоге получил оба названия, хотя первое использование термина «алгоритм Метрополиса-Гастингса» неясно.
Некоторые разногласия существуют относительно заслуги в разработке алгоритма Метрополиса. Метрополис, который был знаком с вычислительными аспектами метода, ввел термин «Монте-Карло» в более ранней статье со Станиславом Уламом и возглавил группу теоретического отдела, которая спроектировала и построила компьютер MANIAC I , использованный в экспериментах в 1952. Однако до 2003 года подробного описания разработки алгоритма не было. Незадолго до своей смерти Маршалл Розенблют присутствовал на конференции 2003 года в LANL, посвященной 50-летию публикации 1953 года. На этой конференции Розенблут описал алгоритм и его развитие в презентации под названием «Происхождение алгоритма Монте-Карло для статистической механики». [4] Дальнейшие исторические разъяснения сделаны Губернатисом в журнальной статье 2005 года [5], в которой рассказывается о 50-й юбилейной конференции. Розенблут ясно дает понять, что работу выполнили он и его жена Арианна, и что «Метрополис» не играл никакой роли в разработке, кроме предоставления компьютерного времени.
Это противоречит сообщению Эдварда Теллера, который утверждает в своих мемуарах, что пять авторов статьи 1953 года работали вместе «днями (и ночами)». [6] Напротив, в подробном отчете Розенблюта Теллеру приписывают важное, но раннее предложение «воспользоваться преимуществами статистической механики и взять средние значения по ансамблю вместо того, чтобы следовать подробной кинематике ». Это, по словам Розенблюта, заставило его задуматься об обобщенном подходе Монте-Карло – теме, которую, по его словам, он часто обсуждал с Джоном фон Нейманом . Арианна Розенблут рассказала (Губернатису в 2003 году), что Огаста Теллер начала работу с компьютером, но Арианна сама взяла на себя управление и написала код с нуля. В устной истории, записанной незадолго до его смерти, [7] Розенблут снова приписывает Теллеру постановку исходной проблемы, ему самому - ее решение, а Арианне - программирование компьютера.
Алгоритм Метрополиса – Гастингса может извлекать выборки из любого распределения вероятностей с плотностью вероятности при условии, что мы знаем функцию, пропорциональную плотности , и значения можно вычислить. Требование, чтобы плотность была только пропорциональна, а не точно равна ей, делает алгоритм Метрополиса – Гастингса особенно полезным, поскольку вычисление необходимого нормировочного коэффициента на практике часто бывает чрезвычайно трудным.
Алгоритм Метрополиса – Гастингса генерирует последовательность значений выборки таким образом, что по мере создания все большего и большего количества значений выборки распределение значений более точно приближается к желаемому распределению. Эти значения выборки создаются итеративно, при этом распределение следующей выборки зависит только от текущего значения выборки, что превращает последовательность выборок в цепь Маркова . В частности, на каждой итерации алгоритм выбирает кандидата на следующее значение выборки на основе текущего значения выборки. Затем с некоторой вероятностью кандидат либо принимается, и в этом случае значение кандидата используется на следующей итерации, либо он отклоняется, и в этом случае значение кандидата отбрасывается, а текущее значение повторно используется на следующей итерации. Вероятность принятия определяется путем сравнения значений функции текущего и кандидатского значений выборки относительно желаемого распределения.
В целях иллюстрации ниже описан алгоритм Метрополиса, частный случай алгоритма Метрополиса – Гастингса, в котором функция предложения симметрична.
Позвольте быть функцией, которая пропорциональна желаемой функции плотности вероятности (также известной как целевое распределение) [a] .
Этот алгоритм действует путем случайных попыток перемещения по выборочному пространству, иногда соглашаясь на ходы, а иногда оставаясь на месте. Обратите внимание, что коэффициент приемлемости указывает, насколько вероятен новый предложенный образец по отношению к текущему образцу в соответствии с распределением, плотность которого равна . Если мы попытаемся перейти к точке, которая более вероятна, чем существующая точка (т. е. точка в области с более высокой плотностью, соответствующей ) , мы всегда примем этот шаг. Однако если мы попытаемся перейти к менее вероятной точке, мы иногда отклоним этот шаг, и чем больше относительное падение вероятности, тем больше вероятность того, что мы отклоним новую точку. Таким образом, мы будем стремиться оставаться в регионах с высокой плотностью населения (и возвращать большое количество образцов из них) , лишь изредка посещая регионы с низкой плотностью. Интуитивно понятно, почему этот алгоритм работает и возвращает выборки, которые соответствуют желаемому распределению с плотностью .
По сравнению с таким алгоритмом, как адаптивная отбраковочная выборка [8] , который напрямую генерирует независимые выборки из распределения, алгоритмы Метрополиса-Гастингса и другие MCMC имеют ряд недостатков:
С другой стороны, большинство простых методов отбраковки выборки страдают от « проклятия размерности », когда вероятность отбраковки возрастает экспоненциально в зависимости от количества измерений. Метод Метрополиса-Гастингса, наряду с другими методами MCMC, не имеет этой проблемы в такой степени и, таким образом, часто является единственным доступным решением, когда количество измерений распределения, подлежащего выборке, велико. В результате методы MCMC часто являются предпочтительными методами создания выборок из иерархических байесовских моделей и других многомерных статистических моделей, используемых в настоящее время во многих дисциплинах.
В многомерных распределениях классический алгоритм Метрополиса – Гастингса, описанный выше, включает выбор новой многомерной точки выборки. Когда количество измерений велико, найти подходящее распределение прыжков для использования может быть сложно, поскольку разные отдельные измерения ведут себя очень по-разному, а ширина прыжка (см. выше) должна быть «правильной» для всех измерений одновременно, чтобы избегайте слишком медленного перемешивания. Альтернативный подход, который часто работает лучше в таких ситуациях, известный как выборка Гиббса , предполагает выбор новой выборки для каждого измерения отдельно от других, а не выбор выборки для всех измерений одновременно. Таким образом, проблема выборки из потенциально многомерного пространства будет сведена к набору задач по выборке из маломерного пространства. [10] Это особенно применимо, когда многомерное распределение состоит из набора отдельных случайных величин , в которых каждая переменная обусловлена лишь небольшим количеством других переменных, как это имеет место в большинстве типичных иерархических моделей . Затем отдельные переменные выбираются по одной, при этом каждая переменная зависит от самых последних значений всех остальных. Для выбора этих отдельных выборок могут использоваться различные алгоритмы, в зависимости от точной формы многомерного распределения: некоторые возможности включают методы адаптивной отбраковочной выборки , [8] алгоритм адаптивной отбраковки Метрополиса, [11] простой одномерный Метрополис- Шаг Гастингса, или срезная выборка .
Целью алгоритма Метрополиса-Гастингса является создание набора состояний в соответствии с желаемым распределением . Для этого алгоритм использует марковский процесс , который асимптотически достигает такого уникального стационарного распределения , что . [12]
Марковский процесс однозначно определяется своими вероятностями перехода , т.е. вероятностью перехода из любого данного состояния в любое другое заданное состояние . Оно имеет уникальное стационарное распределение при выполнении следующих двух условий: [12]
Алгоритм Метрополиса-Гастингса включает в себя разработку марковского процесса (путем построения вероятностей перехода), который удовлетворяет двум вышеуказанным условиям, так что его стационарное распределение выбирается равным . Вывод алгоритма начинается с условия детального баланса :
который переписывается как
Подход состоит в том, чтобы разделить переход на два подэтапа; предложение и принятие-отказ. Распределение предложений — это условная вероятность предложения данного состояния , а распределение принятия — это вероятность принять предложенное состояние . Вероятность перехода можно записать как произведение их:
Подставив это соотношение в предыдущее уравнение, получим
Следующим шагом в выводе является выбор коэффициента приемки, который удовлетворяет приведенному выше условию. Одним из распространенных вариантов является выбор Метрополиса:
Для этого коэффициента принятия Метрополиса либо или и в любом случае условие выполняется.
Таким образом, алгоритм Метрополиса – Гастингса можно записать следующим образом:
При выполнении заданных условий эмпирическое распределение сохраненных состояний будет приближаться к . Количество итераций ( ), необходимых для эффективной оценки, зависит от количества факторов, включая взаимосвязь между распределением предложений и желаемой точностью оценки. [13] Для распределения в дискретных пространствах состояний оно должно быть порядка времени автокорреляции марковского процесса. [14]
Важно отметить, что в общей задаче неясно, какое распределение следует использовать или количество итераций, необходимых для правильной оценки; оба являются свободными параметрами метода, которые необходимо адаптировать к конкретной решаемой задаче.
Алгоритм Метрополиса – Гастингса обычно используется для вычисления интеграла. В частности, рассмотрим пространство и распределение вероятностей по , . Метрополис – Гастингс может оценить интеграл вида
где – интересующая (измеримая) функция.
Например, рассмотрим статистику и ее распределение вероятностей , которое является маргинальным распределением . Предположим, что цель состоит в том, чтобы оценить на хвосте . Формально можно записать как
и, таким образом, оценка может быть выполнена путем оценки ожидаемого значения индикаторной функции , которое равно 1 в противном случае и нулю в противном случае. Поскольку находится на хвосте , вероятность нарисовать состояние с на хвосте пропорциональна , что по определению мало. Здесь можно использовать алгоритм Метрополиса – Гастингса для более вероятной выборки (редких) состояний и, таким образом, увеличения количества выборок, используемых для оценки хвостов. Это можно сделать, например, используя выборочное распределение в пользу этих состояний (например, с помощью ).
Предположим, что самое последнее выбранное значение — . Чтобы следовать алгоритму Метрополиса – Гастингса, мы затем рисуем новое состояние предложения с плотностью вероятности и вычисляем значение
где
— отношение вероятностей (например, байесовское апостериорное) между предложенной выборкой и предыдущей выборкой , и
– отношение плотности предложения в двух направлениях (от и обратно). Это значение равно 1, если плотность предложений симметрична. Затем новое состояние выбирается по следующим правилам.
Цепь Маркова запускается с произвольного начального значения , и алгоритм выполняется множество итераций, пока это начальное состояние не будет «забыто». Эти образцы, которые выбрасываются, известны как выгорание . Оставшийся набор принятых значений представляет собой выборку из распределения .
Алгоритм работает лучше всего, если плотность предложения соответствует форме целевого распределения , из которого прямая выборка затруднена, то есть . Если используется плотность предложения по Гауссу , параметр отклонения необходимо настроить в течение периода приработки. Обычно это делается путем расчета коэффициента принятия , который представляет собой долю предложенных образцов, принятую в окне последних образцов. Желаемая скорость принятия зависит от целевого распределения, однако теоретически было показано, что идеальная скорость принятия для одномерного гауссовского распределения составляет около 50% и снижается примерно до 23% для -мерного гауссовского целевого распределения. [15] Эти рекомендации могут хорошо работать при выборке из достаточно регулярных байесовских апостериорных данных, поскольку они часто следуют многомерному нормальному распределению, которое можно установить с помощью теоремы Бернштейна-фон Мизеса . [16]
Если слишком мало, цепочка будет перемешиваться медленно (т. е. скорость принятия будет высокой, но последующие образцы будут медленно перемещаться по пространству, и цепочка будет сходиться лишь медленно к ). С другой стороны, если оно слишком велико, уровень принятия будет очень низким, поскольку предложения, скорее всего, попадут в регионы с гораздо более низкой плотностью вероятности, поэтому они будут очень малы, и снова цепочка будет сходиться очень медленно. Обычно распределение предложений настраивают так, чтобы алгоритмы принимали порядка 30% всех выборок – в соответствии с теоретическими оценками, упомянутыми в предыдущем абзаце.
MCMC можно использовать для получения выборок из апостериорного распределения статистической модели. Вероятность принятия определяется следующим образом: где - вероятность , априорная плотность вероятности и (условная) вероятность предложения.
{{cite book}}
: CS1 maint: others (link)