trappmartin / sumproductnetworks.jl Goto Github PK
View Code? Open in Web Editor NEWSum-product networks in Julia.
License: MIT License
Sum-product networks in Julia.
License: MIT License
Make SumProductNetworks ready for julia 1.0
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 the implementation of safe semi-supervised learning of SPNs
The tag name "v.0.1.1" is not of the appropriate SemVer form (vX.Y.Z).
cc: @trappmartin
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
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.
Distributions
instead of SPNNode
fit
overload for EM fitting of an SPN.I should add region graphs, similar to the implementation for BayesianSPNs, at some point to this package.
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))
Todo:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.