STOR-i / GaussianProcesses.jl

A Julia package for Gaussian Processes
https://stor-i.github.io/GaussianProcesses.jl/latest/
Other
308 stars 53 forks source link

Implemented The Elliptical Slice Sampler #119

Closed Red-Portal closed 4 years ago

Red-Portal commented 4 years ago

Implemented the elliptical slice sampler (ESS) as described in,

Murray, Iain, Ryan P. Adams, and David JC MacKay. "Elliptical slice sampling." 
Journal of Machine Learning Research 9 (2010): 541-548.

I named the function as ess but please change it accordingly. I think changing mcmc to hmc would be more an appropriate but breaking change? To implement sampling from the hyperparameter priors, I added sample_params in both GPE.jl and GPMC.jl I didn't have the time to benchmark against HMC but I believe ESS is much more efficient. Also, ESS doesn't have any hyperparameters so it's pretty easy to use.

I have one question though, why post in hmc is row-major while the adjoint is returned? I think declaring it in column-major order would be more efficient and cleaner.

thomaspinder commented 4 years ago

This looks great, thanks @Red-Portal! I'll review the PR later today.

Are you able to write a few tests for future stability, please?

Red-Portal commented 4 years ago

@thomaspinder I'll do that once I have time to spare. I guess about next week or so!

thomaspinder commented 4 years ago

No problem @Red-Portal!

thomaspinder commented 4 years ago

Hi @Red-Portal. Have you had a chance to look at this? I have some time this week so can help to get this pull request through.

Red-Portal commented 4 years ago

Hi @thomaspinder , I'm sorry, I didn't have time to work on it. I'll surely work on this at the weekend.

thomaspinder commented 4 years ago

Sure @Red-Portal. If you need help with anything, then just let me know.

Also, just make sure you're working from the current version as GPMC has been deprecated in favour of GPA.