Участок следа MCMC в Эдварде

Я использую смешанную модель процессов Дирихле (DPMM) для определения назначений кластеров и параметров кластеров в синтетическом наборе данных с помощью Edward. на основе следующего сообщения сообщества. Я использую Metropolis Hastings с ускорением на GPU для изучения апостериорного распределения по параметрам модели. Например, для кластерных средств имеем:

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?


person Vadim Smolyakov    schedule 25.09.2017    source источник


Ответы (1)


Для распределения Empirical, используемого при выборке, мы можем получить доступ к выборочным значениям следующим образом:

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

Затем мы можем построить трассировку и вычислить гистограмму и автокорреляцию, как обычно.

person Vadim Smolyakov    schedule 25.09.2017