Apa itu metode Monte Carlo?
Metode Monte Carlo mengestimasi suatu besaran dengan random sampling: ambil banyak input acak, hitung sesuatu untuk tiap input, lalu rata-ratakan hasilnya. Integral, nilai harapan, atau probabilitas yang sulit dihitung secara eksak bisa didekati dengan cara ini, dan estimasinya membaik seiring jumlah sampel bertambah.
Machine learning memakai sampling di mana-mana. Stochastic gradient descent mengestimasi gradient penuh dari mini-batch acak, dropout mengambil subnetwork acak di setiap langkah training, dan model bahasa menghasilkan teks dengan mengambil sampel token berikutnya. Metode Bayesian memakai Markov chain Monte Carlo (MCMC) untuk mengambil sampel dari posterior, dan reinforcement learning mengestimasi expected return dengan merata-ratakan episode hasil sampling.
Ide utama
- Estimasi Monte Carlo mengganti nilai harapan dengan rata-rata atas sampel acak.
- Hukum bilangan besar menjamin rata-rata sampel konvergen ke nilai harapan.
- Integral apa pun bisa ditulis sebagai nilai harapan dan diestimasi dengan sampling.
- Laju konvergensi Monte Carlo tidak bergantung pada jumlah dimensi, berbeda dengan metode grid.
- Importance sampling mengambil sampel dari proposal q dan memberi tiap sampel bobot p/q.
- MCMC membangun random walk yang distribusi jangka panjangnya adalah target, hanya dengan rasio probabilitas.
Pertanyaan umum
Apa bedanya Monte Carlo dan MCMC?
Monte Carlo biasa mengambil sampel independen langsung dari distribusinya. MCMC dipakai untuk distribusi yang tidak bisa disampel langsung: metode ini menjalankan rantai Markov yang sampelnya pada akhirnya mengikuti target. Sampel MCMC saling berkorelasi, jadi 1.000 sampel membawa informasi lebih sedikit daripada 1.000 pengambilan independen. Selisih ini diukur dengan effective sample size.
Apa itu rejection sampling?
Rejection sampling mengambil x dari proposal sederhana q, dengan M·q(x) ≥ p(x) di semua titik, lalu menyimpan x dengan probabilitas p(x) / (M·q(x)). Sampel yang disimpan mengikuti p secara tepat. Sebagian besar proposal terbuang ketika M besar, dan ini umum terjadi di dimensi tinggi.
Apakah angka pseudo-random cukup baik untuk Monte Carlo?
Untuk hampir semua pekerjaan ML dan simulasi, ya. Generator modern lolos uji statistik yang ketat, dan seed yang tetap membuat hasil bisa direproduksi. Barisan quasi-random seperti titik Sobol melangkah lebih jauh dengan sengaja menyebarkan titik secara merata, sehingga error lebih rendah untuk integran yang mulus.
Apa itu reparameterization trick?
Sampel z yang diambil dari N(μ, σ²) tidak punya gradient terhadap μ dan σ. Dengan menuliskannya sebagai z = μ + σ·ε, dengan ε diambil dari N(0, 1), keacakan berpindah ke ε, sehingga gradient bisa mengalir melalui μ dan σ. VAE mengandalkan ini untuk melatih encoder-nya dengan estimasi Monte Carlo dari loss.
Penjelasan terkait
- Probabilitas dan Distribusi · Lemparan koin, kurva lonceng, dan matematika ketidakpastian
- Dasar-Dasar Statistik · Rata-rata, varians, simpangan baku, dan Teorema Limit Pusat
- Teorema Bayes · Memperbarui keyakinan berdasarkan bukti
- Estimasi MLE dan MAP · Maximum likelihood dan maximum a posteriori: alasan training bisa berhasil
- Diffusion Model · Hasilkan gambar dengan belajar membalik proses penambahan noise yang bertahap
- Autoencoder & VAE · Dari kompresi ke generasi: autoencoder standar dan variational
Referensi
- Metropolis & Ulam (1949), "The Monte Carlo Method", Journal of the American Statistical Association
- Metropolis et al. (1953), "Equation of State Calculations by Fast Computing Machines", Journal of Chemical Physics
- Hastings (1970), "Monte Carlo Sampling Methods Using Markov Chains and Their Applications", Biometrika
- MacKay (2003), "Information Theory, Inference, and Learning Algorithms", chapters 29–30
Terakhir diperbarui