TuringLang/Turing.jl: v0.48.0
- Kai Xu
- Hong Ge1
- Cameron2
- David Müller-Widmann3
- Martin Trapp4
- Tor Erlend Fjelde5
- Penelope Yong6
- Mohamed Tarek3
- Markus Hauru
- Will
- Adam Scibior7
- Killian Q. Zhuo8
- Xianda Sun
- Hessam Mehr9
- Emma Smith
- Shravan Goswami5
- Philipp Gabler
- Harry Wilde10
- Jaime RZ11
- Aoife
- Arthur Lui
- FredericWantiez
- Pietro Monticone12
- Tom Röschinger
- azev7713
- Hardik Kumar
- Kyurae Kim14
- Peifan Wu15
- 1. University of Cambridge
- 2. @letta-ai
- 3. @PumasAI
- 4. KTH
- 5. @TuringLang
- 6. @janestreet
- 7. University of British Columbia
- 8. None
- 9. King's College London
- 10. @nestauk @dssg @turinglang @knowlab @BHFDSC
- 11. UCL
- 12. Harmonic
- 13. Fowler College of Business, SDSU
- 14. University of Pennsylvania
- 15. Google
Description
Turing v0.48.0
Breaking changes
The SGLD and SGHMC samplers, which did not support minibatching, have been removed along with PolynomialStepsize (#2890).
MH(var => proposal, ...) and LinkedRW have been removed. Use MH() for prior proposals, or MH(cov_matrix) for a Gaussian random walk over the complete linked parameter vector. In Gibbs, assign MH(cov_matrix) to the target variable block (#2883).
Gibbs now conditions its components with DynamicPPL.condition. GibbsContext and Turing.Inference.make_conditional are removed. Rename isgibbscomponent to supports_gibbs and gibbs_get_raw_values to gibbs_get_parameter_values; the old names are deprecated. Gibbs no longer supports model arguments containing missing: declare the latent variable inside the model and condition on observations instead (#2863).
Every variable reached by a Gibbs model must belong to a component. A component may not change the dimension or existence of a variable owned only by another component; put the variable and whatever decides its shape in one block. Changes to another block's support or distributional form remain unchecked and can make the chain reducible; see the Gibbs docstring (#2863).
Other changes
ESS Gibbs components now use the current conditional prior after another component changes its parameters (#2885).
Gibbs chains now include component-sampler statistics (#2863).
NUTS and HMCDA now accept a NamedTuple or Dict{VarName} initial_params, which HMC already did (#2878).
Emcee now honours chain_type=MCMCChains.Chains, and refuses walkers that start in different parameter layouts instead of failing inside the decode or the stretch proposal (#2879).
estimate_mode now represents indexed bounds using the model's parameter shapes, avoiding growable-array warnings during optimisation (#2888).
estimate_mode now throws on a bound that does not cover a whole variable, where it previously either dropped it and returned the unconstrained mode or failed with a bare DimensionMismatch, and warns on a bound no variable can use rather than ignoring it in silence (#2880).
Prior() now warns that initial_params has no effect instead of discarding it silently (#2881).
Gibbs now rejects an external sampler whose state inherits AbstractMCMC's model-dropping three-argument setparams!! fallback, rather than running with stale model-dependent caches (#2891).
GibbsConditional now distinguishes a ranged tilde statement from multiple element-wise statements when given one conditional distribution (#2891).
Merged pull requests:
- Gibbs: condition components instead of
GibbsContext(#2863) (@yebai) - hmc: Convert
initial_paramsfor NUTS/HMCDA and delete a dead adaptor branch (#2878) (@yebai) - emcee: Honour
chain_typeand refuse walkers in different parameter layouts (#2879) (@yebai) - optimisation: Stop silently discarding
lb/ubbounds (#2880) (@yebai) - prior: Warn that
initial_paramshas no effect (#2881) (@yebai) - mh: remove per-variable proposals (#2883) (@yebai)
- ESS retains stale prior means after Gibbs conditioning (#2885) (@yebai)
- Reject model-dropping
setparams!!in external Gibbs components (#2886) (@yebai) - optimisation: eliminate growable constraint warnings (#2888) (@yebai)
- docs: clarify README (#2889) (@yebai)
- Remove SGLD and SGHMC (#2890) (@yebai)
- Fix Gibbs handling of wrapped external samplers and conditional sites (#2891) (@yebai)
Closed issues:
- remove SGHMC / SGLD (#2270)
RepeatSamplershould be in AbstractMCMC (#2671)- Gibbs does not use initialisation strategies for component samplers (#2693)
- Stats from component samplers are lost with Gibbs (#2766)
- Gibbs third branch (#2810)
- Use
Optim.jlfor optimisation (#2814) - Rework Gibbs: replace
GibbsContextwithcondition, complete the component interface (#2860) - Require samplers to opt in to varying-dimensional targets (#2866)
- ESS in Gibbs retains stale conditional-prior means (#2873)
- Reject model-dropping
setparams!!before running external Gibbs samplers (#2875) - Misspecified MH proposals can bias sampling (#2876)
Files
TuringLang/Turing.jl-v0.48.0.zip
Files
(240.3 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:a8d4ac491bd47895346032cbbe4d5f10
|
240.3 kB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/TuringLang/Turing.jl/tree/v0.48.0 (URL)
Software
- Repository URL
- https://github.com/TuringLang/Turing.jl