【发布时间】:2021-03-18 02:33:34
【问题描述】:
有人知道用于高斯过程的常数核的含义吗? sklearn 的文档说它是用来修改高斯过程的均值的。高斯过程中的均值不是一般为零吗?我发现常量内核实际上修改了标准偏差。为什么?
【问题讨论】:
标签: kernel
有人知道用于高斯过程的常数核的含义吗? sklearn 的文档说它是用来修改高斯过程的均值的。高斯过程中的均值不是一般为零吗?我发现常量内核实际上修改了标准偏差。为什么?
【问题讨论】:
标签: kernel
你可以根据定义找到原因。
让
$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$
所以实际上它与带有
的 GP 相同$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 预测函数的多项式逼近中常数项的方差。
【讨论】: