28
Particle Filter (Ch. 15)

Particle Filter (Ch. 15)

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Particle Filter (Ch. 15)

Particle Filter(Ch. 15)

Page 2: Particle Filter (Ch. 15)

Hidden Markov Model

To deal with information over time, we useda hidden Markov model:

Often, we want more than a single variableand/or evidence for our problem(also works well for continuous variables)

X0

X1

X2

X3

X4

e1

e2

e3

e4

...P(x

t+1|x

t) 0.6

P(xt+1

|¬xt) 0.9

P(et|x

t) 0.3

P(et|¬x

t) 0.8

Page 3: Particle Filter (Ch. 15)

Dynamic Bayesian Network

This more general representation is calleda dynamic Bayesian network

Key: =evidence, =non-evidence

A0

B0

C0

A1

B1

C1

d1

e1

A2

B2

C2

d2

e2

A3

B3

C3

d3

e3

Page 4: Particle Filter (Ch. 15)

Hidden Markov Model

We could always just cluster all evidenceand all non-evidence to fit the HMM

However, this would lead to an exponentialamount of calculations/table size(as the cluster would have to track everycombination of variables)

Rather, it is often better to relax our HMMassumptions and expand the network

Page 5: Particle Filter (Ch. 15)

Unfortunately, it is harder to compute a “filtered” message in this new network

We could still follow the same process:1. Use t

0 to compute t

1, add evidence at t

1

2. Use t1 to compute t

2, add evidence at t

2

3. (continue)

(Similar to our “forward message” in HMMs)

Dynamic Bayesian Network

Page 6: Particle Filter (Ch. 15)

The process is actually very similar to variableelimination (with factors)

You have a factor for each variable and combine them to get the next step, then you sum out the previous step

Even with this “efficient” approach, it is still O(dn+k), where d=domain size (2 if T/F), k=num parents, n=num var

Dynamic Bayesian Network

Page 7: Particle Filter (Ch. 15)

If our network is large, finding the exactprobabilities is infeasible

Instead, we will use something similar tolikelihood weighting called particle filtering

This will estimate the filtered probability(i.e. ) using the previous estimate(i.e. )... and then repeating

Particle Filtering

Page 8: Particle Filter (Ch. 15)

Particle filtering algorithm:- Sample to initialize t=0 based on P(x

0) with

N sample “particles”- Loop until you reach t you want:

(1) Sample to apply transition from t-1:each particle samples to decide where go

(2) Weight samples based on evidence:Weight of particle in state x is P(e|x)

(3) Resample N particles based on weights:P(particle in x) = sum w in x / total sum w

Particle Filtering

Page 9: Particle Filter (Ch. 15)

Particle filtering algorithm:- Sample to initialize t=0 based on P(x

0) with

N sample “particles”- Loop until you reach t you want:

Particle Filtering

Page 10: Particle Filter (Ch. 15)

Although the algorithm is supposed to be run in a more complex network... lets start small

Let’s do N=100 particles

First we sample randomly to assign all 100particles T/F in X

0

X0

X1

X2

X3

¬e1

¬e2

e3

P(xt+1

|xt) 0.6

P(xt+1

|¬xt) 0.9

P(et|x

t) 0.3

P(et|¬x

t) 0.8

P(x0) 0.5

Particle Filtering

Page 11: Particle Filter (Ch. 15)

For each particle that is T is X0:

60% chance to be T in X1, 40% F in X

1

For each particle that is F is X0:

90% chance to be T in X1, 10% F in X

1

¬e1 ¬e

2e

3

P(xt+1

|xt) 0.6

P(xt+1

|¬xt) 0.9

P(et|x

t) 0.3

P(et|¬x

t) 0.8

P(x0) 0.5

Particle Filtering

T=48X

0

F=52T=?X

1

F=?

X2

X3

Page 12: Particle Filter (Ch. 15)

Then apply evidence weight, since ¬e1:

T in X1 weighted as 0.7

F in X1 weighted as 0.2

¬e1 ¬e

2e

3

P(xt+1

|xt) 0.6

P(xt+1

|¬xt) 0.9

P(et|x

t) 0.3

P(et|¬x

t) 0.8

P(x0) 0.5

Particle Filtering

T=48X

0

F=52T=78

X1

F=22

X2

X3

Page 13: Particle Filter (Ch. 15)

Resample X1 based on weight & counts:Total weight = 78*0.7 + 22*0.2 = 59Weight in T samples = 78*0.7 = 54.6Resample as T = 54.6/59 = 92.54%(100 samples still)

¬e1 ¬e

2e

3

P(xt+1

|xt) 0.6

P(xt+1

|¬xt) 0.9

P(et|x

t) 0.3

P(et|¬x

t) 0.8

P(x0) 0.5

Particle Filtering

T=48X

0

F=52T=78

X1

F=22

X2

X3w=0.7

w=0.2

Page 14: Particle Filter (Ch. 15)

Start process again... first transitionFor each particle:X

1 T: 60% chance to be T in X

2, 40% F in X

2

X1 F: 90% chance to be T in X

