Python GPFlow:如何从均值模型中考虑不确定性

Python GPFlow:如何从均值模型中考虑不确定性,python,numpy,statistics,gpflow,Python,Numpy,Statistics,Gpflow,在一个例子中,我们可以在GP回归中加入一个拟合的均值函数。当按照基本方法进行此操作时,结果是,由于平均值拟合的不确定性,将不会有不确定性。例如,在下面的示例中,误差条不会超出可用数据的范围,因为线性平均值的斜率保持固定在其优化值。是否有办法解释这些不确定性,从而在外推时误差带增加 该问题最初是在一份声明中提出的,但为了更容易理解,将其移至此处 将numpy作为np导入 将matplotlib.pyplot作为plt导入 导入gpflow 从gpflow.utilities导入打印摘要 def外汇

在一个例子中,我们可以在GP回归中加入一个拟合的均值函数。当按照基本方法进行此操作时,结果是,由于平均值拟合的不确定性,将不会有不确定性。例如,在下面的示例中,误差条不会超出可用数据的范围,因为线性平均值的斜率保持固定在其优化值。是否有办法解释这些不确定性,从而在外推时误差带增加

该问题最初是在一份声明中提出的,但为了更容易理解,将其移至此处

将numpy作为np导入 将matplotlib.pyplot作为plt导入 导入gpflow 从gpflow.utilities导入打印摘要 def外汇: 返回np.sin3*x+x xtrain=np.linspace0,3,50.重塑[-1,1] ytrain=fxtrain+0.5*np.random.randnlenxtrain.reformate[-1,1]-0.5 k=gpflow.kernels.SquaredExponential meanf=gpflow.mean_函数.线性 m=gpflow.models.GPRdata=xtrain,ytrain,kernel=k,mean_函数=meanf opt=gpflow.optimizers.Scipy def目标_关闭: 返回-m.log\u边际可能性 opt_logs=opt.minimizeobjective_闭包, m、 可训练的变量, 选项=dictmaxiter=100 打印摘要 xpl=np.linspace-5,10100.1 平均值,var=m.predict\u fxpl plt.figurefigsize=12,6 plt.plotxtrain,ytrain,'x' plt.plotxpl,平均值'C0',lw=2 plt.fill_在Nxpl[:,0], 平均值[:,0]-1.96*np.sqrtvar[:,0], 平均值[:,0]+1.96*np.sqrtvar[:,0], 颜色='C0',α=0.2
GPflow的大多数模型只优化核、平均函数和似然的超参数的MAP估计。该模型不考虑训练或预测期间这些超参数的不确定性。虽然这可能会限制某些问题,但我们经常发现,这是计算复杂性和不确定性量化之间的合理折衷

也就是说,在您的具体情况下,即线性平均函数,我们可以通过指定线性核函数而不是线性平均函数来解释数据线性趋势中的不确定性

将代码段与此模型规范一起使用:

k=gpflow.kernels.SquaredExponential+gpflow.kernels.Linear meanf=gpflow.mean_函数.Zero m=gpflow.models.GPRdata=xtrain,ytrain,kernel=k,mean_函数=meanf 提供以下拟合,误差条超出数据范围:

相关:由非线性超参数估计和地图值周围的拉普拉斯近似引起的一般不确定性。