Giter Site home page Giter Site logo

ubc-stat-ml / blangsdk Goto Github PK

View Code? Open in Web Editor NEW
24.0 12.0 6.0 3.17 MB

Blang's software development kit

Home Page: https://www.stat.ubc.ca/~bouchard/blang/

License: BSD 2-Clause "Simplified" License

Xtend 52.74% Java 46.96% Shell 0.30%
machine-learning probabilistic-programming probabilistic-graphical-models probabilistic-models mcmc-sampler mcmc markov-chain-monte-carlo bayesian-inference bayesian-statistics

blangsdk's People

Contributors

alexandrebouchard avatar kevinchern avatar makingsurgeon avatar matteolepur avatar sahand-h avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blangsdk's Issues

Improve slice sampler

Use doubling instead of linear expansion procedure, re-read Neal's paper and re-write the implementation.

Fix issues encountered while testing MixtureModel

  • Bug: posteriors clearly incorrect
  • Performance: seems very slow at 1000 datapoint, encouragingly, get much more than 2x faster at 500 datapoints, so some factor dependencies must be wrong
  • Marking fields with transient seems to cause undesirable side effects, need better way to signal graph inference to skip some [document adding transient to K value changes behavior]
  • Style: problematic that loops cannot be shared [split to separate issue]
  • Style: autodeboxing is needed [see separate issue]

Move runtime from bayonet to blangSDK

This is required since these depend on interfaces such as Model that are needed in blangDSL (and it's non-trivial because of plug-in architecture and seems suboptimal to have blangDSL import bayonet).

Note: important to also erase from bayonet to avoid having two versions of same thing.

Reorganize examples

  • Remove blang.examples from SDK
  • Create project template
  • Create some script to upgrade everything or via snapshots
  • Write examples via an instantiation of the template

Integrate xlinear

Most of the work will be with integration of graph introspection and views.

Use xtend's range operators

E.g., in src/main/java/blang/examples/MixtureModel.bl, instead of StaticUtils::range(observations.size()), we should be able to use 0 ..< observations.size(). (Xtend reference)

Add support for enums

Do not do via java enums! Because the values cannot be read from command line then. Would also make a mess everywhere. Instead, use some kind of FiniteSupport

Improve performance of cloning

  • Some immutable stuff to mark for shallow copy, e.g. arrays of integers for sampler cache
  • Datasets
  • Plates, etc [mark as immutable as well]
  • Parallelize!

Further improvements on data frames

  • Inverted control with plates
  • Make Table interface, concrete types are ScalarTable and MatrixTable
    • ScalarTable configured by matrix.inPlates(..) only
    • MatrixTable configured by matrix.inPlates(..); matrix.rowsIndexedBy(...); matrix.colsIndexedBy(...)
    • In both cases, plate indices are modelled by sets (no duplicates)
  • Keep the same idea in ScalarTable
  • Sub-frames

Improve data frame

  • Most important: make it so that loops can be combined,
  • Conversion into lists/matrices

Fix printing

  • Make it work on SMC samplers
  • Use hierarchical dir? Field names? ExperimentResults?

Adaptation

Need to at least set univariate scale.

Modify parsers

Consider having the parsers for matrices reading formats like [a b]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.