Edward 中的 MCMC 跟踪图
MCMC Trace Plot in Edward
我正在使用 Dirichlet 过程混合模型 (DPMM) 在使用 Edward based on the following 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()
的东西
如何在 Edward 中生成轨迹图?
对于采样中使用的 Empirical
分布,我们可以按如下方式访问采样值:
thin=4
burnin=2000
qmu_trace = qmu.params[burnin::thin].eval()
然后我们可以像往常一样绘制轨迹并计算直方图和自相关。
我正在使用 Dirichlet 过程混合模型 (DPMM) 在使用 Edward based on the following 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()
的东西
如何在 Edward 中生成轨迹图?
对于采样中使用的 Empirical
分布,我们可以按如下方式访问采样值:
thin=4
burnin=2000
qmu_trace = qmu.params[burnin::thin].eval()
然后我们可以像往常一样绘制轨迹并计算直方图和自相关。