Live data from Hacker News

The State of Probabilistic Programming

moalquraishi.wordpress.com

1–10 of 31 posts

Re: The State of Probabilistic Programming

#3
"Having been rescued from the clutches of object-orientation by early exposure to Mathematica"

I kind of laughed at this line, because this seems like a situation where the author came to the correct conclusion for all the wrong reasons.

Maybe things have changed, but the Mathematica programming language never struck me as useful for anything over a couple thousand lines.

edit: this is completely beside the purpose and message of this article, but it's worth noting that modularity is a pretty significant design criteria that none of these languages have a particularly strong story about.

Re: The State of Probabilistic Programming

#4
This strikes me as a perfect application for quantum computers---but I'm just an amateur, so I'd love to hear an expert opinion. My understanding is this 1982 talk by Feynman [1] more or less launched the study of quantum computers, and it's all about how they can carry a probabilistic value through their computations rather than a definite one. And one of the lessons from that paper (if I'm reading & remembering right---maybe it's another paper) is that simulating quantum behavior with a non-quantum computer turns a lot of polynomial-time problems into exponential-time problems, so that having a real quantum computer would be very helpful for solving the performance & scalability issues described in the OP. Thoughts?

[1] http://www.cs.berkeley.edu/~christos/classics/Feynman.pdf

Re: The State of Probabilistic Programming

#6
I've tried to use probabilistic programming for building a model of real data, and it seems that there is a long way to go before it's practical and fast.

On one hand, there are the Monte Carlo-based methods that will support modeling almost any distributions, but are slow to use for large amounts of data.

On the other hand, there are interesting cases like Infer.NET that use a completely different technique (approximate, deterministic inference) but are brittle for many real-world use cases.

Then, there is the general issue that one has to be familiar with probabilistic models and the inner workings of the inference algorithms to have any hope of debugging the inevitable errors and convergence issues that arise. That seems to realistically require a machine learning or statistics PhD and the population of those is very small.

Re: The State of Probabilistic Programming

#7
DrBayes (https://github.com/ntoronto/drbayes) is another interesting probabilistic programming language. It implements measure-theoretic probability in Racket, so it's not limited to what you can express with probability density functions and standard distributions -- you can condition a random variable on any measurable subset of the probability space, for example, so you could condition Y on 0 I'm not sure this has great practical use, but it's a very interesting system.

Re: The State of Probabilistic Programming

#9
post #2

I wonder if kids 30y from now look upon this as the new Prolog.

I was pretty much thinking about logic programming throughout most of the article. Seems like PPS is a continuation of these ideas, in many ways.

In more ways than one, http://alchemy.cs.washington.edu/

Re: The State of Probabilistic Programming

#10
post #6

I've tried to use probabilistic programming for building a model of real data, and it seems that there is a long way to go before it's practical and fast. On one hand, there are the Monte Carlo-based methods that will support modeling almost any distributions, but are slow to use for large amounts of data. On the other hand, there are interesting cases like Infer.NET that use a completely different technique (approxi…

The performance of most vanilla Metropolis-Hastings MCMC methods is pretty awful, but there are some good improvements. I use DREAM (a non-Markovian and parallelizable extension of M-H) with realistic problems and its convergence rate is much much much better, to the point that I can use it for what I'm working on while regular M-H methods are just too slow.
Post reply on HN