Kernel 高斯过程的常数核

Kernel 高斯过程的常数核,kernel,Kernel,有人知道高斯过程中使用的常数核的含义吗?sklearn的文件称,它用于修改高斯过程的平均值。一般来说,高斯过程中的平均值不是零吗?我发现常数核实际上修改了标准偏差。为什么?您可以根据定义找到原因 让 $f(x)\sim GP(m(x)=0,k(x_i,x_j))$ 就是说, $E[f(x)]=0$,$cov[f(x_i),f(x_j)]=k(x_i,x_j)$ 如果在内核中添加常量c $cov[f(x_i),f(x_j)]=E[(f(x_i)-E[f(x_i)](f(x_j)-E[f(x_i)]

有人知道高斯过程中使用的常数核的含义吗?sklearn的文件称,它用于修改高斯过程的平均值。一般来说,高斯过程中的平均值不是零吗?我发现常数核实际上修改了标准偏差。为什么?

您可以根据定义找到原因

$f(x)\sim GP(m(x)=0,k(x_i,x_j))$

就是说,

$E[f(x)]=0$,$cov[f(x_i),f(x_j)]=k(x_i,x_j)$

如果在内核中添加常量c

$cov[f(x_i),f(x_j)]=E[(f(x_i)-E[f(x_i)](f(x_j)-E[f(x_i)]]=E[f(x_i)f(x_j)]-m(x_i)m(x_j)=E[f(x_i)f(x_j)]=k(x_i,x_j)+c$

所以实际上它和普通医生一样

$sqrt(c),k(x_i,x_j)$

因为

$cov[f(x_i),f(x_j)]=E[f(x_i)f(x_j)]-m(x_i)m(x_j)=E[f(x_i)f(x_j)]-c=k(x_i,x_j)$


在实践中,可以使用向内核添加常量,而不是移动数据集标签的平均值Y。我已经观察过很多次了

例如,假设我想使用RBF核加上常数核σ^2来拟合平滑函数,其中Ymean=3.5。在这种情况下,在超参数优化(通过边际似然最大化)后,超参数σ变得非常接近Ymean值3.5

相反,我可以手动减去平均值,并使用相同的内核在新的Y*=Y-Ymean上拟合高斯过程。在这种情况下,我将获得接近于零的σ

更正式地说,核中常数的含义正是GP预测函数多项式逼近中常数项的方差