pymc-devs/pymc

Compute only dependent logp in step samplers

Open

#7.591 aberto em 26 de nov. de 2024

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)Python (1.902 forks)batch import
enhancementshelp wantedsamplers

Métricas do repositório

Stars
 (7.926 stars)
Métricas de merge de PR
 (Mesclagem média 11d 6h) (12 fundiu PRs em 30d)

Description

Description

As discussed in: https://discourse.pymc.io/t/semantik-description-of-kruschke-diagrams-model-to-graphviz/16142/8 we could be making more use of the conditional partition of the logp graph for partial step samplers.

When the proposal depends on a ratio between probabilities (BinaryMetropolois, BinaryGibbsMetropolis, CategoricalGibbsMetropolis, Slice, NUTS), we don't need to compute terms that don't depend on the updated variables.

Step samples that explicitly request delta_logp (Metropolis, DEMetropolis) achieve this implicitly via PyTensor rewrites.

I suggest adding a model.dependent_logp(vars) that helps us get the logp we need (the variables of interest + conditional dependent variables)

Guia do colaborador