Почему мы должны заботиться о быстром смешивании в цепочках MCMC?

21

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

Кроме того, если я использую MCMC для оптимизации, нужно ли мне по-прежнему заботиться о быстром микшировании и почему?

Спасибо, что поделились своими мыслями!

qkhhly
источник
Из литературы MCMC известно, что когда цепь Маркова является геометрически эргодической, она экспоненциально быстро затухает при альфа-перемешивании. Мне неясно, как X_ {n} может быстро сходиться к целевому распределению, и в то же время поддерживать высокую корреляцию между последовательными выборками. Есть ли простые примеры? Спасибо за любые вклады!

Ответы:

16

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

¹ Я имею в виду, что последовательные значения быстро «почти не зависят» от начального состояния, или, скорее, что, учитывая значение в одной точке, значения X ñ + k становятся быстро «почти независимыми» от X n с ростом k ; Итак, как говорит Кххли в комментариях, «цепочка не застревает в определенной области пространства состояний».ИксNИксń+КИксNК

Изменить: я думаю, что следующий пример может помочь

Представьте, что вы хотите оценить среднее значение равномерного распределения по по MCMC. Вы начинаете с упорядоченной последовательности ( 1 , , n ) ; на каждом шаге вы выбираете k > 2 элементов в последовательности и случайным образом перемешиваете их. На каждом шаге элемент в позиции 1 записывается; это сходится к равномерному распределению. Значение k контролирует скорость перемешивания: когда k = 2 , это медленно; когда k = n , последовательные элементы независимы, и смешивание происходит быстро.{1,...,N}(1,...,N)К>2ККзнак равно2Кзнак равноN

Вот функция R для этого алгоритма MCMC:

mcmc <- function(n, k = 2, N = 5000)
{
  x <- 1:n;
  res <- numeric(N)
  for(i in 1:N)
  {
    swap <- sample(1:n, k)
    x[swap] <- sample(x[swap],k);
    res[i] <- x[1];
  }
  return(res);
}

Давайте применим его для и построим последовательную оценку среднего значения μ = 50 вдоль итераций MCMC:Nзнак равно99μзнак равно50

n <- 99; mu <- sum(1:n)/n;

mcmc(n) -> r1
plot(cumsum(r1)/1:length(r1), type="l", ylim=c(0,n), ylab="mean")
abline(mu,0,lty=2)

mcmc(n,round(n/2)) -> r2
lines(1:length(r2), cumsum(r2)/1:length(r2), col="blue")

mcmc(n,n) -> r3
lines(1:length(r3), cumsum(r3)/1:length(r3), col="red")

legend("topleft", c("k = 2", paste("k =",round(n/2)), paste("k =",n)), col=c("black","blue","red"), lwd=1)

сходимость mcmc

Здесь вы можете видеть, что для (в черном цвете) сходимость медленная; для k = 50 (синим цветом) это быстрее, но все же медленнее, чем с k = 99 (красным).Кзнак равно2Кзнак равно50Кзнак равно99

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

K <- 5000;
M1 <- numeric(K)
M2 <- numeric(K)
M3 <- numeric(K)
for(i in 1:K)
{
  M1[i] <- mean(mcmc(n,2,100));
  M2[i] <- mean(mcmc(n,round(n/2),100));
  M3[i] <- mean(mcmc(n,n,100));
}

dev.new()
par(mfrow=c(3,1))
hist(M1, xlim=c(0,n), freq=FALSE)
hist(M2, xlim=c(0,n), freq=FALSE)
hist(M3, xlim=c(0,n), freq=FALSE)

гистограмм

Кзнак равно2Кзнак равно50Кзнак равно99

> mean(M1)
[1] 19.046
> mean(M2)
[1] 49.51611
> mean(M3)
[1] 50.09301
> sd(M2)
[1] 5.013053
> sd(M3)
[1] 2.829185
Элвис
источник
4
Я не думаю, что утверждение «чем быстрее оно смешивается, тем быстрее затухает зависимость в последовательных итерациях» является правильным. Например, последовательные итерации всегда будут зависеть от алгоритма Метрополиса-Гастингса. Микширование связано с тем, насколько быстро ваши образцы сходятся к целевому распределению, а не с тем, насколько зависимы последовательные итерации.
Макро
Это то же самое: если оно быстро сходится к целевому распределению, зависимость от начального состояния быстро затухает ... конечно, это будет одинаковым в любой точке цепи (которую можно было бы выбрать в качестве начального состояния). Я думаю, что последняя часть приведенного выше примера является полезным для этого аспекта.
Элвис
1
Да, зависимость от исходного состояния затухает, необязательно зависимость между последовательными итерациями.
Макро
Я написал «в последовательных итерациях», а не «между». Я действительно имею в виду "вместе" ... это неоднозначно, я исправлю.
Элвис
2
Я думаю, я понимаю, что быстро означает смешивание. Дело не в том, что цепочка движется к каждой части поддержки целевого распределения. Скорее, речь идет о цепочке, не застрявшей в определенной части поддержки.
qkhhly
10

(ИксN)α

α(N)знак равновирA,В{|п(Икс0A,ИксNВ)-п(Икс0A)п(ИксNВ)},NN,
(ИксN)π

ИксN

О вашем конкретном комментарии, который

... принятый кандидат должен и будет сконцентрирован в части высокой плотности заднего распределения. Если то, что я понимаю, верно, то хотим ли мы, чтобы цепь проходила через опору (которая включает в себя часть с низкой плотностью)?

(ИксN)

Сиань
источник
1
+1 Большое спасибо за комментарий о антитезе симуляции, это круто
Elvis
αα-α0
ρβ
3

Предположения, которые мотивируют стремление к быстрому микшированию цепочки, заключаются в том, что вы заботитесь о вычислении времени и что вам нужна репрезентативная выборка сзади. Первое будет зависеть от сложности проблемы: если у вас небольшая / простая проблема, может не иметь большого значения, эффективен ли ваш алгоритм. Последнее очень важно, если вас интересует задняя неопределенность или вы знаете заднее среднее с высокой точностью. Однако, если вам не нужна репрезентативная выборка задней части, потому что вы просто используете MCMC для приблизительной оптимизации, это может быть не очень важно для вас.

Бен Лодердейл
источник