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

Non constant observation noise #8

Closed JonnyCBB closed 9 years ago

JonnyCBB commented 9 years ago

Hi

Thank you for creating this package. I only found out about GPR a few months ago and I was hoping to implement it in an algorithm I hope to write soon. Going through the Readme it looks as though you can only specify a single value for the (log) observation noise which I assume is applied to all observations equally. In my case (I do research in X-ray crystallography) each observation is given it's own error. Is there support for specifying a Vector of (log) observation noise to correspond to each observation?

chris-nemeth commented 9 years ago

Hi,

You're right that at the moment we don't support this. I've created a branch called "noise" which allows each observation to have it's own error. When using the optimize! function to estimate the parameters you'll need to set noise=true to estimate these parameters. I'm not sure how well this will work with so many noise parameters, you may end up overfitting the model.

Good luck!

JonnyCBB commented 9 years ago

Thanks for getting back to me. Really appreciate it. In my case the observation errors are given and hence I don't need to optimize these parameters. I've never implemented GPR so I could be wrong but my understanding from reading this paper was that you could specify the observation noise for each observation and keep those as specified and only optimize the hyperparameters. Is this the case or have I interpreted the method incorrectly?

chris-nemeth commented 9 years ago

It's great that the errors are known and don't need to be estimated. Using the "noise" branch, by default the optimize! function will estimate only the mean and kernel hyperparamters and leave the noise parameters untouched. See "regression_1d.jl" in the docs folder.

JonnyCBB commented 9 years ago

Fantastic. Thank you