push
github
Basic rewrite of the package 2023 edition Part I: ADVI (#49) * refactor ADVI, change gradient operation interface * remove unused file, remove unused dependency * fix ADVI elbo computation more efficiently * fix missing entropy regularization term * add LogDensityProblem interface * refactor use bijectors directly instead of transformed distributions This is to avoid having to reconstruct transformed distributions all the time. The direct use of bijectors also avoids going through lots of abstraction layers that could break. Instead, transformed distributions could be constructed only once when returing the VI result. * fix type restrictions * remove unused file * fix use of with_logabsdet_jacobian * restructure project; move the main VI routine to its own file * remove redundant import * restructure project into more modular objective estimators * migrate to AbstractDifferentiation * add location scale pre-packaged variational family, add functors * Revert "migrate to AbstractDifferentiation" This reverts commit 2a4514e4f. * fix use optimized MvNormal specialization, add logpdf for Loc.Scale. * remove dead code * fix location-scale logpdf - Full Monte Carlo ELBO estimation now works. I checked. * add sticking-the-landing (STL) estimator * migrate to Optimisers.jl * remove execution time measurement (replace later with somethin else) * fix use multiple dispatch for deciding whether to stop entropy grad. * add termination decision, callback arguments * add Base.show to modules * add interface calling `restructure`, rename rebuild -> restructure * add estimator state interface, add control variate interface to ADVI * fix `show(advi)` to show control variate * fix simplify `show(advi.control_variate)` * fix type piracy by wrapping location-scale bijected distribution * remove old AdvancedVI custom optimizers * fix Locat... (continued)
111 of 137 new or added lines in 10 files covered. (81.02%)
112 of 138 relevant lines covered (81.16%)
98544.14 hits per line