4 ms·
If you're interested in probabilistic programming and want something a little more hands-on, I recommend The Design and Implementation of Probabilistic Programm
by otiose_tortoise 5y ago
If you're interested in probabilistic programming and want something a little more hands-on, I recommend The Design and Implementation of Probabilistic Programming Languages http://dippl.org/ http://dippl.org/ . It's an online course/textbook that gets you programming right away and makes the power of probabilistic programming immediately clear.
- medo-bear 5y agothanks for this. there is also Probabilistic Models of Cognition [0] by one of the authors. I wish however that they stuck to Church language [1] [0] https://probmods.org/ https://probmods.org/ [1] http://web.stanford.edu/~ngoodman/papers/POPL2013-abstract.pdf http://web.stanford.edu/~ngoodman/papers/POPL2013-abstract.p...
- otiose_tortoise 5y agoI too preferred church, though I understand why the authors of dippl chose a more popular language (javascript) for their book. Church (a dialect of Scheme, which is a dialect of Lisp) also ties probabilistic programming back to its intellectual roots in McCarthy's amb operator [1]. That said, you can get pretty far with probabilistic programming in any language with decent monad support [2]. I did most of my probabilistic programming work in Scala. (You lose the ability to do really fancy inference if you go the monad route, as you can't analyze the program structure, but a lot of the time, this is fine.) [1] http://community.schemewiki.org/?amb http://community.schemewiki.org/?amb [2] http://mlg.eng.cam.ac.uk/pub/pdf/SciGhaGor15.pdf http://mlg.eng.cam.ac.uk/pub/pdf/SciGhaGor15.pdf
- wodenokoto 5y agoI wish I could have Church as a Jupyter notebook/lab Kernel. Would make it much easier to play around with the language when trying to wrap my mind around the church version of probmods.
- harperlee 5y agoNot exactly the same thing but try clojure with anglican in nextjournal to see if it fits your needs.
- wodenokoto 5y agoLast time I tried putting a lisp into jupyter as a playground for church, I realized that I was missing all the plotting features to really get anywhere and before I realized it, I had to stop my self from reimplementing church’s standard library. I’ll have a look on google on the names you mentioned :)
- harperlee 5y agoIn nextjournal you can plot clojure output trivially with plotly or vega-lite. It’s just a matter of adding metadata to your output, like this: ^{:nextjournal/viewer :plotly} {:data [{:x '(0 10 20 30 40)} {:y '(5 10 15 20 25)}] :layout {:autosize false :width 800 :height 400 :xaxis1 {:title "year"} :yaxis1 {:title "revenue"}}} See the result here: https://nextjournal.com/kommen/plotting-from-clojure https://nextjournal.com/kommen/plotting-from-clojure Regarding anglican, here is a link. It’s basically a church port: https://probprog.github.io/anglican/ https://probprog.github.io/anglican/
- fnord77 5y agodoes this require stats/probability knowledge? on that topic, can anyone recommend an online stats/probability course? I tried the coursera one by Sebastian Thrun and couldn't get far into it because the "TA" examples were unintelligible.
- tbarringer816 5y agoStat110[0] (Harvard) on EdX! The professor, Joe Blitzstein, is incredible. Easily one of the best classes I have ever taken. [0] https://www.edx.org/course/introduction-to-probability https://www.edx.org/course/introduction-to-probability
- medo-bear 5y agofor machine learning i can recommend the course by Philipp Henigg from Uni of Tuebingen https://www.youtube.com/playlist?list=PL05umP7R6ij1tHaOFY96m5uX3J21a6yNd https://www.youtube.com/playlist?list=PL05umP7R6ij1tHaOFY96m...