Matlab 高斯过程,负超参数?

Matlab 高斯过程,负超参数?,matlab,machine-learning,hyperparameters,Matlab,Machine Learning,Hyperparameters,我正在用GPML工具箱做回归的高斯过程。然而,在使用没有均值函数的“minimize.m”进行优化之后,我得到了一些负的超参数 初始超参数为: hyp.cov=[0;0];%协方差核长度标度&振幅中的两个超参数 hyp.lik=log0.1;%噪声超参数 原始培训数据: x=[819 1119 1419 1599 1719 1839 1899 2019 2079 2139]; %coordinates y=[105.00 114.33 126.33 130.33 116.33 10

我正在用GPML工具箱做回归的高斯过程。然而,在使用没有均值函数的“minimize.m”进行优化之后,我得到了一些负的超参数

初始超参数为:

hyp.cov=[0;0];%协方差核长度标度&振幅中的两个超参数 hyp.lik=log0.1;%噪声超参数

原始培训数据:

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被归一化为零均值和单位方差。然后优化:

hyp = minimize(hyp, @gp, -100, @infExact, [], {@covSEiso}, likfunc, x,y);
在大约100次迭代之后,我得到了一些负的超参数!!!这很令人困惑

然而,如果我不规范化y,所有的超参数在优化后都将为正


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

错误在于初始噪声参数已经为负值:

hyp.lik = log(0.1);   %hyper-parameters of noise
所以我建议你使用正噪声方差,然后再试一次

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


这种行为仅针对集中数据发生的一个可能原因可能是方差小于原始数据的方差。请记住,在贝叶斯线性回归-高斯过程在原则上是什么,噪声方差只是添加到协方差矩阵。在您的例子中,这个加数是负数,它的影响当然会随着方差的减小而增大。

GPML工具箱中的超参数表示为对数。因此,如果要获得实际的长度比例值,请对向量执行expX。

超参数定义为explog\theta,因此即使获得负的超参数,根据定义,它也被约束为正。