Apa sajakah perbaikan terkenal atas algoritma MCMC buku teks yang digunakan orang untuk inferensi bayesian?

21

Ketika saya sedang mengkode simulasi Monte Carlo untuk beberapa masalah, dan modelnya cukup sederhana, saya menggunakan buku sampel Gibbs yang sangat dasar. Ketika tidak mungkin menggunakan sampling Gibbs, saya memberi kode pada buku teks Metropolis-Hastings yang telah saya pelajari bertahun-tahun yang lalu. Satu-satunya pemikiran yang saya berikan adalah memilih distribusi lompat atau parameternya.

Saya tahu ada ratusan dan ratusan metode khusus yang meningkatkan lebih dari opsi buku teks itu, tetapi saya biasanya tidak pernah berpikir tentang menggunakan / mempelajarinya. Biasanya terasa seperti terlalu banyak upaya untuk meningkatkan sedikit apa yang sudah bekerja dengan sangat baik.

Tetapi baru-baru ini saya telah berpikir jika mungkin tidak ada metode umum baru yang dapat memperbaiki apa yang telah saya lakukan. Sudah puluhan tahun sejak metode itu ditemukan. Mungkin saya benar - benar ketinggalan zaman!

Apakah ada alternatif terkenal untuk Metropolis-Hastings yaitu:

  • cukup mudah diimplementasikan,
  • berlaku universal seperti MH,
  • dan selalu meningkatkan hasil MH dalam beberapa hal (kinerja komputasi, akurasi, dll ...)?

Saya tahu tentang beberapa peningkatan yang sangat khusus untuk model yang sangat khusus, tetapi apakah ada beberapa hal umum yang digunakan semua orang yang saya tidak tahu?

Rafael S. Calsaverini
sumber
1
Apakah maksud Anda rantai Markov, Monte Carlo? Buku teks perbaikan untuk simulasi Monte Carlo yang saya bisa pikirkan melibatkan pengambilan sampel antitesis dan / atau bertingkat, serta quasi-Monte Carlo. Anda menyebutkan hanya Gibbs dan Metropolis-Hastings adalah indikasi komputasi Bayesian.
Tugas
@StasK, Ya, saya terutama tertarik pada model bayesian dan model fisika statistik (yang hanya bayesian inferensi pada distribusi gibbs seperti p (x) = 1 / Z exp (-E (x) / T)). Maaf karena tidak menyebutkannya.
Rafael S. Calsaverini
3
(+1) OK, algoritma adaptif tujuan umum yang bagus "baru-baru ini" diterbitkan dan sudah diimplementasikan dalam R, Python dan Matlab adalah twalk . Ini bekerja dengan baik tetapi selalu merupakan praktik yang baik untuk memeriksa ulang menggunakan metode lain. BTW, MH diimplementasikan dalam paket R mcmc . Tentu saja, ada banyak yang lain tetapi kebanyakan dari mereka tidak diimplementasikan pada tingkat umum ini dan / atau mereka sulit untuk diimplementasikan. Area lain yang populer saat ini adalah Sequential Monte Carlo. Saya harap ini membantu.
2
Anda mungkin sudah mengetahui hal ini, tetapi slice sampling cukup mudah untuk diterapkan dan menghindari beberapa jebakan dari algoritma Metropolis "acak-berjalan" yang khas. Masalah dengan algoritma Metropolis tradisional adalah perilaku tipe berjalan acak; alih-alih dengan sengaja menuju keadaan yang baik, mereka tersandung, bergerak perlahan ke area yang baik. Ini adalah motivasi di balik metode yang memanfaatkan informasi dalam gradien, seperti HMC, tetapi slice sampling juga masuk ke dalam kamp ini dan lebih otomatis.
pria
1
Saya hampir tidak tahu apa-apa tentang ABC, tapi saya akan senang jika ada yang bisa menjelaskan sedikit tentang perbedaan antara metode ABC dan MCMC ...
Manoel Galdino

Jawaban:

20

Saya bukan ahli dalam semua ini, tetapi saya pikir saya tetap akan menempatkan mereka di sana untuk melihat apa yang dipikirkan masyarakat. Koreksi dipersilahkan.

Salah satu metode yang semakin populer, yang tidak terlalu mudah untuk diterapkan, disebut Hamiltonian Monte Carlo (atau kadang-kadang Hybrid Monte Carlo). Ini menggunakan model fisik dengan energi potensial dan kinetik untuk mensimulasikan bola bergulir di sekitar ruang parameter, seperti yang dijelaskan dalam makalah ini oleh Radford Neal. Model fisik membutuhkan sumber daya komputasi yang cukup banyak, sehingga Anda cenderung mendapatkan pembaruan yang lebih sedikit, tetapi pembaruan tersebut cenderung kurang berkorelasi. HMC adalah mesin di balik perangkat lunak STAN baru yang sedang dikembangkan sebagai alternatif yang lebih efisien dan fleksibel untuk BUGS atau JAGS untuk pemodelan statistik.

Ada juga sekelompok metode yang melibatkan "memanaskan" rantai Markov, yang dapat Anda pikirkan sebagai pengantar kebisingan termal pada model dan meningkatkan kemungkinan pengambilan sampel kondisi probabilitas rendah. Pada pandangan pertama, itu sepertinya ide yang buruk, karena Anda ingin model untuk sampel secara proporsional dengan probabilitas posterior. Tetapi Anda sebenarnya hanya menggunakan status "panas" untuk membantu rantai lebih baik. Sampel aktual hanya dikumpulkan ketika rantai berada pada suhu "normal". Jika Anda melakukannya dengan benar, Anda dapat menggunakan rantai yang dipanaskan untuk menemukan mode yang tidak dapat dicapai oleh rantai biasa karena lembah besar dengan probabilitas rendah menghalangi transisi dari mode ke mode. Beberapa contoh metode ini termasuk MCMC Metropolis-coupled ,, penempaan paralel , dan sampling kepentingan anil .

Akhirnya, Anda dapat menggunakan Monte Carlo berurutan atau pemfilteran partikel ketika tingkat penolakan akan sangat tinggi sehingga semua metode lainnya akan gagal. Saya tahu sedikit tentang metode keluarga ini, jadi deskripsi saya mungkin salah di sini , tetapi pemahaman saya adalah bahwa cara kerjanya seperti ini. Anda mulai dengan menjalankan sampler favorit Anda, meskipun kemungkinan penolakan pada dasarnya adalah satu. Daripada menolak semua sampel Anda, Anda memilih yang paling tidak pantas, dan menginisialisasi sampler baru dari sana, mengulangi proses sampai Anda menemukan beberapa sampel yang benar-benar dapat Anda terima. Kemudian Anda kembali dan mengoreksi fakta bahwa sampel Anda nonrandom, karena Anda tidak menginisialisasi sampel Anda dari lokasi acak.

Semoga ini membantu.

David J. Harris
sumber