2, 10% F in X

2

¬e1 ¬e

2e

3

P(xt+1

|xt) 0.6

P(xt+1

|¬xt) 0.9

P(et|x

t) 0.3

P(et|¬x

t) 0.8

P(x0) 0.5

Particle Filtering

T=48X

0

F=52T=95

X1

F=5

X2

X3

Page 15: Particle Filter (Ch. 15)

Weight evidence (same evidence as last time,so same weight):T has w=P(¬e

2|x

2) = 0.7

F has w=P(¬e2|¬x

2) = 0.2

¬e1 ¬e

2e

3

P(xt+1

|xt) 0.6

P(xt+1

|¬xt) 0.9

P(et|x

t) 0.3

P(et|¬x

t) 0.8

P(x0) 0.5

Particle Filtering

T=48X

0

F=52T=95

X1

F=5T=60

X2

F=40

X3

Page 16: Particle Filter (Ch. 15)

Resample:Total weight = 60*0.7 + 40*0.2 = 50T weight = 60*0.7 = 42P(sample T in X

2) = 42/50 = 0.84

¬e1 ¬e

2e

3

P(xt+1

|xt) 0.6

P(xt+1

|¬xt) 0.9

P(et|x

t) 0.3

P(et|¬x

t) 0.8

P(x0) 0.5

Particle Filtering

T=48X

0

F=52T=95

X1

F=5T=60

X2

F=40

X3w=0.7

w=0.2

Page 17: Particle Filter (Ch. 15)

You do X3!

(Rather than “sampling” just round to nearestif you want to check your work with here)

¬e1 ¬e

2e

3

P(xt+1

|xt) 0.6

P(xt+1

|¬xt) 0.9

P(et|x

t) 0.3

P(et|¬x

t) 0.8

P(x0) 0.5

Particle Filtering

T=48X

0

F=52T=95

X1

F=5T=82

X2

F=18

X3

evidence positive this time

Page 18: Particle Filter (Ch. 15)

You should get:(1) 65/35(2) w for T = 0.3, W for F = 0.8(3) 41/59

¬e1 ¬e

2e

3

P(xt+1

|xt) 0.6

P(xt+1

|¬xt) 0.9

P(et|x

t) 0.3

P(et|¬x

t) 0.8

P(x0) 0.5

Particle Filtering

T=48X

0

F=52T=95

X1

F=5T=82

X2

F=18T=41

X3

F=59

Page 19: Particle Filter (Ch. 15)

Why does it work?

Each step computes the next “forward”message in filtering, so we can use induction

If one forward message is done right, they should all be approximately correct

(Base case is trivial as P(x0) is directly

sampled, so should be approximate correct)

Particle Filtering

Page 20: Particle Filter (Ch. 15)

We compute the probabilities as:

(above is our inductive hypothesis)

Particle Filtering

Step (3) should looka lot like normalize

Page 21: Particle Filter (Ch. 15)

If we had a dynamic Bayes net (below), whatdo we need to change about particle filtering?

Real World Complications

A0

B0

C0

A1

B1

C1

d1

e1

Page 22: Particle Filter (Ch. 15)

If we had a dynamic Bayes net (below), whatdo we need to change about particle filtering?

For multiple variables, a particle should represent a value in each variable

So if A,B,C are T/F variables,each color in the DBN representsa single particle (e.g. blue = {T,T,F})

Real World Complications

A1

B1

C1

d1

e1

Page 23: Particle Filter (Ch. 15)

Thus, when finding where “blue particle”should go, you probabilistically determinea position for A

1, B

1 and C

1 (again,

the particle spans all variables)

The weighting is similarto likelihood, where youjust multiply all weights together(e.g. for blue particle this is: )

Real World Complications

d1

e1

A1

C1

Page 24: Particle Filter (Ch. 15)

Biggest real world simplifications?

Real World Complications

Page 25: Particle Filter (Ch. 15)

Biggest real world simplifications?

The sensors are only considered to be“uncertain”, but quite often they fail

Temporarily failures (i.e. incorrect sensor readings for a few steps) can be handled byensuring the transition is high enough

(i.e. P(reading = 0 | reading = valid) = 0.01)

Real World Complications

Assume 0 is a sensor failure

Page 26: Particle Filter (Ch. 15)

This can handle cases where there is a briefmoment of failure:

Real World Complications

Position0

Speed0

GPS1

Spin1

Position1

Speed1

Position2

Speed2

Spin2

GPS2

Position3

Speed3

Spin3

GPS3

Page 27: Particle Filter (Ch. 15)

To handle cases where the sensor completelyfails, you can add another variable

This new variable should have a small chanceof going “false” and when false, it will alwaysstay there and give bad readings

You can then ask the network which variableis more likely to be true, and judge off of that

Real World Complications

Page 28: Particle Filter (Ch. 15)

Real World Complications

Position0

Speed0

GPS1

Spin1

Position1

Speed1

Position2

Speed2

Spin2

GPS2

SensOK0

SensOK1

SensOK2

Position3

Speed3

Spin3

GPS3

SensOK3