Bringing Probabilistic Programming to MS Excel

Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel ...
Author: Uwe Möller
2 downloads 2 Views 1MB Size
Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Bringing Probabilistic Programming to MS Excel Tobias Standop

30. Juni 2016

Add-In Quellen

1 / 57

Inhaltsverzeichnis Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

1 Einleitung und Motivation

Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags 2 Tabular

Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion eines probabilistischen Modells ¨ Ubersetzung in Fun

Update 3 Vorstellung des Add-Ins 4 Referenzen 2 / 57

Inhaltsverzeichnis Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

1 Einleitung und Motivation

Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags 2 Tabular

Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion eines probabilistischen Modells ¨ Ubersetzung in Fun

Update 3 Vorstellung des Add-Ins 4 Referenzen 3 / 57

Einf¨uhrendes Beispiel Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

4 / 57

Darstellung in Tabellen Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In

ID 0 1 2

Name Anna Bob Cynthia

ID 0 1 2

Spieler1 0 1 0

Spieler2 1 2 2

Spieler1Gewinnt ja nein ?

Diese Tabellen k¨ onnten so in MS Excel festgehalten werden!

Quellen

5 / 57

Darstellung der Tabellen Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Diese Tabellen werden im Folgenden auch so dargestellt: Spieler Name

string

Partie Spieler1 Spieler2 Spieler1Gewinnt

link (Spieler) link (Spieler) bool

Add-In Quellen

6 / 57

TrueSkill-Modell Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Bayes’scher Ranking-Algorithmus Entwickelt von Microsoft Research im Jahr 2006 Sch¨atzt die F¨ahigkeit eines Spielers in Bezug auf dessen Leistungen und Ergebnisse Zum Matchmaking in Onlinespielen auf der Xbox verwendet

Add-In Quellen

7 / 57

Was ist Microsoft Excel? Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

8 / 57

Ziel des Vortrags Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Vorstellung der wahrscheinlichkeitstheoretischen Programmiersprache Tabular Nicht: Ablauf/Berechnung der Schlussfolgerungen

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

9 / 57

Quellen des Vortrags Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Gordon, A. et al. (2013): Tabular: A Schema-Driven ” Probabilistic Programming Language“. Gordon, A. et al. (2014): Probabilistic Programs as ” Spreadsheet Queries“.

Add-In Quellen

10 / 57

Inhaltsverzeichnis Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

1 Einleitung und Motivation

Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags 2 Tabular

Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion eines probabilistischen Modells ¨ Ubersetzung in Fun

Update 3 Vorstellung des Add-Ins 4 Referenzen 11 / 57

Was ist Tabular ? Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Wahrscheinlichkeitstheoretische Programmiersprache f¨ ur maschinelles Lernen Als Add-In f¨ ur MS Excel erh¨altlich Kernidee: Programme werden durch Hinzuf¨ ugen von probabilistischen Modellausdr¨ ucken zu existierenden Relationenschemata geschrieben Anwendungsgebiete: Erstellung von Klassifikationen, Empfehlungen, Rankings oder Zusammenlagerungen aus vorhandenen Daten

Add-In Quellen

12 / 57

Wof¨ur braucht man Tabular ? Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Lernen und Schlussfolgerungen bilden aus gegebenen Daten Weltweit große Anzahl an Datens¨atzen in Tabellenkalkulationsprogrammen gehalten Dem einfachen Nutzer von Excel erm¨ oglichen Schlussfolgerungen durch textuelle Anmerkungen zu bilden ohne selbst Code zu schreiben. Keine Datenexporte notwendig!

Add-In Quellen

13 / 57

Inhaltsverzeichnis Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

1 Einleitung und Motivation

Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags 2 Tabular

Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion eines probabilistischen Modells ¨ Ubersetzung in Fun

Update 3 Vorstellung des Add-Ins 4 Referenzen 14 / 57

Funktionsweise von Tabular Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

15 / 57

Funktionsweise von Tabular Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Kernidee: Hinzuf¨ ugen von probabilistischen Modellausdr¨ ucken zu existierenden Relationenschemata Konstruktion von probabilistischen Modelle aus nicht-probabilistischen Datenschemata ¨ Ubersetzung eines solches probabilistisches Modell in Fun

Add-In Quellen

16 / 57

Was ist Fun? Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Kalk¨ ul, das Bayes’sche Schlussfolgerungen durch funktionale Wahrscheinlichkeitsprogrammierung erm¨oglicht Infer.NET Fun die dazugeh¨ orige imperative Sprache Infer.NET Fun wandelt F#-Syntax in ausf¨ uhrbare, probabilistische Modellsprache f¨ ur Bayes’sches Maschinenlernen um

Add-In Quellen

17 / 57

Fortsetzung: Funktionsweise von Tabular Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Konstruktion von probabilistischen Modelle aus nicht-probabilistischen Datenschemata ¨ Ubersetzung eines solches probabilistisches Modell in Fun C#-Programm berechnet aus von Fun erschlossenen Schlussfolgerungen die Resultate und schreibt sie zur¨ uck in Tabellenkalkulationsprogramm

Add-In Quellen

18 / 57

Konstruktion eines probabilistischen Modells Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

(1) Starte mit einem Relationenschema.

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

19 / 57

Relationenschema Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Spieler Name

string

Partie Spieler1 Spieler2 Spieler1Gewinnt

link (Spieler) link (Spieler) bool

Add-In Quellen

20 / 57

Konstruktion eines probabilistischen Modells Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

(1) Starte mit einem Relationenschema. (2) F¨ uge verborgene Spalten hinzu.

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

21 / 57

Arten von Spaltentypen Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

Input Setzt probabilistisches Modell fest Hat keinen Modellausdruck Werte k¨ onnen nicht berechnet werden Werte in einer solchen Spalte d¨ urfen nicht unbekannt sein

Output Hat einen Modellausdruck Werte k¨ onnen berechnet werden Entweder vollst¨andig (observed) oder l¨ uckenhaft (observable)

Latent Hilfsspalte Nicht in urspr¨ unglicher Datenbank vorhanden Hat einen Modellausdruck Werte k¨ onnen berechnet werden 22 / 57

Anwendung auf das Relationenschema Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Spieler Name F¨ahigkeit

string real

Partie Spieler1 Spieler2 Leistung1 Leistung2 Spieler1Gewinnt

input latent

link (Spieler) link (Spieler) real real bool

input input latent latent output

Add-In Quellen

23 / 57

Konstruktion eines probabilistischen Modells Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular

(1) Starte mit einem Relationenschema. (2) F¨ uge verborgene Spalten hinzu. (3) Erg¨anze probabilistische Modellausdr¨ ucke f¨ ur verborgene und Output-Spalten.

Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

24 / 57

Anwendung auf das Relationenschema Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Spieler Name F¨ahigkeit

string real

Partie Spieler1 Spieler2 Leistung1 Leistung2 Spieler1Gewinnt

input latent

link (Spieler) link (Spieler) real real bool

Gaussian(25.0,0.1)

input input latent latent output

Gaussian(Spieler1.F¨ ahigkeit, 1.0) Gaussian(Spieler2.F¨ ahigkeit, 1.0) Leistung1 > Leistung2

Add-In Quellen

25 / 57

Konstruktion eines probabilistischen Modells Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

(1) Starte mit einem Relationenschema. (2) F¨ uge verborgene Spalten hinzu. (3) Erg¨anze probabilistische Modellausdr¨ ucke f¨ ur verborgene und vollst¨andige Spalten. (4) Ermittle Daten und Schlussfolgerungen.

Add-In Quellen

26 / 57

Zwei Arten der Deduktion Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

(a) Query-by-Latent-Column Vollst¨andige Datenbank gegeben Bestimmung der Werte/der Verteilungsfunktionen f¨ ur verborgene Spalten

(b) Query-by-Missing-Value Fehlende Werte in Output-Spalte vorhanden Berechnung/Voraussage dieser fehlenden Werte

Add-In Quellen

27 / 57

Query-by-Latent-Column - Beispiel Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

ID 0 1 2

Name Anna Bob Cynthia

ID 0 1 2

