1

I've also asked this on the GPflow GitHub

I found the initial guesses for hyperparameters by using m.likelihood.variance.assign(0.01) and m.kernel.lengthscales.assign(0.3) affects significantly to the final optimized hyperparameters. I was wondering if there is a method to get a good initial guess? For example, estimating using the dataset.

joel
  • 6,359
  • 2
  • 30
  • 55
Jie Wang
  • 11
  • 1

2 Answers2

0

As pointed out by Mark on the GPflow GitHub, this is a common issue for GPs in general, irrespective of the implementation (whether in GPflow or other packages), and this draft article on Distill discusses it in a lot of depth.

STJ
  • 1,478
  • 7
  • 25
0

You could try using a global optimizer like scipy.optimize.basinhopping() instead of the typical scipy.optimize.minimize() or tf.optimizers.adam() local optimizers. That would at least give you more confidence that you are not getting stuck in the nearest local optimum.

Rcameron
  • 116
  • 9