MCMC zincirlerinde neden hızlı karışmaya dikkat etmeliyiz?


21

Çıkarım için Markov zinciri Monte Carlo ile çalışırken, hızlı bir şekilde karışan, yani posterior dağılımın desteğini hızla hareket ettiren bir zincire ihtiyacımız var. Fakat neden bu özelliğe ihtiyaç duyduğumuzu anlamıyorum, çünkü anladığım kadarıyla, kabul edilen aday çizimleri posterior dağılımın yüksek yoğunluklu kısmında yoğunlaşmalı ve yoğunlaşmalıdır. Anladığım şey doğruysa, hala zincirin destek içinde hareket etmesini istiyor muyuz (düşük yoğunluklu kısmı içeren)?

Ek olarak, optimizasyon yapmak için MCMC kullanıyorsam, hala hızlı karıştırma ve neden dikkat etmem gerekiyor?

Düşüncelerinizi paylaştığınız için teşekkür ederiz!


MCMC literatüründe, bir Markov zinciri geometrik olarak ergodik olduğunda, üssel olarak hızlı alfa karışımı bozunması olduğu bilinmektedir. X_ {n} 'in hedef dağılıma nasıl hızlı bir şekilde yaklaşabileceği ve yine de ardışık örnekler arasında yüksek korelasyonu koruyabildiği konusunda net değilim. Basit örnekler var mı? Herhangi bir giriş için teşekkürler!

Yanıtlar:


16

İdeal Monte Carlo algoritması birbirini takip eden bağımsız rasgele değerleri kullanır . MCMC'de, ardışık değerler bağımsız değildir; bu, yöntemi ideal Monte Carlo'dan daha yavaş birleştirir; Bununla birlikte, ne kadar hızlı karışırsa, ardışık yinelemelerde bağımlılık o kadar hızlı azalır¹ ve daha hızlı birleşir.

¹ I izleyen değerlerinin değer verilen oldukça hızlı bir şekilde "hemen hemen bağımsız bir" başlangıç durumuna ait veya olduğunu burada ortalama Xn değerler bir noktada Xń+k ve "neredeyse bağımsız" hızlı hale Xn olarak k büyür; öyleyse, qhhhly'nin dediği gibi, “zincir devlet alanının belli bir bölgesinde sıkışıp kalmaz”.

Düzenleme: Aşağıdaki örnekte yardımcı olabileceğini düşünüyorum

Tekdüze dağılımın ortalamasını MCMC'ye göre tahmin etmek istediğinizi düşünün . Sıralı diziyle başlayın ; Her adımda, sekanstaki elementleri seçtiniz ve rastgele karıştırınız. Her adımda, 1 konumundaki eleman kaydedilir; bu tekdüze dağılımına yaklaşır. Değeri kontrol karıştırma hız: zaman , yavaş olduğu; zaman , birbirini takip eden elemanlar bağımsızdır ve karıştırma hızlıdır.( 1 , , n ) k > 2 k k = 2 k = n{1,,n}(1,,n)k>2kk=2k=n

İşte bu MCMC algoritması için bir R fonksiyonu:

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);
}

için uygulayalım ve MCMC yinelemeleri boyunca ortalama ardışık tahminini çizelim:μ = 50n=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 yakınsama

Burada (siyah) yakınsamanın yavaş olduğunu görebilirsiniz; için (mavi), daha hızlı, ama yine de daha yavaş olduğundan daha (kırmızı).k = 50 k = 99k=2k=50k=99

Sabit bir yinelemeden sonra, örneğin 100 yinelemeden sonra, tahmini ortalamanın dağılımı için bir histogram da çizebilirsiniz:

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)

histogramlar

Sen ile görebiliriz (M1), 100 tekrar başlangıç değerine etkisi sadece size korkunç bir sonuç verir. İle o ok ile hala daha büyük standart sapma ile görünüyor . İşte araçlar ve sd:k = 50 k = 99k=2k=50k=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
"Ne kadar hızlı karışırsa, bağımlılık ardışık yinelemelerde azalırsa" ifadesinin doğru olduğunu düşünmüyorum. Ardışık tekrarlamalar, örneğin Metropolis-Hastings algoritması kullanılarak her zaman bağımlı olacaktır. Karıştırma, numunelerinizin ne kadar hızlı ardışık yinelemelerin ne kadar bağımlı olduğunu değil, hedef dağıtıma ne kadar hızlı dönüştüğü ile ilgilidir.
Makro

