Solved – How to increase variance in Gaussian Process regression

gaussian processMATLABnormal distributionregression

I'm currently experimenting with Gaussian processes.
I decided to use matlab + gpml (http://www.gaussianprocess.org/gpml/code/) for playing around with Gaussian processes a bit.

I'd like to do Gaussian process regression on 2d data (2d inputs and 1d output). For that I created some simple test data:

    #x y z
    0 0 -1
    0 7 -1
    3 7 -1
    8 3 -1
    5 5 -1
    8 8 5

The result looks like this (I used a unit lengthscale and magnitude with the squared exponential cov function):

x dimension fixed to 8

Now I wanted to add some variance at position (8,8), so I added the following to the training data:

    8 8 -1
    8 8 10
    8 8 -10
    8 8 -8
    ...

I expected the variance at this point to increase a lot. While the mean increased at this point, the variance hardly changed at all. This is the result:
again x is fixed to 8. Data has added variance in (8,8)

I tried to play around with the hyperparameters, but I couldn't get a result that looked like the one I expected: the variance increasing at (8,8)

I'm really stuck here, so I'd really appreciated, if anyone could explain this behavior to.

Best Answer

If you have different y-values for the point (8,8) then you are supposing that there is noise present. You should model this noise, for instance in the covariance function. Try a covariance like this one:

covfunc = {'covSum',{'covSEiso','covNoise'}};
Related Question