有没有一种方法可以使用GPML对多维输出(可能是相关的)执行高斯过程回归?
在演示脚本中, 我只能找到一维示例。
关于CV 的类似问题,涉及多维输入的情况。
我浏览了他们的书,看看是否能找到任何东西。在本书的第9章(第9.1节)中,他们提到了这种多输出的情况。他们提到了几种解决方法,一种是使用相关的噪声处理,另一种是使用Cokriging(相关的先验)。
我还是不知道如何将所有这些想法整合到GPML框架中。
另外,还有其他支持多维输出的GP库/框架吗?
有没有一种方法可以使用GPML对多维输出(可能是相关的)执行高斯过程回归?
在演示脚本中, 我只能找到一维示例。
关于CV 的类似问题,涉及多维输入的情况。
我浏览了他们的书,看看是否能找到任何东西。在本书的第9章(第9.1节)中,他们提到了这种多输出的情况。他们提到了几种解决方法,一种是使用相关的噪声处理,另一种是使用Cokriging(相关的先验)。
我还是不知道如何将所有这些想法整合到GPML框架中。
另外,还有其他支持多维输出的GP库/框架吗?
Answers:
我相信双高斯过程正是您想要的。我无法比论文本身的摘要更好地描述模型,所以我只想复制粘贴一下:
我们描述双高斯过程(TGP)1,这是一种通用的结构化预测方法,在协变量和响应(均是多元变量)上均使用高斯过程(GP)先验[2],并通过最小化两个GP的Kullback-Leibler散度来估计输出,这些GP被建模为训练和有限索引集上的正态分布测试示例,强调目标是相似的输入应产生相似的感知,并且平均而言应保持在其边际分布之间。TGP不仅捕获了典型GP中协变量之间的相互依存关系,而且还捕获了响应之间的相互依存关系,因此考虑了输入和输出之间的相关性。以最近发布的HumanEva基准测试中的单眼和多镜头视频序列中的3d人体姿势重建为例,TGP的效果令人鼓舞。对于联合训练的模型,使用来自多个人员和多个活动的数据,我们平均每3d标记平均出现5厘米的误差。该方法快速,自动:无需手工制作初始姿势,相机校准参数,也不需要与用于训练或测试的人类对象相关的3d人体模型。
作者慷慨地提供了代码和示例数据集以供入门。
简短的回答多维输出的回归有些棘手,在我目前的知识水平上,还没有直接纳入GPML工具箱中。
长答案您可以将多维输出回归问题分解为3个不同的部分。
希望对您有所帮助:)
这是scikit-learn的一个模块,对我来说非常好:
http://scikit-learn.org/stable/auto_examples/gaussian_process/plot_gp_regression.html
# Instanciate a Gaussian Process model
gp = GaussianProcess(corr='cubic', theta0=1e-2, thetaL=1e-4, thetaU=1e-1,
random_start=100)
# Fit to data using Maximum Likelihood Estimation of the parameters
gp.fit(X, y)
# Make the prediction on the meshed x-axis (ask for MSE as well)
y_pred, MSE = gp.predict(x, eval_MSE=True)
sigma = np.sqrt(MSE)
我正在寻找多输出高斯过程,并发现了许多处理方法,例如卷积方法,混合效果建模方法以及最新的一种双高斯过程(TGP)。
我对双高斯过程(TGP)的概念有疑问。有人可以帮我吗?
在TGP中,作者正在找出预测输出(),从而使输入和输出之间的KL差异最小,反之亦然。但总的来说,我们寻找输出的预测分布,即。这里要说明的一件事是预测方差,即,在其中没有任何作用。对于TGP,预测输出是否与预测分布的平均值相同? p(ÿ*|Ý)〜(μ,σ2)σ2ÿ ÿ ÿ