高斯过程中的超参数估计

机器算法验证 优化 高斯过程 超参数
2022-04-10 20:16:32

我正在尝试优化高斯过程的超参数。作为初学者,我选择协方差的平方指数函数,其中我必须优化 3 个参数和长度参数σfσnl

ky(xp,xq)=σf2exp(12l2(xpxq)2)+σn2δpq

如 [1] 中所述,我尝试使用参数最大化边际似然。为此,我使用 Commons Math 优化器并计算边际似然函数的梯度。

进行优化,除了一个小例子外,一切都很好。一旦我尝试优化,我就会遇到数值问题,并且在优化器的几次迭代之后,该过程的协方差矩阵不再是正定的,因此在优化器中产生错误。σflσnINFINITYNAN

谁能解释这种行为以及与超参数的联系?σn

[1] 机器学习的高斯过程 Carl Edward Rasmussen 和 Christopher KI Williams 麻省理工学院出版社,2006 年。ISBN 0-262-18253-X。

1个回答

每次执行函数评估时,让优化代码打印出超参数是个好主意。通常,一旦您知道模型对超参数值的决定,您就可以找出问题所在。

我怀疑正在发生的事情是模型已经决定一个基本上线性的分类器是最好的,并将设置为零,因为噪声分量被认为是不必要的(这是一个耻辱,因为它为协方差增加了一个脊矩阵,这有助于确保它是 pd)。在这种情况下,仅使用 SEiso 位,因此可能会比,但是要制作线性分类器,它将尝试使σnσfσnl尽可能大,这似乎最终导致在评估指数内的位时导致数值问题。我是 GPML 的重度用户,并且已经看到了这一点。一种解决方案是在搜索过程中限制超参数的对数的大小(这相当于在超参数上有一个超先验),这往往会防止这种情况发生。如果你打印出超参数的值,那么在它“砰”的一声之前打印出来的最后一个值会让你知道在哪里放置限制。这往往不会对性能产生太大影响,超参数中这些点的泛化误差往往相当平坦,这导致梯度下降方法采取较大的步骤,使您远离原点,从而导致数值精度问题。

简而言之,每当您在模型选择中遇到数值问题时,打印出每一步的超参数值。