News for hackers. Stuff that matters.
Re:What is probabilistic programming? by cf on Wednesday April 17, 2013 @04:28AM (#5563357)
A probabilistic programming language is probably better understood as a way to model stochastic processes. What I mean by modeling stochastic processes is we have data that we know was generated by some non-deterministic process. We also don't know all the parameters of this process. Probabilistic programming languages make the point that the best way to specify these processes is as programs. Once we do that, we can in a sense run these simulations in reverse to infer parameters in our models and even infer values for missing data.
Re:What is probabilistic programming? by mamp on Wednesday April 17, 2013 @09:19AM (#5564269)
It depends on your model - size and variables. If you have a moderately sized model with discrete variables you can infer values using exact algorithms (e.g. clique tree propagation, variable elimination, etc). If your model is too complex or has certain continuous distributions then you can use simulation techniques or other approximate algorithms.

Given that probabilistic graphical models is in general NP-hard (or #P-hard) then approximate algorithms are often used. However, for many problems discrete valued networks can be effectively managed with exact algorithms.

Some tools for exact inference (that are free or commercial with free versions) are:

http://genie.sis.pitt.edu http://www.norsys.com/netica.html http://www.hugin.com

Netica in particular has a large library of example networks.

Re:What is probabilistic programming? by cf on Wednesday April 17, 2013 @03:22PM (#5566487)
That doesn't really change my definitions. I agree exact inference is intractable for anything but modest problem sizes. Luckily, I think most work these days is in making these systems use approximate inference.