2

我正在使用 Dirichlet 过程混合模型 (DPMM)根据以下社区帖子使用Edward推断合成数据集上的集群分配和集群参数。我正在使用 GPU 加速的 Metropolis Hastings 来学习模型参数的后验分布。例如,对于聚类均值,我们有:

D = 2 #dimension of the data
K = 5 #cluster truncation
T = 10000 #number of samples
mu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K)  
qmu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K) #posterior
gmu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K) #proposal

inference = ed.MetropolisHastings(
    latent_vars={mu: qmu, ...},
    proposal_vars={mu: gmu, ...},
    data={x: x_data})

我有兴趣生成跟踪图以可视化来自后验分布的样本qmu。我正在寻找类似于 PyMCpm.traceplot() 如何在 Edward 中生成跟踪图?

4

1 回答 1

2

对于Empirical采样中使用的分布,我们可以按如下方式访问采样值:

thin=4
burnin=2000
qmu_trace = qmu.params[burnin::thin].eval()

然后我们可以像往常一样绘制轨迹并计算直方图和自相关。

于 2017-09-25T16:31:19.290 回答