Code Monkey home page Code Monkey logo

sumproductnetworks.jl's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

sumproductnetworks.jl's Issues

Julia 1.0

Make SumProductNetworks ready for julia 1.0

FiniteSumNode() requires a type declaration

Hey, I was trying to run the example code in the readme. First line calls FiniteSumNode(). It looks like it'll need FiniteSumNode{Float64}() or some other concrete float type. Is this unintended and a bug, or should the readme be updated to reflect that? Thanks!

Add SSL code

Add the implementation of safe semi-supervised learning of SPNs

LearnSPN

Hi Martin,
I was delighted to see an SPN implementation in Julia just as I was starting to dig into them. As part of my exploration, I was wondering if you had a timeline for filling out the generate_spn function, either in this package or another. I'm curious about replacing other function approximators with SPNs in some reinforcement learning projects I have going on; with the right structure, SPNs offer a lot over neural nets for these problems.

Thanks for opening your work!

Kendall

Immutable Types

I should make types immutable by default and add additional mutable types, e.g. MutableSumNode.

Further, I should sub-type Distributions.Distribution instead of my own SPNNode type. This way the code would be compatible with Turing.

  • Make types immutable
  • Add additional mutable types
  • Sub-type Distributions instead of SPNNode
  • Add fit overload for EM fitting of an SPN.

Region graphs

I should add region graphs, similar to the implementation for BayesianSPNs, at some point to this package.

  • Add regions and partitions
  • Add atomic regions for univariate and multivariate distributions
  • Add random structure generation
  • Add bayesian structure learning (posterior bootstrap?)

Utility to marginalize the SPN

Hey Martin, I might be missing something obvious, but is there not yet a way to compute the log marginalized likelihood of the SPN?

i.e. in this mixture of bivariate gaussians, I can't find a way to work with the Normal(-1, 1) + Normal(1,1) mixture.

root = FiniteSumNode{Float32}();

add!(root, FiniteProductNode(), Float32(log(0.5))); # Weight 0.5
add!(root, FiniteProductNode(), Float32(log(0.5))); # Weight 0.5

add!(children(root)[1], UnivariateNode(Normal(-1, 1), 1))
add!(children(root)[2], UnivariateNode(Normal(1, 1), 1))
add!(children(root)[1], UnivariateNode(Normal(-1, 10), 2))
add!(children(root)[2], UnivariateNode(Normal(1, 10), 2))

Register package

Todo:

  • Make sure the package works under julia 1.0
  • Add more unit tests
  • Add a more extensive README and documentation of the package

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.