Spieler1 0 1 0

Spieler2 1 2 2

Spieler1Gewinnt nein nein nein

) Z. B. F¨ahigkeit der einzelnen Spieler berechnen 28 / 57

Query-by-Missing-Value - Beispiel Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Add-In Quellen

ID 0 1 2

Name Anna Bob Cynthia

ID 0 1 2

Spieler1 0 1 0

Spieler2 1 2 2

Spieler1Gewinnt nein nein ?

) Ergebnis der Partie zwischen Anna und Cynthia ermitteln 29 / 57

¨ Ubersetzung in Fun Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

¨ Ubersetzung von Datenbankschema hin zu einem Modell in Fun: ¨ Ubersetze erst jede Tabelle des Schemas einzeln ¨ Ubersetze danach zus¨atzlich das gesamte Schema

Add-In Quellen

30 / 57

¨ Ubersetzung in Fun - Illustration am Beispiel(1) Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

LineareRegression muA muB A B X Z Y

real real real real real real real

hyper hyper param param input latent output

0 0 Gaussian(muA,1) Gaussian(muB,1) A*X + B Gaussian(Z,1)

Add-In Quellen

31 / 57

Illustration am Beispiel(1) - Fortsetzung Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Modell einer Zeile der Tabelle LineareRegression: Hyper Prior(h)

Gen(h,w,x)

{muA = 0;muB = 0} {A$ = {};A = Gaussian(h.muA,1); B$ = {};B = Gaussian(h.muB,1); Z$ = {};Y$ = {}} let Z = w.A*x.X + w.B in let Y = Gaussian(Z,1) in ({Y=Y},{Z=Z})

Add-In Quellen

32 / 57

¨ Ubersetzung in Fun - Illustration am Beispiel(2) Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Spieler Name F¨ahigkeit

string real

Partie Spieler1 Spieler2 Leistung1 Leistung2 Spieler1Gewinnt

input latent

link (Spieler) link (Spieler) real real bool

Gaussian(25.0,0.1)

input input latent latent output

Gaussian(Spieler1.F¨ ahigkeit, 1.0) Gaussian(Spieler2.F¨ ahigkeit, 1.0) Leistung1 > Leistung2

Add-In Quellen

33 / 57

Illustration am Beispiel(2) - Fortsetzung Bringing Probabilistic Programming to MS Excel Tobias Standop

Modell P1 einer Zeile der Tabelle Spieler :

Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Hyper Prior(h) Gen(h,w,x)

{} {F¨ahigkeit$ = {}} let F¨ahigkeit = Gaussian(25,0.1) in ({},{F¨ahigkeit = F¨ahigkeit})

Add-In Quellen

34 / 57

Illustration am Beispiel(2) - Fortsetzung Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Modell P2 einer Zeile der Tabelle Partie: Hyper Prior(h) Gen(h,w,x)

{} {Leistung1$ = {};Leistung2$ = {};Spieler1Gewinnt$ = {}} let Leistung1 = Gaussian(Spieler[x.Spieler1].F¨ ahigkeit,1)) in let Leistung2 = Gaussian(Spieler[x.Spieler2].F¨ ahigkeit,1)) in let Spieler1Gewinnt = Leistung1 > Leistung2 in ({Spieler1Gewinnt = Spieler1Gewinnt}, {Leistung1 = Leistung1;Leistung2 = Leistung2})

Add-In Quellen

35 / 57

Illustration am Beispiel(2) - Fortsetzung Bringing Probabilistic Programming to MS Excel Tobias Standop Einleitung und Motivation Einf¨ uhrendes Beispiel TrueSkill-Modell Microsoft Excel Ziel des Vortrags

Tabular Was ist Tabular? Wof¨ ur braucht man Tabular? Funktionsweise Konstruktion ¨ Ubersetzung in Fun Update

Modell f¨ ur das TrueSkill-Schema Hyper Prior(h)

{#Spieler = 1,#Partien = 1} {Spieler = P1 .Prior(P1 .Hyper), Partien = P2 .Prior(P2 .Hyper)}

Gen(h,w,x) let Spieler = [for i