加入新推出的
Discord 社区,展开实时讨论,获得同行支持,并直接与 Meridian 团队互动!
meridian.model.posterior_sampler.PosteriorMCMCSampler
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
使用 MCMC 从后验分布中进行抽样的可调用项。
meridian.model.posterior_sampler.PosteriorMCMCSampler(
meridian: 'model.Meridian'
)
方法
__call__
查看源代码
__call__(
n_chains: (Sequence[int] | int),
n_adapt: int,
n_burnin: int,
n_keep: int,
current_state: (Mapping[str, tf.Tensor] | None) = None,
init_step_size: (int | None) = None,
dual_averaging_kwargs: (Mapping[str, int] | None) = None,
max_tree_depth: int = 10,
max_energy_diff: float = 500.0,
unrolled_leapfrog_steps: int = 1,
parallel_iterations: int = 10,
seed: (Sequence[int] | None) = None,
**pins
) -> az.InferenceData
对后验分布运行马尔可夫链蒙特卡洛 (MCMC) 抽样。
如需详细了解这些实参,请参阅 windowed_adaptive_nuts
。
实参 |
n_chains
|
MCMC 链的数量。如果给定一个整数序列,将为每个元素调用一次 windowed_adaptive_nuts 。每次 windowed_adaptive_nuts 调用的 n_chains 实参等于相应的整数元素。通过使用整数列表,可以将 windowed_adaptive_nuts 调用的链拆分为多个调用,从而减少每个调用的链数。这样可以减少内存用量。由于每次抽样调用都会在更少的链上进行优化,因此可能需要更多的自适应步骤才能收敛。
|
n_adapt
|
每条链的自适应抽样次数。
|
n_burnin
|
每条链的预选抽样次数。预选抽样发生在自适应抽样和保留抽样之间。
|
n_keep
|
每条链保留的抽样次数(整数),抽取的样本将用于推理。
|
current_state
|
可选的张量结构,用于初始化抽样。使用与 model.experimental_pin(**pins).sample(n_chains) 相同的形状和结构。
|
init_step_size
|
可选整数,用于确定在哪里初始化蛙跳积分器的步长。结构必须使用 current_state 进行广播。例如,如果初始状态为 { 'a':
tf.zeros(n_chains), 'b': tf.zeros([n_chains, n_features]), } ,则 1. 、{'a': 1., 'b': 1.} 或 {'a': tf.ones(n_chains), 'b':
tf.ones([n_chains, n_features])} 中的任何一个均可。默认为对数密度维度的 ¼ 次方。 |
dual_averaging_kwargs
|
可选的字典关键字实参,要传递给 tfp.mcmc.DualAveragingStepSizeAdaptation 。默认情况下,将 target_accept_prob 设置为 0.85 ,并使用调和平均数减小各链的接受概率,否则,使用类默认值。
|
max_tree_depth
|
NUTS 以隐式方式构建的树的最大深度。最大蛙跳步数受 2**max_tree_depth 的限制,例如,节点深度为 max_tree_depth 的二叉树的节点数。默认设置为 10 ,这时的蛙跳步数最多为 1,024 步。
|
max_energy_diff
|
每次蛙跳时能量差的标量阈值,超出该阈值的蛙跳步称为发散样本。默认值为 1000 。
|
unrolled_leapfrog_steps
|
每个树扩展步骤要展开的蛙跳数。对 max_tree_depth 所隐含的最大轨迹长度应用直接线性乘数。默认值为 1 。
|
parallel_iterations
|
允许并行运行的迭代次数。必须是正整数。如需了解详情,请参阅 tf.while_loop 。
|
seed
|
用于设置种子,以获得可重现的结果。如需了解详情,请参阅 PRNG 和种子。
|
**pins
|
这些用于调节所提供的联合分布,并直接传递给 joint_dist.experimental_pin(**pins) 。
|
返回结果 |
仅包含后验样本的 Arviz InferenceData 对象。
|
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-02-19。
[null,null,["最后更新时间 (UTC):2025-02-19。"],[],["The `PosteriorMCMCSampler` utilizes Markov Chain Monte Carlo (MCMC) to sample from posterior distributions. Key actions include setting the `n_chains` (number of chains), `n_adapt` (adaptation draws), `n_burnin` (burn-in draws), and `n_keep` (draws for inference). It allows for initializing the sampling `current_state`, setting `init_step_size`, and adjusting parameters like `max_tree_depth`, `max_energy_diff` and `dual_averaging_kwargs`. The output is an Arviz `InferenceData` object containing posterior samples.\n"],null,[]]