pymc.MeanField#
- class pymc.MeanField(*args, **kwargs)[source]#
Single Group Mean Field Approximation
Mean Field approximation to the posterior.
Spherical Gaussian family is fitted to minimize KL divergence from posterior.
It is assumed that latent space variables are uncorrelated that is the main drawback of the method.
Methods
MeanField.__init__(*args, **kwargs)MeanField.collect(item)Dev - optimizations for logP.
Dev - create correct replacements for initial depending on sample size and deterministic flag.
MeanField.rslice(name)Dev - vectorized sampling for named random variable without call to pytensor.scan.
MeanField.sample([draws, random_seed, ...])Draw samples from variational posterior.
MeanField.sample_node(node[, size, ...])Sample given node or nodes over shared posterior.
MeanField.set_size_and_deterministic(node, s, d)Dev - after node is sampled via
symbolic_sample_over_posterior()orsymbolic_single_sample()new random generator can be allocated and applied to node.Dev - perform sampling of node applying independent samples from posterior each time.
MeanField.symbolic_single_sample(node[, ...])Dev - perform sampling of node applying single sample from posterior.
MeanField.to_flat_input(node[, ...])Dev - replace vars with flattened view stored in self.inputs.
Attributes
all_histogramsany_histogramsdatalogpDev - computes \(E_{q}(data term)\) from model via pytensor.scan that can be optimized later.
datalogp_normDev - normalized \(E_{q}(data term)\).
ddimhas_logqinputsjoint_histogramlogpDev - computes \(E_{q}(logP)\) from model via pytensor.scan that can be optimized later.
logp_normDev - normalized \(E_{q}(logP)\).
logqDev - collects logQ for all groups.
logq_normDev - collects logQ for all groups and normalizes it.
ndimparamsreplacementsDev - all replacements from groups to replace PyMC random variables with approximation.
sample_dict_fnscale_cost_to_minibatchDev - Property to control scaling cost to minibatch.
single_symbolic_datalogpDev - for single MC sample estimate of \(E_{q}(data term)\) pytensor.scan is not needed and code can be optimized.
single_symbolic_logpDev - for single MC sample estimate of \(E_{q}(logP)\) pytensor.scan is not needed and code can be optimized.
single_symbolic_varlogpDev - for single MC sample estimate of \(E_{q}(prior term)\) pytensor.scan is not needed and code can be optimized.
sized_symbolic_datalogpDev - computes sampled data term from model via pytensor.scan.
sized_symbolic_logpDev - computes sampled logP from model via pytensor.scan.
sized_symbolic_varlogpDev - computes sampled prior term from model via pytensor.scan.
symbolic_logqDev - collects symbolic_logq for all groups.
symbolic_normalizing_constantDev - normalizing constant for self.logq, scales it to minibatch_size instead of total_size.
symbolic_randomsymbolic_randomsvarlogpDev - computes \(E_{q}(prior term)\) from model via pytensor.scan that can be optimized later.
varlogp_normDev - normalized \(E_{q}(prior term)\).