0
$\begingroup$

I am applying Gaussian process regression (GPR) model on some data assuming covSEiso (a.k.a. RBF) covariance function. I made sure there are no identical data points (but there are similar data points) and gpml still runs into numerical problems when applying Cholesky decomposition on $K+\sigma_{noise}^2$ I matrix. With other choice of covariance function (e.g. Matern with d parameter 1) things run smoothly. Does this mean the GRP with covSEiso was a wrong model to begin with? I want to decide weather to learn how to deal with the numerical problem (e.g. by removing similar data points which is a hassle IMO) or search for a suitable covariance function.

$\endgroup$
  • 1
    $\begingroup$ Not necessarily. You need to give us a bit more information. Which is you sample size? How many predictors do you have? When you say "similar points", which is the ratio between the minimum and the maximum interpoint sample (I assume you have a small enough sample that you can compute all distances easily)? Most importantly, print the valued of the hyperparameters during optimization $\endgroup$ – DeltaIV Oct 18 '16 at 6:46
1
$\begingroup$

The rbf kernel is extremely smooth and despite it being possibly the most popular choice of kernel it is rarely the best choice (not just IMO but this also seems to be the opinion of most well know researchers in the GP community - watch talks from GPSS for example).

However, no matter what kernel you use there is always a chance that your covariance matrix will be poorly conditioned due to the distribution of the input values - not anything to do with how well the true function is modelled! This is kind of annoying in practice but there are loads of ways to get around it.

The first I don't recommend but is by far the most common hack which is to increase the iid noise (like jitter chol which is build into GPML, GPy, PyGPs... etc). They refer to this extra noise as jitter.

What makes a lot more sense is to use a low rank representation of the covariance matrix. Numerical problems occur when eigen values are close to zero and hence the conditioning is poor. So the first approach adds a constant to every eigen value and the second truncates the spectrum and hence removes the smallest values.

$\endgroup$
  • $\begingroup$ Thank you for your response. Are you suggesting instead of using inverse of $K+\sigma_n^2 I$ (as GPML computes by Cholesky decomposition) to solve the linear system, I should use $\tilde{K}$, a lower-rank approximation of $K$, and take the least-squares approach? $\endgroup$ – Seeda Dec 27 '16 at 18:27
  • 1
    $\begingroup$ @Seeda you can use nystrom for example $\endgroup$ – j__ Dec 27 '16 at 18:53
  • $\begingroup$ Do you suggest using Nystrom approximation over the derivative approach you suggested here? stats.stackexchange.com/questions/189739/… Can Nystrom approximation can also be used for Gaussian process classification? Is there code for Nystrom approach or the derivative approach you can point me to? Thanks. $\endgroup$ – Seeda Dec 27 '16 at 23:55
  • 1
    $\begingroup$ A nystrom based approach will ignore the information gained of a new data point as they are similar in input space and will be kind of averaged. If you include gradients like in that post you might be able to squeeze out a bit more. This is beneficial if you use a very general kernel like the squared exponential. $\endgroup$ – j__ Dec 31 '16 at 13:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.