通过重要性抽样估计对数似然

机器算法验证 可能性 重要性抽样 变分贝叶斯
2022-03-31 18:41:11

我正在看一个用随机梯度变分贝叶斯训练的模型。本文中,提出了一个重要性采样器来估计似然度:

p(x)1Ss=1Sp(x|zs)p(zs)q(zs|x)

hsq(zs|x).

为了理解这个问题,数量的含义并不完全必要,但我会提供一些信息。我们正在查看表单的图形模型zx, 和z是连续的。地图来自zx是表示条件分布的非线性回归量p(x|z).p(z)另一方面只是先验。q(z|x)是一个“识别模型”,它近似于难以处理的p(z|x)与另一个非线性回归器。考虑到这些分布是给定的并且是固定的,它们的估计是另一回事——它是一种变分方法,它也为我们提供了负对数似然的上限。

现在,似乎我已经在他们的模型和一个数据集上重现了结果。然而,我有两个实际问题。

1)如何测试重要性采样器?自从p(x)是棘手的,我猜它只能用于小型模型。我走的路线是在因子分析上断言它的正确性,其中p(x)是易处理的,我编了一个非常简单的q(x|h).

2)另一个问题是,出于比较原因,我最终对负对数似然感兴趣。因此我到达了

logp(x)=logSlog(s=1Sexp(logp(x|zs)+logp(zs)logq(zs|x)).

一个很好的副作用是,这个数量可以用 log-sum-exp 技巧在数值上稳定地计算出来。

但是,根据样本大小S,我的负对数似然得到以下结果:

1     -> 29.6682416864
20    -> 22.144055709761528
50    -> 21.067476078084795
100   -> 20.458267754505115
200   -> 19.901382220921288
1000  -> 18.911037074948325
10000 -> 17.8730836533

给定样本大小的重要性样本的结果。

我不明白这种渐近行为。是否有意义?或者对数似然抽样的偏差是错误的。

此外,我对该值有一个上限,即 ~14。因此,如果一切都正确,这应该收敛到一个低于该值的值。

0个回答
没有发现任何回复~