-
Notifications
You must be signed in to change notification settings - Fork 230
Update variational inference interface to match [email protected]
#2699
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
base: breaking
Are you sure you want to change the base?
Conversation
|
Turing.jl documentation for PR #2699 is available at: |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## breaking #2699 +/- ##
=============================================
- Coverage 86.45% 58.56% -27.90%
=============================================
Files 21 20 -1
Lines 1418 1395 -23
=============================================
- Hits 1226 817 -409
- Misses 192 578 +386 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
mhauru
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @Red-Portal.
Since this changes the user-interface, could you please set the target branch of this PR to be breaking? We use that branch to collect breaking changes into a single, larger release. Currently breaking points at the same commit as main, so you shouldn't have to mess with git history for this.
In that same process, could you also please add an entry in HISTORY.md describing to users all interface changes (arguments, return values, behaviour) and what they can do to adapt to them. Maybe a code example of "this is how you used to call vi, this is how you do the same thing now", that sort of thing.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
I'm actually sorry to butt in on this, but are there new features available in 0.5, or is it just an interface change? |
|
@penelopeysm No new features. |
|
Okay. The reason why I asked is because this is an interface change for Turing and that is kind of annoying for end users if they don't get any benefit. I wonder in that case if it is worth doing either:
Other than that, I second everything that @mhauru brought up here, so I won't also review the details of this. |
Co-authored-by: Markus Hauru <[email protected]>
Co-authored-by: Markus Hauru <[email protected]>
Co-authored-by: Markus Hauru <[email protected]>
|
@penelopeysm That's reasonable. I think we could go with the following for now:
|
… into bump_advancedvi_0.5
Just a minor README update to support dark/light mode logo, good for dark mode users!
[email protected][email protected]
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[JuliaFormatter v1.0.62] reported by reviewdog 🐶
Lines 111 to 122 in eaac4c3
| | Exported symbol | Documentation | Description | | |
| |:---------------------- |:------------------------------------------------- |:---------------------------------------------------------------------------------------- | | |
| | `vi` | [`Turing.vi`](@ref) | Perform variational inference | | |
| | `q_locationscale` | [`Turing.Variational.q_locationscale`](@ref) | Find a numerically non-degenerate initialization for a location-scale variational family | | |
| | `q_meanfield_gaussian` | [`Turing.Variational.q_meanfield_gaussian`](@ref) | Find a numerically non-degenerate initialization for a mean-field Gaussian family | | |
| | `q_fullrank_gaussian` | [`Turing.Variational.q_fullrank_gaussian`](@ref) | Find a numerically non-degenerate initialization for a full-rank Gaussian family | | |
| | `KLMinRepGradDescent` | [`Turing.Variational.KLMinRepGradDescent`](@ref) | KL divergence minimization via stochastic gradient descent with the reparameterization gradient | | |
| | `KLMinRepGradProxDescent` | [`Turing.Variational.KLMinRepGradProxDescent`](@ref) | KL divergence minimization via stochastic proximal gradient descent with the reparameterization gradient over location-scale variational families | | |
| | `KLMinScoreGradDescent` | [`Turing.Variational.KLMinScoreGradDescent`](@ref) | KL divergence minimization via stochastic gradient descent with the score gradient | | |
| | `KLMinWassFwdBwd` | [`Turing.Variational.KLMinWassFwdBwd`](@ref) | KL divergence minimization via Wasserstein proximal gradient descent | | |
| | `KLMinNaturalGradDescent` | [`Turing.Variational.KLMinNaturalGradDescent`](@ref) | KL divergence minimization via natural gradient descent | | |
| | `KLMinSqrtNaturalGradDescent` | [`Turing.Variational.KLMinSqrtNaturalGradDescent`](@ref) | KL divergence minimization via natural gradient descent in the square-root parameterization | |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This PR does the following:
AdvancedVIis updated to match the new v0.6 version.vicallsoptimizeis slightly changed so that algorithms that expect an unconstrained space can be used without being aware ofBijectors. In particular, the user is now expected to provide aq <: Bijectors.TransformedDistribution.viwill then unwrap the underlying unconstrained distribution, which is passed toAdvancedVI. Once the algorithm terminates, the result will be wrapped back and then returned.