Word Search result Whos the best Gestures Clicks

  • Slides: 41
Download presentation

> Word? Search result? Who’s the best? Gestures Clicks Game results

> Word? Search result? Who’s the best? Gestures Clicks Game results

reason backwards > Word? Search result? Who’s the best? Gestures Clicks Game results

reason backwards > Word? Search result? Who’s the best? Gestures Clicks Game results

> Gestures

> Gestures

Ordinary program Probabilistic program with Infer. NET 20 -30 lines of ‘simulation’ code (in

Ordinary program Probabilistic program with Infer. NET 20 -30 lines of ‘simulation’ code (in any. NET language) 100 s-1000 s of lines of code Hours, not months!

. . . in Social Networks Network and music tastes Recommended songs Simulation of

. . . in Social Networks Network and music tastes Recommended songs Simulation of sharing of musical tastes between friends . . . in Healthcare New understanding of the causes of asthma Electronic health records Clinical simulation of asthma

bool T F T T … F T T F … F F T

bool T F T T … F T T F … F F T F … bool

bool T ~50% F ~50% bool T ~25% F ~75%

bool T ~50% F ~50% bool T ~25% F ~75%

bool T F T T … F T T F … F F T

bool T F T T … F T T F … F F T F … bool We observe that both. Heads is F

example

example

bool T ~33% F ~67% bool T ~0% F ~100%

bool T ~33% F ~67% bool T ~0% F ~100%

> > e. g. observing 20 binary variables needs ~220 million runs > Infer.

> > e. g. observing 20 binary variables needs ~220 million runs > Infer. NET

var Variable T 50% var F 25%

var Variable T 50% var F 25%

var new Inference. Engine Bernoulli double // ‘prob. True’ is now exactly 0. 25

var new Inference. Engine Bernoulli double // ‘prob. True’ is now exactly 0. 25

We observe that both. Heads is F false Bernoulli double // ‘new. Prob’ is

We observe that both. Heads is F false Bernoulli double // ‘new. Prob’ is now exactly 0. 333…

example

example

Bernoulli(0. 5) & Normal execution Backwards messages Observe F

Bernoulli(0. 5) & Normal execution Backwards messages Observe F

10% Probability of heads (p) 50% 90% T F F F T T T

10% Probability of heads (p) 50% 90% T F F F T T T T F T

Beta distributions 10% 50% 90% T F F F T T T T F

Beta distributions 10% 50% 90% T F F F T T T T F T

// a flat Beta distribution var Variable false true F T Beta // gives

// a flat Beta distribution var Variable false true F T Beta // gives a Beta curve like the ones // on the last slide

T F

T F

N Y Y Let’s look the Let’s lookatat thepage next … result … Aaargh!

N Y Y Let’s look the Let’s lookatat thepage next … result … Aaargh! That looks promising … and see it’s useful ……and if ifit’s worth clicking It’ssee relevant! … let’s click Done! on N N Y Y N click (appeal[d]); var next ==Variable. Bernoulli (0. 2); do. Next =Variable. Bernoulli (0. 9); is. Rel (relevance[d]);

// Is user examining this item? examine[d] = examine[d - 1] & (((!click[d -

// Is user examining this item? examine[d] = examine[d - 1] & (((!click[d - 1]) & next. If. Not. Click) | (click[d - 1] & next. If. Click)); // Flip the biased coins! click[d] = examine[d] & Variable. Bernoulli(appeal[d]); is. Relevant[d] = click[d] & Variable. Bernoulli(relevance[d]);

for (int d = 0; d < n. Ranks; d++) click[d]. Observed. Value =

for (int d = 0; d < n. Ranks; d++) click[d]. Observed. Value = user. clicks[d]; T T F F F F T T

example

example

> > > Old Estimates of Players’ Skills Gamertag Score Sully 25 Sniper. Eye

> > > Old Estimates of Players’ Skills Gamertag Score Sully 25 Sniper. Eye 22 Dr. Slow. Play 17 New Estimates of Players’ Skills

Game Outcome Sniper. Eye 1 st Place Belief in Skill Level 2 nd Place

Game Outcome Sniper. Eye 1 st Place Belief in Skill Level 2 nd Place 3 rd Place Dr. Slow. Play Sully 0 10 20 30 Skill Level 40 50

// Gaussian random variables for skills var skill 1 = Variable. Gaussian(old. Mean 1,

// Gaussian random variables for skills var skill 1 = Variable. Gaussian(old. Mean 1, old. Std. Dev 1); var skill 2 = Variable. Gaussian(old. Mean 2, old. Std. Dev 2); var skill 3 = Variable. Gaussian(old. Mean 3, old. Std. Dev 3); // Players’ performances are centred around their skills var perf 1 = Variable. Gaussian(skill 1, beta); var perf 2 = Variable. Gaussian(skill 2, beta); var perf 3 = Variable. Gaussian(skill 3, beta); // Outcomes Variable. Constrain. Positive(perf 1 – perf 2); Variable. Constrain. Positive(perf 2 - perf 3); // Now we update the players’ skills var new. Skill 1 = Gaussian var new. Skill 2 = Gaussian var new. Skill 3 = Gaussian

Gaussian Bernoulli Poisson Beta Dirichlet Gamma Wishart Discrete Variable. Switch Variable. Case Variable. If

Gaussian Bernoulli Poisson Beta Dirichlet Gamma Wishart Discrete Variable. Switch Variable. Case Variable. If Variable. For. Each Variable. If. Not var bias = Variable. Beta(1, 1); var coin = Variable. Bernoulli(bias); var h = Variable. Gaussian. From. Mean. And. Precision(m, p); var a = b > c; var z = x + y; Variable<bool>

>>FUTURE Infer. NET API var Variable Probabilistic language? var false var new Inference. Engine();

>>FUTURE Infer. NET API var Variable Probabilistic language? var false var new Inference. Engine(); Bernoulli result = ie. Infer<Bernoulli>(first. Coin);

http: //research. microsoft. com/infernet

http: //research. microsoft. com/infernet

http: //research. microsoft. com/infernet

http: //research. microsoft. com/infernet

YOUR FEEDBACK IS IMPORTANT TO US! Please fill out session evaluation forms online at

YOUR FEEDBACK IS IMPORTANT TO US! Please fill out session evaluation forms online at Microsoft. PDC. com

> > channel 9. msdn. com/learn Built by Developers for Developers….

> > channel 9. msdn. com/learn Built by Developers for Developers….

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U. S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.