bayespy.inference.vmp.nodes.gaussian.GaussianGammaDistribution

class bayespy.inference.vmp.nodes.gaussian.GaussianGammaDistribution(shape)[source]

Class for the VMP formulas of Gaussian-Gamma-ISO variables.

Currently, supports only vector variables.

Log pdf of the prior:

\log p(\mathbf{x}, \tau | \boldsymbol{\mu}, \mathbf{\Lambda}, a, b) =&
- \frac{1}{2} \tau \mathbf{x}^T \mathbf{\Lambda} \mathbf{x}
+ \frac{1}{2} \tau \mathbf{x}^T \mathbf{\Lambda} \boldsymbol{\mu}
+ \frac{1}{2} \tau \boldsymbol{\mu}^T \mathbf{\Lambda} \mathbf{x}
- \frac{1}{2} \tau \boldsymbol{\mu}^T \mathbf{\Lambda} \boldsymbol{\mu}
+ \frac{1}{2} \log|\mathbf{\Lambda}|
+ \frac{D}{2} \log\tau
- \frac{D}{2} \log(2\pi)
\\ &
- b \tau
+ a \log\tau
- \log\tau
+ a \log b
- \log \Gamma(a)

Log pdf of the posterior approximation:

\log q(\mathbf{x}, \tau) =&
\tau \mathbf{x}^T \boldsymbol{\phi}_1
+ \tau \mathbf{x}^T \mathbf{\Phi}_2 \mathbf{x}
+ \tau \phi_3
+ \log\tau \phi_4
+ g(\boldsymbol{\phi}_1, \mathbf{\Phi}_2, \phi_3, \phi_4)
+ f(x, \tau)

__init__(shape)[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(shape)

Initialize self.

compute_cgf_from_parents(u_mu_Lambda, u_a, u_b)

Compute \mathrm{E}_{q(p)}[g(p)]

compute_fixed_moments_and_f(x_alpha[, mask])

Compute the moments and f(x) for a fixed value.

compute_gradient(g, u, phi)

Compute the standard gradient with respect to the natural parameters.

compute_logpdf(u, phi, g, f, ndims)

Compute E[log p(X)] given E[u], E[phi], E[g] and E[f].

compute_message_to_parent(parent, index, u, …)

Compute the message to a parent node.

compute_moments_and_cgf(phi[, mask])

Compute the moments and g(\phi).

compute_phi_from_parents(u_mu_Lambda, u_a, u_b)

Compute the natural parameter vector given parent moments.

compute_weights_to_parent(index, weights)

Maps the mask to the plates of a parent.

plates_from_parent(index, plates)

Resolve the plate mapping from a parent.

plates_to_parent(index, plates)

Resolves the plate mapping to a parent.

random(*phi[, plates])

Draw a random sample from the distribution.

squeeze(axis)

Squeeze a plate axis from the distribution