gpt4 book ai didi

pytorch - `GPyTorch` 中的简单二维高斯过程拟合不佳

转载 作者:行者123 更新时间:2023-12-05 06:25:50 61 4
gpt4 key购买 nike

我在使用 GPyTorch 安装开箱即用的简单二维 GP 时遇到了很多困难。正如您在下面看到的,拟合度非常差,并且将 RBF 内核换成 Matern 之类的东西也没有太大改善。优化似乎确实收敛了,但没有任何合理的东西。

class GPRegressionModel(gpytorch.models.ExactGP):
def __init__(self, train_x, train_y, likelihood):
super(GPRegressionModel, self).__init__(train_x, train_y, likelihood)

self.mean_module = gpytorch.means.ConstantMean()
self.covar_module = gpytorch.kernels.ScaleKernel(
gpytorch.kernels.RBFKernel(ard_num_dims=2),
)

def forward(self, x):
mean_x = self.mean_module(x)
covar_x = self.covar_module(x)
return gpytorch.distributions.MultivariateNormal(mean_x, covar_x)

enter image description here

除了文档中包含的示例之外,还有其他好的教程示例吗?

最佳答案

我在尝试拟合高维高斯过程时遇到了类似的问题。一些建议(不确定这些是否有效):

  1. 尝试使用 ZeroMean,而不是常数均值。可能是因为拥有更多的超参数(恒定的平均超参数值)可能会导致 -mll 目标达到局部最小值,而不是全局最小值。使用不同的优化器,例如lbfgs(它是二阶的,而不是 adamsgd,它们都是一阶的)也可能对此有所帮助。

  2. 尝试使用min-max 归一化来归一化您的输入数据,并使用标准正态 来归一化您的目标 N(0,1) 归一化。简而言之,这些规范化步骤可确保您的数据与这些 GPR 模型的默认先验一致。有关这方面的更多信息,请查看 this GitHub issue .

  3. 尝试更改学习率以优化您的超参数,或您为此训练的轮数。

  4. 如果您发现数值精度有任何问题(特别是在归一化之后,如果您选择使用它),请尝试通过将 torch 张量转换为 double 张量来将您的模型和数据集更改为 double 64 位精度tensor.double().

同样,不能保证这些会解决您遇到的问题,但希望它们有所帮助!

Here are some tutorials I've put together as well .

关于pytorch - `GPyTorch` 中的简单二维高斯过程拟合不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56657552/

61 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com