Live data from Hacker News

Probabilistic programming does in 50 lines of code what used to take thousands

newsoffice.mit.edu

31–40 of 81 posts

Re: Probabilistic programming does in 50 lines of code what used to take thousands

#31
post #23

Earlier quoted context omitted.

Constraint solvers and similar tools can look pretty magical to people who use them for the first time, so I don't blame the OP. What's more interesting is that we're seeing heightened interest in these techniques again after they were ostensibly sidetracked in favor of statistical methods.

Maybe I just don't get the terminology right, but isn't this exactly a statistical method?

[deleted]

Re: Probabilistic programming does in 50 lines of code what used to take thousands

#32

Is that 50 lines of code, or 50 lines of using a library that's thousands of lines of code?

You could make a similar comparison, for example, between 50 lines of C and 1000 bytes of microcode. (I just made those numbers up, but you get the point)

Re: Probabilistic programming does in 50 lines of code what used to take thousands

#33
post #19

Is that 50 lines of code, or 50 lines of using a library that's thousands of lines of code?

What do we say about languages built on C? Is it 100 lines of code but there are hundreds of thousands of lines of code for that higher level language you just coded? I don't think libraries count in terms of code. We all use code to program. Standing on the shoulder that preceded us. Using a library and a function should just count for the most part.

How about C itself? Hello World is about 850 lines of code after you run the preprocessor on it.

Re: Probabilistic programming does in 50 lines of code what used to take thousands

#34

Anybody here on HN have experience with probabilistic-programming ? This looks quite disruptive if it works.

I've played with it a bit and, in my opinion, the principles behind it at least, the streamlined and optimized simulation of bayesian generative models is the best chance we have to solve artificial general intelligence.

Reading probmods.org and dippl.org made me go from being very pessimistic I would see it in my lifetime to a solid maybe.

Re: Probabilistic programming does in 50 lines of code what used to take thousands

#35
post #18

> “It goes beyond image classification — the most popular task in computer vision — and tries to answer one of the most fundamental questions in computer vision: What is the right representation of visual scenes? Can someone knowledgeable in graphics research explain the context that this question comes from? If I am reading the question correctly, I infer that the question suggests that there exists a right way to r…

Think about Dreaming. "seeing" during a dream state works by experiencing pure data representation of the real world. People fluent in lucid dreaming can tell you something funny happens when you try to thorough examine objects while sleeping. Constructed worlds tend to be skin deep, and fall apart when poked. Everything is build with ideas drawn from your experience. Its Plato's Allegory of the Cave all the way down…

Makes me think of Vocaloid.

Re: Probabilistic programming does in 50 lines of code what used to take thousands

#36

Anybody here on HN have experience with probabilistic-programming ? This looks quite disruptive if it works.

I've played with it a bit and, in my opinion, the principles behind it at least, the streamlined and optimized simulation of bayesian generative models is the best chance we have to solve artificial general intelligence. Reading probmods.org and dippl.org made me go from being very pessimistic I would see it in my lifetime to a solid maybe.

me go from being very pessimistic I would see it in my lifetime to a solid maybe

Very probabilistic..

Re: Probabilistic programming does in 50 lines of code what used to take thousands

#37

Is that 50 lines of code, or 50 lines of using a library that's thousands of lines of code?

Once a library becomes first class syntactical features of a language runtime then it shouldn't count towards line count anymore.

Re: Probabilistic programming does in 50 lines of code what used to take thousands

#38

> “It goes beyond image classification — the most popular task in computer vision — and tries to answer one of the most fundamental questions in computer vision: What is the right representation of visual scenes? Can someone knowledgeable in graphics research explain the context that this question comes from? If I am reading the question correctly, I infer that the question suggests that there exists a right way to r…

The wiggle word here is "right", I suppose. It's easy to ascribe meanings to that word which are very difficult to use---my limited understanding of Philosophy makes me think that this is the realm of ideas like "qualia" and the like.

For a long time statisticians wrangled over this word in a reduced context. The "art" of statistics is to build a model of the world which is sufficiently detailed to capture interesting data but not so detailed to make it difficult to interpret as a human decision-maker. Statisticians usually solve this problem by building a lot of models, getting lucky, presenting things to people and seeing what sticks.

For a long time this lack of a notion of "rightness" was so powerful that it precluded advancement of the field in certain ways.

With the advent of computers we discovered a new, even more precise form of "right" however and this formed the bedrock of Machine Learning. The "right" ML is concerned with is predictive power. A model is "right" when it leads to a training and prediction algorithm which is "probably, approximately correct", e.g. you can feed real data in and end up with something useful (with a high degree of probability).

So with respect to computer vision we know that it is very difficult to build "efficient" algorithms, ones which work well while using a reasonable amount of training data. CV moved forward when it realized that there were representations of the visual field which led to better predictive power---these were originally generated by studying the visual center of human and animal brains, but more recently have been generated "naively" by computers.

So, there's a reasonably well-defined way that we can find the "right" representation of visual scenes: if we find one which ultimately is best-in-class of all representations for any choice of ML task then it's "right".

Re: Probabilistic programming does in 50 lines of code what used to take thousands

#39
Yes, you can specify extremely powerful statistical models in only a few lines of code using probabilistic programming.

However, at this point, unless you design your program in a very specific way and use a lot of tricks, your sampler is very unlikely to converge, and you won't get any meaningful result without a gargantuan amount of computing power.

Re: Probabilistic programming does in 50 lines of code what used to take thousands

#40

Anybody here on HN have experience with probabilistic-programming ? This looks quite disruptive if it works.

I've played with it a bit and, in my opinion, the principles behind it at least, the streamlined and optimized simulation of bayesian generative models is the best chance we have to solve artificial general intelligence. Reading probmods.org and dippl.org made me go from being very pessimistic I would see it in my lifetime to a solid maybe.

It's a very powerful statistical technique, yes, but I doubt it will be enough for AI. The problem is that you need to sample efficiently from the posterior distribution, and for anything AI related, MCMC isn't going to cut it.

Let's take a step back and consider a logical problem. Can you put N socks in N-1 boxes such that no box contains more than one socks? Obviously not, it's the pigeonhole principle.

Convert that question into a Boolean circuit, and throw a SAT solver at it. It will die. In fact, using only first order logic, a proof of the pigeonhole principle requires an exponential number of terms. Looking at logical propositions alone is too myopic to solve the problem, you have to formulate higher level theories about the structure of the problem to solve it (in this case, natural numbers).

The same goes for probabilistic programming. As long as the paradigm is to treat the problem as a black box energy function to sample from, it is doomed to be inefficient. Try writing a simple HMM and the system will choke, even though there are efficient algorithms to sample from such a model.

If you look at deep learning techniques, they take an interesting approach which is to learn to approximate the generative distribution and the inference distribution at the same time. This is the basis of the work around autoencoders, deep belief networks, and it guarantees that you can tractably sample from your latent representation.

Post reply on HN