Closed AlexisOlson closed 3 years ago
Very interesting, thank you for the detailed report! We may have to make the prior over the warping parameters even stricter. In the paper they used a very flexible prior (logNormal(loc=0, scale=0.89)) distribution which turned out to be too unstable (the likelihood quickly favored extreme warping functions to overfit the data). I think it makes sense to really encourage the likelihood to stay close to the identity function and only with significant data it should be able to deviate.
edit: Currently, I apply a logNormal(0, 0.5) distribution as prior.
With the new version of bask==0.9.3
does this problem still occur?
With the new version of
bask==0.9.3
does this problem still occur?
It's still a problem with bask 0.10.0.
Ok, I will investigate further.
The error message:
lib\site-packages\sklearn\gaussian_process\kernels.py:255:
RuntimeWarning: divide by zero encountered in log
return np.log(np.hstack(theta))
happens during the initial maximum (marginal) likelihood step where the Gaussian process is fit with identity warping function. During the optimization of the likelihood it can happen that it sets the noise to 0 (the final estimate was 1e-5). That is possible because we give it a noise estimate per datapoint (the standard error of the Elo estimate). Thus by 0 noise we mean 0 residual variation. That causes a 0 to be passed into the log function. Even though I think this is not problematic for us, I will add additional checks and filter the warning.
Regarding the strong warping, I will debug some more.
Fixed this particular warning in bask 0.10.2.
Description
I'm trying a tune of three parameters but turning on
warp_input
throws a divide by zero error every iteration and a weird warping for one of the parameters along with weird confidence bound for all parameters. (Everything looks normal without warping.)Error:
Without warping:
With warping:
Warp functions:
This warping for
ScaleQ
doesn't make sense but I suspect that it doesn't know what it's doing because the effect of this parameter is still not yet determined very well. The effect isn't nearly as strong as the other parameters and there is an expected interaction among all of them. I'll keep running non-warpedts
andvr
sampling for a while and try again once it starts to understand better.Files to reproduce: DataAndConfig.zip
What I Did
Changing
"warp_inputs": false
to"warp_inputs": true
in theconfig.json
results in the runtime warning:Related to #92.