-
Notifications
You must be signed in to change notification settings - Fork 5
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
Mixtures and pointwise mutual information: add features from TensorFlow Probability #110
Conversation
Nice coding! I think the new class colliding with |
– I have decided that mixtures, like tequila, are inherently evil and should be avoided at all costs.
Larry Wasserman
This PR adds the distributions from TensorFlow Probability (on JAX), which can be used to estimate MI using Monte Carlo integration. It supports selected transformed distributions (possible thanks to TFP bijectors) and mixture models.
📈 Introduced changes
🚂 Features added
🔬 Experiments performed
✨ Other changes
workflows/Beyond_Normal
). Note: although it seems that many files have been modified, majority of them has just been moved to another directory, so they don't need to be reviewed at all.workflows/Pointwise_MI
) has been created, which is supposed to host the workflows for the new project.pyproject.toml
) has been amended.⛔ Known limitations
NaN
s for PMI values and float overflow. (Perhaps usingfloat64
could help? But see below...) Perhaps Principled approach to handling NaNs #111 is the reason.float
does not seem to work. Further investigation is needed.Sampler
andTask
classes). This is a third object of similar functionality, which may be somewhat confusing. We need a wrapper to make them intoSampler
orTask
, but can't really replaceSampler
with them:Sampler
s can be transformed via arbitrary continuous injective mappings implemented in JAX, while TFP supports only bijectors (to calculate PMI we need to calculate🪨 Tasks
This list of tasks is for me to keep track of the progress. It does not need to be read during the review.
Added features:
Unit tests:
Workflows: