MCMC'ye karşı varyasyonel çıkarım: ne zaman diğerini seçmelisin?


36

Ben, Metropolis Hastings vb Gibbs örneklemesi gibi MCMC çeşitli tatlar içeren VI ve MCMC hem genel fikir edinmek düşünüyorum Bu kağıt iki yöntemde harika serimlemesini sunuyor.

Aşağıdaki sorularım var:

  • Bayesian çıkarım yapmak istersem, neden diğerini seçeyim?
  • Her yöntemin artıları ve eksileri nelerdir?

Bunun oldukça geniş bir soru olduğunu anlıyorum, ancak herhangi bir görüş çok takdir edilecektir.

Yanıtlar:


34

Uzun bir cevap için, Blei, Kucukelbir ve McAuliffe bkz burada . Bu kısa cevap, ağır bir şekilde ondan çekiyor.

  • MCMC asimptotik olarak kesindir; VI değil . Limitte, MCMC tam olarak hedef dağılımı belirleyecektir. VI garanti olmadan geliyor.
  • MCMC, hesaplama açısından pahalıdır . Genel olarak, VI daha hızlıdır.

Yani, tahminlerimizin kesinliğini öldürmek ve değer vermek için hesaplanmış zamanımız olduğunda, MCMC kazanır. Uygunluk için - ya da o kadar büyük verilerle çalışıyoruz: fedakarlığı yapmak zorunda kalmayacağımızı - feda etmeye tahammül edersek , VI doğal bir seçimdir.

Veya, yukarıda bahsedilen yazarlar tarafından daha kesin ve ayrıntılı bir şekilde tarif edildiği gibi:

Dolayısıyla, değişken çıkarım birçok modeli hızla keşfetmek istediğimiz büyük veri kümeleri ve senaryoları için uygundur; MCMC, daha kesin örnekler için daha yüksek bir hesaplama maliyeti ödeyeceğimiz daha küçük veri setleri ve senaryoları için uygundur. Örneğin, MCMC'yi 20 yıl boyunca küçük ama pahalı bir veri seti toplamak için harcadığımız, modelimizin uygun olduğundan emin olduğumuz ve kesin çıkarımlar gerektiren bir ortamda kullanabiliriz. Muhtemel bir metin modelini bir milyar metin belgesine sığdırırken ve çıkarımların büyük bir kullanıcı kitlesine arama sonuçlarını sunmak için kullanıldığı durumlarda, değişken çıkarımlar kullanabiliriz. Bu senaryoda, çıkarımı ölçeklendirmek ve hızlandırmak için dağıtık hesaplama ve stokastik optimizasyon kullanabiliriz ve verilerin birçok farklı modelini kolayca keşfedebiliriz.


Bence Stan MCMC (NUTS) yapmak için en hızlı yazılım. Varyasyonel Çıkarım yapmak için en hızlı (veya daha güçlü) nedir?
skan

3
@skan Harika bir soru! Genel amaçlı bir VI yazılımına gördüğüm en yakın şey edward , ancak kendim kullanmadım. (VI'nın birçok uygulaması özeldir, çünkü ilgilenilen belirli modele uyacak bir algoritma
Sean Easter

2
Stan ayrıca VI'ı da destekliyor. Stan'ın tek kısıtlaması, ayrık değişkenleri örnekleyememesidir.
RJTK

Ayrıca Stan'in yine de GPU’da ADVI’yı çalıştırdığına inanmıyorum. Değişken çıkarım için en hızlı yazılım, muhtemelen her ikisi de son derece optimize edilmiş derin öğrenme çerçevelerine (yani CUDA) dayanan TensorFlow Probability (TFP) veya Pyro'dur. TFP, Edward'ın Google’ın şu anki Google’da TFP’yi yönetmesine neden olan Dustin Tran’ın erken çalışmalarından çıktı.
Adam Erickson

@AdamErickson Bilginize: Stan kademeli olarak kullanmaya başlar GPU'lar arxiv.org/abs/1907.01063
Tim
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.