高斯过程,负超参数?

时间:2014-06-19 10:50:45

标签: matlab machine-learning hyperparameters

我正在使用GPML工具箱进行回归高斯过程。但是,在优化后使用' minimize.m' (没有平均功能),我得到一些负面的超参数!

初始超参数是:

hyp.cov = [0; 0]; % two hyper-parameters in covariance kernel (length-scale & amplitute) hyp.lik = log(0.1); %hyper-parameters of noise

原始培训数据:

x=[819 1119 1419 1599 1719 1839 1899 2019 2079 2139];   %coordinates

y=[105.00  114.33  126.33 130.33  116.33  103.00  103.00  124.67  122.67  109.00]; %training data

在我的代码中,y是 NORMALIZED ,具有零均值和单位方差。然后优化:

hyp = minimize(hyp, @gp, -100, @infExact, [], {@covSEiso}, likfunc, x,y);

经过大约100次迭代后,我得到了一些负面的超参数!!!这很令人困惑......

但是,如果我没有规范化y,那么所有超参数在优化后都会为正。

有人能告诉我负面超参数是什么意思吗?我应该规范化数据吗?

2 个答案:

答案 0 :(得分:0)

错误是初始噪音参数已经是负数:

hyp.lik = log(0.1);   %hyper-parameters of noise

所以我建议你使用正噪声方差并再试一次。

关于你的另一个问题,是的,将数据标准化通常是一个好主意(即给它们零均值和单位方差)。

仅针对集中式数据发生此行为的可能原因可能是方差变得小于原始数据的方差。请记住,在贝叶斯线性回归中(原则上是高斯过程),噪声方差简单地加到协方差矩阵中。在您的情况下,此加数是负数,对于较小的方差,其效果当然更大。

答案 1 :(得分:-1)

GPML工具箱中的超参数表示为对数。因此,如果您想获得实际的长度比例值,请在向量上执行exp(X)。