3 ms·
The point with probabilistic programming is you are able to explore slightly more complex models very easily. Coincidentally, a colleague at lunch yesterday ma
by dmlorenzetti 14y ago
The point with probabilistic programming is you are able to explore slightly more complex models very easily.
Coincidentally, a colleague at lunch yesterday made exactly this observation about Stan, a probabilistic programming language he is using (http://mc-stan.org/ http://mc-stan.org/).
Stan's notation is very similar to, if not the same as, that shown here. In Stan, those model{} statements are combined with data{} and parameter{} statements that plug in values of interest. The algorithmic details appear to get specified by the command-line invocation.
I found the Stan user guide a bit more enlightening than this essay. The essay shows a bunch of models, but it has very little discussion about what the models mean, or how they express the ideas alluded to in the short introductory paragraphs. The Stan UG does a marginally better job of showing why the model looks the way it does, and relating it to the math they're trying to solve. Still, like this essay, the exposition is definitely pitched toward somebody who already knows the field (unfortunately, not me).
- algorias 14y agoI had never heard of probabilistic programming languages and was intrigued but unfortunately also rather confused by the submission. So thank you for the excellent pointer.
- ced 14y agoStan aims to be the successor to BUGS, and it is made in part by the great Bayesian Andrew Gelman. Nevertheless, BUGS was the de facto language for probabilistic modelling for many years, and you may find better documentation for it.
- cf 14y agoAnyway, I wrote this post as a precursor to a more substantial set of writings explaining how to practically use these upcoming languages. Most of what I am trying to show here is that while we use specialized algorithms for most of our machine learning at this moment, it is only a temporary solution before it becomes feasible to just specify your models in one of these languages. The point of the code is to show that many really complicated models with high specialized libraries for just them is less than 10 lines of code in this framework. For a really good introduction to this topic I recommend of Josh Tenenbaum's Growing a Mind talks, http://videolectures.net/aaai2012_tenenbaum_grow_mind/ http://videolectures.net/aaai2012_tenenbaum_grow_mind/ I never realized this article would be read by regular folks and am incredibly confused why something I wrote 6 months ago is suddenly all over the internet now.
- apw 14y agoThis is an amazing talk by Tenenbaum. Thank you for posting it! I'd really like to subscribe to your blog/site so I can read your more substantial set of writings as they appear -- but I can't seem to find the appropriate RSS or ATOM feed on your site. Am I missing something?
- cf 14y agoYou can subscribe with http://zinkov.com/rss.xml http://zinkov.com/rss.xml. I get this question a lot, what's the standard way this is solved?
- icebraining 14y agoYou can enable RSS auto-discovery by adding a tag to your HTML: <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="http://zinkov.com/rss.xml" /> Any decent RSS reader (e.g. Google Reader, TTRSS) would then detect the feed if the user tried to subscribe to your homepage. Some browsers and browser extensions also provide a one-click subscribe button based on that tag. It's also common to just put a visible link somewhere on the page, since not everyone knows about auto-discovery.
- apw 14y agoThank you. I subscribed. The usual practice seems to be to put a link to the rss feed (the one you just gave) somewhere on the archive page or at the top of each post page. Thanks again.