Skip to contents

L(mu, omega) = mean_s log p(x, mu + exp(omega) eta_s) + sum_k omega_k + (K/2)(1 + log 2 pi).

Usage

Advielbo(mu, omega, eta, logjoint)

Arguments

mu

Variational means, length K.

omega

Log standard deviations, length K.

eta

Standard-normal draws, S x K, supplied by the caller.

logjoint

Function of a length-K vector returning log p(x, zeta).

Value

List with elbo, entropy, meanlogjoint, logjoints, K, S.

References

Kucukelbir, Tran, Ranganath, Gelman and Blei (2017), JMLR 18(14); arXiv:1603.00788, Sects. 2.3-2.5 and Equation (5), read from the ar5iv rendering of the arXiv source.

Examples

set.seed(1)
Advielbo(mu = c(0, 0), omega = c(0, 0), eta = matrix(rnorm(4), 2, 2),
         logjoint = function(x) -0.5 * sum(x^2))
#> $elbo
#> [1] 1.920536
#> 
#> $entropy
#> [1] 2.837877
#> 
#> $meanlogjoint
#> [1] -0.9173413
#> 
#> $logjoints
#> [1] -0.5453598 -1.2893229
#> 
#> $K
#> [1] 2
#> 
#> $S
#> [1] 2
#> 
#> $method
#> [1] "Mean-field ADVI ELBO (Kucukelbir et al. 2017 eq. 5)"
#> 
#> attr(,"class")
#> [1] "morie_rich_result" "list"