-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Why step
initializes the chain?
#135
Comments
Isn't this only a question of naming? Also with something like
It is not supported by the default implementation in AbstractMCMC anymore (downstream packages can in principle support arbitrary keyword arguments but if they do swapping samplers and generic implementations in other packages become more difficult). It was renamed to |
Oh sorry, I was actually asking about
Yes, I think the naming is not ideal here because it is not clear what the first call to |
IMO this is a bug in AdvancedHMC. I think the expected behaviour is as in EllipticalSliceSampling and e.g. AdvancedMH (https://github.com/TuringLang/AdvancedMH.jl/blob/3749df0075ae59fc8bc4ef576a73ce770b75eec0/src/mh-core.jl#L73-L86). |
Wait I'm a little bit confused here. So |
AdvancedMH just wraps the initial sample in a state, it does not perform any "transition". |
Oh I got it. I got distracted by the name Okay then, it seems there isn't anything preventing AdvancedHMC to do it that way. (In fact the name |
Hi,
Under the current API, one implements two specializations of
step
: one for initializing the chain, and one for actually "stepping". But why didn't we make a separate interface for the first use likeinitialize_state
or something? It seems that, partly due to the naming, what the first call tostep
actually does seem to differ across implementations. For example,AdvancedHMC
does an actual transition in the first call, while others likeEllipticalSliceSampling
doesn't. For some downstream use-cases ofAbstractMCMC
wherestep
is called just once at a time, I think this underspecification is not ideal.Also, is there a reason why
init_params
became optional?The text was updated successfully, but these errors were encountered: