Note-keeping to understand the overall flow
SaranjeetKaur opened this issue · 2 comments
SaranjeetKaur commented
Bird's eye view:
- creating a file, say ns.jl, in https://github.com/TuringLang/Turing.jl/tree/master/src/inference/ shall integrate NestedSamplers.jl with Turing
- once above step is done, write the algo of Polychord
- build an extension to Proposals(? not clear yet). [Refer to Miles message on Slack, 27 May 2020: v0.3 of NestedSamplers is in the registrator queue, it should be trivial to start adding more complex proposals. There’s some very low-hanging fruit to implement Proposals.RStagger based on https://github.com/joshspeagle/dynesty/blob/c95c2ec938d847e5e3672e6caa5f700846327dc4/dynesty/sampling.py#L249-L409 (extremely similar to the current Proposals.RWalk) (cc @saranjeet Kaur )] (try implementing other proposals too: .Slice, .HSlice, .RSlice listed on the same page, also include in README.md after checking)
- point 3, states about Proposals.RStagger, a low-hanging fruit to implement (catch up on this when you are clearer)
- (later on) try out various likelihoods some are listed here: https://dynesty.readthedocs.io/en/latest/examples.html
SaranjeetKaur commented
random stuff as i learn:
- trace back the
sample
function to know what are you reading.. almost everything is revolving around it in Turing & AbstractMCMC struct
: implements a concrete type as a subtype of an abstract type- can define a
struct
for a sampler as well as an algorithm. can identify this by looking at the abstract type, whether it isXYZSampler
or anInferenceAlgorithm
respectively import
the functions that you intend to overload, rather thanusing
- in a
sampler
struct, store all that you may need to perform inference between samples but you don’t want to store in a transition - in
AbstractMCMC
, asampler
is astruct
of the subtypeAbtractSampler
- in
AbstractMCMC
, amodel
is astruct
of the subtypeAbtractModel
. thismodel
contains information necessary to perform inference. Turing does not require to defining custom model structs
SaranjeetKaur commented
status:
- Proposals.RStagger [implemented]
- Proposals.Slice + more complex proposals [back of mind]
- implement nested sampling to turing: [WIP]
- polychord algo [can it be included as part of point 2?]
- write technical blogs + documentation using Julia [on weekends] .. personal blogs can be linked to Turing.ml
- code documentation
- producing tutorials
- produing examples
**increase usage of Git, experiment with weave.jl, blogging on GitHub pages, learn how to host a .jmd file as .md file on GitHub