爱德华的MCMC跟踪情节

时间:2017-09-25 01:30:06

标签: machine-learning mcmc edward

我正在使用Dirichlet过程混合模型(DPMM)根据以下Edward使用community post在合成数据集上推断群集分配和群集参数。我正在使用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的样本。我正在寻找类似于PyMC pm.traceplot()的东西 如何在爱德华中生成跟踪图?

1 个答案:

答案 0 :(得分:2)

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

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

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