particle filter (ch. 15)
TRANSCRIPT
![Page 1: Particle Filter (Ch. 15)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/1.jpg)
Particle Filter(Ch. 15)
![Page 2: Particle Filter (Ch. 15)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/2.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/3.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/4.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/5.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/6.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/7.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/8.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/9.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/10.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/11.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/12.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/13.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/14.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/15.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/16.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/17.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/18.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/19.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/20.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/21.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/22.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/23.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/24.jpg)
Biggest real world simplifications?
Real World Complications
![Page 25: Particle Filter (Ch. 15)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/25.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/26.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/27.jpg)
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)](https://reader031.vdocuments.mx/reader031/viewer/2022022720/621a8f2013c0d83c580f1d56/html5/thumbnails/28.jpg)
Real World Complications
Position0
Speed0
GPS1
Spin1
Position1
Speed1
Position2
Speed2
Spin2
GPS2
SensOK0
SensOK1
SensOK2
Position3
Speed3
Spin3
GPS3
SensOK3