Quali sono alcuni miglioramenti ben noti rispetto agli algoritmi MCMC del libro di testo che le persone usano per l'inferenza bayesiana?


21

Quando sto codificando una simulazione Monte Carlo per qualche problema, e il modello è abbastanza semplice, utilizzo un campionario Gibbs molto semplice. Quando non è possibile utilizzare il campionamento di Gibbs, codifico il libro di testo Metropolis-Hastings che ho imparato anni fa. L'unico pensiero che ci faccio è scegliere la distribuzione saltante oi suoi parametri.

So che ci sono centinaia e centinaia di metodi specializzati che migliorano rispetto a quelle opzioni di libri di testo, ma di solito non penso mai a usarli / impararli. Di solito sembra che sia troppo sforzo per migliorare un po 'ciò che sta già funzionando molto bene.

Ma recentemente ho pensato se forse non ci sono nuovi metodi generali che possono migliorare rispetto a quello che ho fatto. Sono passati molti decenni da quando quei metodi sono stati scoperti. Forse sono davvero obsoleto!

Esistono alternative ben note a Metropolis-Hastings che sono:

  • ragionevolmente facile da implementare,
  • universalmente applicabile come MH,
  • e migliora sempre in qualche modo i risultati di MH (prestazioni computazionali, precisione, ecc ...)?

Conosco alcuni miglioramenti molto specializzati per modelli molto specializzati, ma ci sono alcune cose generali che tutti usano che non conosco?


1
Intendi la catena Markov Monte Carlo? I miglioramenti del libro di testo alle simulazioni di Monte Carlo che mi vengono in mente riguardano il campionamento antitetico e / o stratificato, così come il quasi-Monte Carlo. La tua menzione solo di Gibbs e Metropolis-Hastings è indicativa del calcolo bayesiano.
StasK,

@StasK, Sì, sono principalmente interessato ai modelli bayesiani e ai modelli di fisica statistica (che è solo inferenza bayesiana su distribuzioni simili a gibbs p (x) = 1 / Z exp (-E (x) / T)). Ci scusiamo per non averlo menzionato.
Rafael S. Calsaverini,

3
(+1) OK, un bell'algoritmo adattivo per scopi generici "recentemente" pubblicato e già implementato in R, Python e Matlab è il twalk . Funziona bene ma è sempre buona norma ricontrollare usando un altro metodo. A proposito, MH è implementato nel pacchetto R mcmc . Naturalmente ce ne sono molti altri, ma la maggior parte di essi non sono implementati in questo livello di generalità e / o sono difficili da implementare. Un'altra area popolare al giorno d'oggi è Sequential Monte Carlo. Spero che aiuti.

2
Potresti già saperlo, ma il campionamento delle sezioni è abbastanza facile da implementare ed evita alcune insidie ​​di un tipico algoritmo Metropolis "random-walk". Un problema con gli algoritmi Metropolis tradizionali è il comportamento di tipo random-walk; piuttosto che muoversi intenzionalmente verso i buoni stati, inciampano, spostandosi lentamente verso le aree buone. Questa è la motivazione dietro i metodi che fanno uso delle informazioni nel gradiente, come HMC, ma anche il campionamento delle sezioni rientra in questo campo ed è più automatico.
ragazzo, il

1
Non so quasi nulla di ABC, ma sarei felice se qualcuno potesse spiegare un po 'le differenze tra i metodi ABC e MCMC ...
Manoel Galdino,

Risposte:


20

Non sono un esperto in nessuno di questi, ma ho pensato di metterli comunque lì fuori per vedere cosa pensava la comunità. Le correzioni sono benvenute.

Un metodo sempre più popolare, che non è terribilmente semplice da implementare, si chiama Hamiltonian Monte Carlo (o talvolta Hybrid Monte Carlo). Utilizza un modello fisico con energia potenziale e cinetica per simulare una palla che ruota attorno allo spazio dei parametri, come descritto in questo documento di Radford Neal. Il modello fisico richiede una discreta quantità di risorse computazionali, quindi si tende a ottenere molti meno aggiornamenti, ma gli aggiornamenti tendono ad essere meno correlati. HMC è il motore del nuovo software STAN che viene sviluppato come alternativa più efficiente e flessibile a BUGS o JAGS per la modellazione statistica.

Esiste anche un intero gruppo di metodi che comportano il "riscaldamento" della catena di Markov, a cui si può pensare come introdurre rumore termico nel modello e aumentare le possibilità di campionare stati a bassa probabilità. A prima vista, sembra una cattiva idea, dal momento che si desidera che il modello esegua il campionamento in proporzione alla probabilità posteriore. Ma in realtà finisci solo per usare gli stati "caldi" per aiutare la catena a mescolarsi meglio. I campioni effettivi vengono raccolti solo quando la catena è alla sua temperatura "normale". Se lo fai correttamente, puoi usare le catene riscaldate per trovare le modalità che una catena normale non sarebbe in grado di raggiungere a causa delle grandi valli di bassa probabilità che bloccano la transizione da modalità a modalità. Alcuni esempi di questi metodi includono MCMC accoppiato a Metropolis ,, tempra parallela e campionamento di importanza ricotta .

Infine, puoi utilizzare il Monte Carlo sequenziale o il filtro antiparticolato quando il tasso di rifiuto sarebbe così elevato che tutti questi altri metodi fallirebbero. Conosco il minimo di questa famiglia di metodi, quindi la mia descrizione potrebbe non essere corretta qui , ma la mia comprensione è che funziona così. Si inizia eseguendo il campionatore preferito, anche se le possibilità di rifiuto sono essenzialmente una. Invece di rifiutare tutti i tuoi campioni, scegli quelli meno discutibili e inizializzi nuovi campionatori da lì, ripetendo il processo fino a trovare alcuni campioni che puoi effettivamente accettare. Quindi torni indietro e correggi il fatto che i tuoi campioni non erano casuali, perché non hai inizializzato i campionatori da posizioni casuali.

Spero che sia di aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.