Tutorial: 16:20-17:50 (deutsch)

Einstieg in die Probabilistische Programmierung

Die letzten Jahre hat Probabilistisches Programmieren Fahrt aufgenommen. Es wird mehr geforscht, publiziert, konferiert, entwickelt und auch angewendet.

Der Einstieg ist durch die Integration in Mainstream-Sprachen wie Haskell, Scala und Python einfach geworden.

Probabilistische Programme sind lernfähige Simulationen

Kurz vorgestellt - alte Bekannte als Probabilistische Programme:

  • Naive Bayes
  • Markov-Kette
  • Bayes-Netze
  • Gauß-Prozesse

Basics:

  • Eigenbau einer diskreten Wahrscheinlichkeitsmonade (Scala)
  • die Sampling-Variante von Rainier (Scala))
  • Olegs Freie Wahrscheinlichkeitsmonade (Haskell))

Kurze Vorstellung der Algorithmen:

  • MCMC
  • Variational Bayesian Methods

Deep Probabilistic Programming: kann Tensorflow Probability wirklich mehr?

Erfahrungsbericht - Probabilistische Logik für Fahrzeugkonfiguration:

  • Principle of Explosion: “ex falso quodlibet”
  • Markov-Logic mit Figaro (Scala)

Vorbereitung

Ich werde den interaktiven Teil des Tutorials auf Julia/Turing aufbauen. Die Installation von Turing ist recht gut dokumentiert und ist sowohl unter Julia 1.0 als auch Julia 1.1 möglich.

http://turing.ml/docs/get-started/

Für Fedora User habe ich noch den Tipp:

dnf install openblas-dev

Installiert man Julia 1.1 ohne Paketmanager, kann ein expliziter Build-Schritt notwendig sein:

https://github.com/TuringLang/Libtask.jl/issues/18

Christoph Schmalhofer

Christoph Schmalhofer ist Software-Entwickler/Architekt bei InNuce Solutions in Hamburg.

Er hat Philosophie und Physik studiert und arbeitet seit 20 Jahren in der Software-Entwicklung. Er hat unter anderem ein OODBMS, Kreditrating-Software und einen Fahrzeugkonfigurator mitentwickelt.