ProbabilisticCircuits.jl
ProbabilisticCircuits.jl copied to clipboard
Juice v0.4 refactor
-
[ ] Param Learning
- [x] EM
- [ ] EM CPU
- [ ] Regurlarization (Softness)
- [ ] SGD version. Best option seems to be to customize
rrules
from ChainRules.jl. Then can grad/optimize easily with Zygote or Flux.
-
[ ] Queries/Transformation for the new BitCircuit type. CPU and CUDA versions.
- [x] EVI
- [x] MAR
- [x] MAP (approx)
- [x] Sample
- [ ] Conditionals
- [ ] All marginals
- [ ] Marginal MAP algorithm. Would need to rethink the algorithm a bit since now have any input types.
-
[ ] Structures
- [ ] Splits, and clones
- [ ] Learn structures from missing data
- [x] HCLT
- [ ] Strudel
- [ ] RAT-SPN with option to specify leaf type
- [ ] PD Structures for images?
- [ ] Other common structures (fully factorized, NB, HMM, markov chains, etc)
-
[ ] Tests
- [ ] Tests for EM learning with missing in the inputs
- [ ] Test with different input types for likelihood, flow, MAP, Sample, etc
- [ ] Binomial
- [ ] Categorical
- [x] Indicator
- [ ] Better small circuits for test cases, little_4var might be too simple.
- [ ] Test for conditional sampling of circuits
-
[x] Docs
- [x] GPU Docs in manual
- [x] Notebook for learning
- [ ] This seems nice for adding citations if needed https://github.com/ali-ramadhan/DocumenterCitations.jl
-
[x] Misc
- [ ] #120
- [x] Float input types had some issues, need to double check
- [x] Lazy Batching (batchview??) not sure if worth it https://mldatapatternjl.readthedocs.io/en/latest/documentation/dataview.html#as-vector-of-batches
-
[x] IO
- [x] DensityEstimationData.jl
- [x] JuiceModelZoo.jl
- [x] Read/Write of circuits text format.
- [x] Faster Version
- [x] Support direct read/write to zipped format gzip, etc
- [x] Binary format for circuit for more efficient saving
- [x] Zoo related IO;
zoo_psdd
,zoo_pc
, etc. - [x] TikZ plotting now broken, need slight modification