Open matt-graham opened 2 months ago
In addition to the above adaptation scheme for the step size we may also wish to consider implementing a dual averaging based scheme as described in Algorithm 5 in Hoffman and Gelman (2014) (based on Nesterov (2009)) and implemented in for example Stan.
For the covariance / preconditioner adaptation, we may also want to consider the robust scheme decribed in Vihola (2011) and implemented in the ramcmc
package.
The tuning parameters of the Barker proposal (at a minimum a scalar step size and potentially a diagonal or dense preconditioner) would ideally be adaptively tuned in a initial warm-up stage of the chain using an adaptive Markov chain Monte Carlo approach.
Livingstone and Zanella (2022) suggest using a scheme from Andrieu and Thoms (2008), corresponding to
$$ \begin{aligned} \log(\sigmat) &= \log(\sigma{t-1}) + \gamma_t (\alpha(X_t, Y_t) - \alpha^*),\ \mut &= \mu{t-1} + \gamma_t (Xt - \mu{t-1}) \ \Sigma_t &= \Sigma_t + \gamma_t ((X_t - \mu_t)(X_t - \mut)^T - \Sigma{t-1}) \ \end{aligned} $$
where
Tasks
ramcmc
package