Bu aynıdır: hızlı bir şekilde hedef dağılımına yaklaşırsa, başlangıç ​​durumundan bağımlılık hızlı bir şekilde azalır ... tabii ki bu, zincirin herhangi bir noktasında aynı olacaktır (başlangıç ​​durumu olarak seçilmiş olabilir). Bence yukarıdaki örneğin son kısmı bu yönü aydınlatıyor.
Elvis

1
Evet, başlangıçtaki durumdan bağımlılık, ardışık yinelemeler arasında bağımlılık olmak zorunda değil.
Makro

"Arasında" değil, "ardışık yinelemelerde" yazdım. Gerçekten "birlikte" demek ... bu belirsiz, düzelteceğim.
Elvis

2
Hızlı bir şekilde karıştırmanın ne demek olduğunu anladığımı düşünüyorum. Zincir, hedef dağıtım desteğinin her yerine hareket etmiyor. Aksine, desteğin belirli bir bölümünde sıkışmamış zincirle ilgili daha fazla.
qkhhly

10

Her iki önceki yanıtın tamamlanmasında, karıştırma, MCMC yakınlaşmasının yalnızca bir yönüdür. Gerçekten de, Markov zincirinin başlangıç ​​değerini ya da dağıtımını unutma hızı ile doğrudan bağlantılıdır . Örneğin, matematiksel kavramı yoğurma ile tanımlanır ölçüα(Xn)α

( X n ) π

α(n)=supA,B{|P(X0A,XnB)P(X0A)P(XnB)},nN,
sıfıra yakınsama hızı karışımın özelliğidir. Bununla birlikte, bu tedbir ile doğrudan hızı hangi ile ilgili değildir hedef dağıtımı için yakınsak . Birisi hedefe çok hızlı yaklaşabilir ve zincir elemanları arasında hala yüksek korelasyon tutabilir.(Xn)π

Ayrıca, arasındaki bağımsızlık sadece bazı ayarlarda geçerlidir. Bütünleşmeyi hedeflerken , negatif korelasyon (aka antitetik simülasyon ) bağımsızlıktan üstündür.Xn

Özel yorumunuz hakkında

... kabul edilen adayın, posterior dağılımın yüksek yoğunluklu kısmında toplanması gerekir ve olacaktır. Anladığım şey doğruysa, hala zincirin destek içinde hareket etmesini istiyor muyuz (düşük yoğunluklu kısmı içeren)?

MCMC zinciri, hedefi (durağan rejiminde) tam olarak orantılı bir şekilde araştırır, böylece gerçekten yüksek yoğunluklu bölgelerde daha fazla zaman harcar. Hedef düşük yoğunluklu bölgelerle ayrılmış birkaç yüksek yoğunluklu bileşene sahip olduğunda zincirin düşük yoğunluklu bölgeleri geçmesi gerektiği ile ilgilidir. (Buna multimodal ayar da denir.) Yavaş karıştırma, zincirin bu kadar düşük yoğunluklu bölgeleri geçmesini engelleyebilir. Zincirin hiç ziyaret etmemesi gereken tek bölge , hedef dağılımı altında sıfır olasılık bulunan bölgelerdir.(Xn)


1
+1 Antitetik simülasyon hakkındaki yorumunuz için teşekkür ederiz, bu çok güzel
Elvis

@ Xi'an (+1): bu buldum ( -) karışımının ilk net tanımı budur, iki soru (1) başka tür karıştırılmış olan mixing ve (2) pratikte vardır Kullanılabilir önlemler çünkü tanımımda zincirimin bu üstünlükle karışımını nasıl hesaplayabileceğimi göremiyorum. Ardından, değerinin yakınsama için yeterli olmadığını görüyorum, yakınsama önlemleri var mı? α - α 0ααα0

mixing ve mixing gibi çeşitli karıştırma türleri vardır . MCMC ile bağlantılı olarak ve Wikipedia'dan alıntı yapılması durumunda, kesinlikle durağan bir Markov süreci, eğer sadece bir aperiodik tekrarlayan Harris zinciri ise ve sadece mixing karıştırıyor. βρβ
Xi'an,

3

Hızla karıştıran bir zincirleme isteğini motive eden varsayımlar, hesaplama zamanını önemsemediğiniz ve posteriordan temsili bir örnek istediğinizdir. İlki, sorunun karmaşıklığına bağlı olacaktır: küçük / basit bir sorununuz varsa, algoritmanızın verimli olup olmadığı önemli olmayabilir. İkincisi, arkadaki belirsizlikle ilgileniyorsanız veya arka ortalamayı yüksek hassasiyetle biliyorsanız çok önemlidir. Bununla birlikte, posteriorun temsili bir örneğini almayı umursamıyorsanız, yaklaşık optimizasyon yapmak için sadece MCMC kullandığınızdan, bu sizin için çok önemli olmayabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.