在GPflow 网站上的多类分类教程中,稀疏变分高斯过程 (SVGP) 用于一维玩具示例。与所有其他 GPflow 模型的情况一样,SVGP 模型有一个方法predict_y(self, Xnew)可以返回点处保留数据的均值和方差Xnew。
从教程中可以清楚地看出,解压缩的第一个参数是三个类别(单元格和)predict_y中每一个类别的后验预测概率,如下图第二个面板中的彩色线所示。然而,作者没有详细说明可以从 中解压缩的第二个参数,即预测的方差。在回归设置中,它的解释对我来说很清楚,因为在这种情况下后验预测分布将是高斯分布。[7][8]predict_y
但我不明白这里的解释是什么。特别是,我想知道如何使用此度量来构建误差线,表示任何新数据点的类预测的不确定性。
我稍微修改了教程的代码,在下面的图中添加了一个附加面板:第三个面板以黑色显示最大标准差(从 获得的方差的平方根predict_y)。显然,它是衡量不确定性的一个很好的指标,而且最高可能值为 0.5 也可能并非巧合,但我找不到它的计算方式及其代表的含义。
此处包含所有代码的完整笔记本。
def plot(m):
f = plt.figure(figsize=(12,8))
a1 = f.add_axes([0.05, 0.05, 0.9, 0.5])
av = f.add_axes([0.05, 0.6, 0.9, 0.1])
a2 = f.add_axes([0.05, 0.75, 0.9, 0.1])
a3 = f.add_axes([0.05, 0.9, 0.9, 0.1])
xx = np.linspace(m.X.read_value().min()-0.3, m.X.read_value().max()+0.3, 200).reshape(-1,1)
mu, var = m.predict_f(xx)
mu, var = mu.copy(), var.copy()
p, v = m.predict_y(xx)
a3.set_xticks([]) …Run Code Online (Sandbox Code Playgroud)