Partikel Filter

Naives Partikelfilter

Prädiktions- und Filterschritt

Übungsblatt Aufg. 13.2

Prädiktionsschritt

Zum Startzeitpunkt (z.B. $k=0$): Initiale Samples gegeben

$$ f_{k}^{e}\left(\underline{x}_{k}\right)=\sum_{i=1}^{L} w_{k}^{e, i} \cdot \delta\left(\underline{x}_{k}-\underline{\hat{x}}_{k}^{e, i}\right) \qquad w_{k}^{e, i}=\frac{1}{L}, i \in\left\{1, \ldots, L\right\} $$

Prädiktion mithilfe des probabilistischen Systemmodells $f(\underline{x}_{k+1} \mid \underline{x}_k)$

  • Ziehe Samples zum Zeitpunkt $k+1$

    $$ \underline{\hat{x}}_{k+1}^{p, i} \sim f\left(\underline{x}_{k+1} \mid \hat{x}_{k}^{e, i}\right) $$
  • Gewichte bleiben gleich

    $$ w_{k+1}^{p, i} = w_{k}^{e, i} $$

$\Rightarrow$

$$ f_{k+1}^{p}\left(\underline{x}_{k+1}\right)=\sum_{i=1}^{L} w_{k+1}^{p, i} \delta\left(\underline{x}_{k+1}-\underline{\hat{x}}_{k+1}^{p, i}\right) $$

Bei gegebenen geschriebenen Systemmodell

$$ \underline{x}_{k+1} = \underline{a}_k(\underline{x}_k, \underline{w}_k) $$
  • Ziehe $\underline{w}_k^i \sim f_k^w(\cdot)$
  • $\underline{\hat{x}}_{k+1}^{p, i}=\underline{a}_{k}\left(\underline{\hat{x}}_{k}^{e, i}, \underline{w}_{k}^{i}\right), i \in\left\{1, \ldots,L\right\}$

Filterschritt

Filterung mithilfe des probabilistischen Messmodells $f(\underline{y}_k \mid \underline{x}_k)$, falls Messung verfügbar.

Messupdate

$$ \begin{aligned} f_{k}^{e}\left(\underline{x}_{k}\right) &\propto f\left(\underline{y}_{k} \mid \underline{x}_{k}\right) \cdot f_{k}^{p}\left(\underline{x}_{k}\right)\\ &=f\left(\underline{y}_{k} \mid \underline{x}_{k}\right) \cdot \sum_{i=1}^{L} w_{k}^{p, i} \cdot \delta\left(\underline{x}_{k}-\underline{\hat{x}}_{k}^{p, i}\right)\\ &=\sum_{i=1}^{L} \underbrace{w_{k}^{p, i} \cdot f\left(\underline{y}_{k} \mid \hat{\underline{x}}_{k}^{p, i}\right)}_{\propto w_{k}^{e, i}} \cdot \delta(\underline{x}_{k}-\underbrace{\underline{\hat{x}}_{k}^{p, i}}_{\underline{\hat{x}}_{k}^{e, i}}) \end{aligned} $$
  • Positionen bleiben gleich

    $$ \underline{\hat{x}}_{k}^{e, i} = \underline{\hat{x}}_{k}^{p, i} $$
  • Gewichte werden adaptiert

    $$ w_{k}^{e, i} \propto w_{k}^{p, i} \cdot f\left(\underline{y}_{k} \mid \hat{\underline{x}}_{k}^{p, i}\right) $$
    • Normalisierung erforderlich

      $$ w_{k}^{e, i}:=\frac{w_{k}^{e, i}}{\displaystyle \sum_{i} w_{k}^{e,i}} $$

Ablauf

Gewichte sind repräsentiert mit Kreise.

截屏2022-08-14 17.37.55

Vor- und Nachteile

👍 Vorteile

  • Problemlose Behandlung vom nichtlinearen System- und Messmodellen
  • Einstellbare Genauigkeit und Rechenaufwand nach Anzahl der Partikel balancieren
  • Extreme einfache Implementierung

👎 Nachteile

  • Varianz der Samples erhöht sich mit Filterschritten
  • Partikel sterben aus $\rightarrow$ Degenerierung des Filters
  • Aussterben schneller, je genauer die Messung, da Likelihood schmaler ($\rightarrow$ Paradox!)

Verbesserungen

Resampling

  • Maßnahme zur Veringerung der Varianz der Samples

  • Approximation der gewichteter Samples durch ungewichtete

    $$ f_{k}^{e}\left(\underline{x}_{k}\right)=\sum_{i=1}^{L} w_{k}^{e, i} \cdot \delta\left(\underline{x}_{k}-\underline{\hat{x}}_{k}^{e, i}\right) \approx \sum_{i=1}^{L} \frac{1}{L} \delta\left(\underline{x}_{k}-\underline{\hat{\hat{x}}}_{k}^{e, i}\right) $$

    $\underline{\hat{\hat{x}}}_{k}^{e, i}$ : i.d.R nicht die gleiche Orte wie $\underline{\hat{x}}_{k}^{e, i}$

  • Sehr einfaches Verfahren

    • Verwerfen von Samples mit kleinen Gewichten
    • Duplizieren von Samples mit hohen Gewichten proportional zu $w_i$ (importance resampling)
  • Positionen der Samples nicht verändert

    • Veränderung der Position erst im nachfolgenden Prädiktionsschritt

Partikelfilter mit Resampling

截屏2022-08-14 18.04.26
  • Fangen mit Samples der gleichen Gewichte an
  • In $k=1$
    • Propagieren durch Prädiktionsschritt. Die Orte werden verändert, während die Geweichte gleich bleiben.
    • In Filterschritt, verändert die Gewichte. Orte bleiben gleich.
    • Die größeren Sample werden repliziert. Die ganz kleinere werden weg.

Verschiedene Techniken für Resampling

This gives a much clearer explanation. 👍
  • Gegeben: $L$ Partikel mit Gewichten $w_i$

  • Gesucht: $L$ Partikel mit Geweichte $\frac{1}{L}$ (gleichgewichtet)

  • Achtung

    • Hier nur Vervielfältigung
    • Positionen der Partikel unverändert
  • Kann als Kategoriale Verteilung gesehen werden

    截屏2022-08-15 09.43.53

Rouletterad

  • Resampling proportional zu der Gewichten $w_i$

  • Betrachtung der kumulative Verteilung $F(i)$

    截屏2022-08-15 09.46.51
  • Ziehe $L$-mal Zufallszahl $u$ und wähle größte $i$ mit $F(i) \leq u$

  • Entspricht Auswahl mit Rouletterad (z.B. hier $L=5$)

    截屏2022-08-15 09.49.11
  • Problem

    • Sehr kleine Gewichte nicht ausreichend proportional gezogen werden.
    • Man bevorzugt ganz große Gewichte.

Given: Set $S$ of weighted samples

Wanted: Random sample, where the probability of drawing $x_i$ is given by $w_i$

Typically done $n$ times with replacement to generate new sample set $S^\prime$

We have a roulette ring, where the arc length is proportional to the weight.

截屏2022-08-31 22.57.24

We can think of the sampling as following:

We just randomly pick a direction. If I hit $w_3$, then I will take sample Nr. 3

截屏2022-08-31 23.00.05

And repeat this for $n$ times.

Stochastic Universal Sampling

Üb A13.1 (a)
  • Bisher

    • starkes Rauschen $\rightarrow$ Auswahl variiert stark
    • Bevorzugung großer Gewichte
  • Daher: Determistisches Auswahl

    • Randomisierung durch einmaliges Ziehen von $\epsilon \in [0, \frac{1}{2}]$

      $$ u_i = \frac{i}{L} - \epsilon \qquad i \in \{1, \dots, L\} $$

      Für $\epsilon = \frac{1}{2L}$:

      $$ u_i = \frac{2i - 1}{2L} $$
  • Bsp: $L=5$

    截屏2022-08-15 10.01.04 截屏2022-08-15 10.01.22

We model the roulette wheel like a wagen wheel:

截屏2022-08-31 23.01.47

We can make a set of spokes that are $\frac{1}{n}$ full rotation around.

We can randomly put it down someplace, and read off, which $w$ did each spoke hit.

截屏2022-08-31 23.05.06

Compared to roulette wheel:

截屏2022-08-31 23.06.19

Importance Sampling

🎯 Ziel: Berechung des Integrals

$$ E = \int_{\mathbb{R}^N} g(\underline{x}) f(\underline{x}) d\underline{x} $$
  • $E$: Erwartungswert

  • $g(\underline{x})$ : nichtlineare Funktion

  • $f(\underline{x})$ : Verteilungsdichte

Falls Samples von $f(\underline{x})$ verfügbar:

$$ E=\int_{\mathbb{R}^{N}} g(\underline{x}) \sum_{i=1}^{L} w_{i} \cdot \delta\left(\underline{x}-\underline{\hat{x}}_{i}\right) d \underline{x}=\sum_{i=1}^{L} w_{i} g(\underline{x}_i) $$

Aber: Oft Sampling von $f(\underline{x})$ nicht möglich 🤪

Abhilfe: Proposal distribution (a.k.a instrumental distribution, importance distribution) $p(\underline{x})$ mit

$$ \operatorname{supp}\{f(\cdot)\} \subset \operatorname{supp}\{p(\cdot)\} $$

($\operatorname{supp}$ steht für support)

d.h. $p(\underline{x}) > 0$ falls $f(\underline{x}) > 0$.

Für $p(\underline{x})$ müssen wir so auswählen, dass Sampling von $p(\underline{x})$ einfach ist (z.B. Gaußdichte).

Einsetzen:

$$ E=\int_{\mathbb{R}^{N}} g(\underline{x}) \cdot \frac{p(\underline{x})}{p(\underline{x})} \cdot f(\underline{x}) d \underline{x}=\int_{\mathbb{R}^{N}} g(\underline{x}) \cdot \frac{f(\underline{x})}{p(\underline{x})} \cdot p(\underline{x}) d \underline{x} $$

Jetzt würden wir nicht $f(\underline{x})$ in eine Dirac Mixture entwickeln, sondern $p(\underline{x})$ . Davon können wir samplen.

$$ p(\underline{x}) \approx \sum_{i=1}^{L} w_{i} \cdot \delta\left(\underline{x}-\underline{\hat{x}}_{i}\right) $$ $$ \begin{aligned} \Rightarrow E &\approx \int_{\mathbb{R}^{N}} g(\underline{x}) \cdot \frac{f(\underline{x})}{p(\underline{x})} \cdot \sum_{i=1}^{L} w_{i} \delta\left(\underline{x}-\underline{\hat{x}}_{i}\right) d \underline{x} \\\\ &= \sum_{i=1}^{L} g(\underline{\hat{x}}_{i}) \cdot \underbrace{\frac{f(\underline{\hat{x}}_i)}{p(\underline{\hat{x}}_{i})} \cdot w_i}_{=: w_{i}^\prime} \\\\ &= \sum_{i=1}^{L} w_{i}^\prime \cdot g(\underline{\hat{x}}_{i}) \end{aligned} $$

Konvergenz gegen $E$ für $L \to \infty$

I.e. Wir teilen den Ausdruck so auf, dass wir Sample $\underline{\hat{x}}_i$ von der Proposal $p(\underline{x})$ sampeln und ihr ursprüngliches Gewicht $w_i$ mit “Importance” $\frac{f(\underline{\hat{x}}_i)}{p(\underline{\hat{x}}_{i})} $ anpassen.

Check for a clear explanation and visualization.

Sequential Importance Sampling

Übungsblatt Aufg. 13.3

Vor-positionierung von Samples

🎯 Ziel: Systematische und korrekte Positionierung der Samples an Stellen hoher Likelihood vor Filterschritt

  • Verwendung von Proposal statt Systemmodell $f(\underline{x}_{k+1} \mid \underline{x}_k)$

💡Idee: Importance Sampling für $f(\underline{x}_k, \underline{x}_{k-1} \mid \underline{y}_{1:k})$ (die Messung wird auch in Berücksichtigung genommen)

$$ f_{k}^{e}\left(\underline{x}_{k}\right)=f\left(\underline{x}_{k} \mid \underline{y}_{1: k}\right)=\int_{\mathbb{R}^{N}} \cdots \int_{\mathbb{R}^{N}} f\left(\underline{x}_{1: k} \mid \underline{y}_{1 : k}\right) d \underline{x}_{1: k-1} $$

Proposal: $p\left(\underline{x}_{1: k} \mid \underline{y}_{1 : k}\right)$ hängt auch von $\underline{y}_k$ ab.

Damit:

$$ f_{k}^{e}\left(\underline{x}_{k}\right) = \int_{\mathbb{R}^{N}} \cdots \int_{\mathbb{R}^{N}} \underbrace{\frac{f\left(\underline{x}_{1: k} \mid \underline{y}_{1 : k}\right)}{p\left(\underline{x}_{1: k} \mid \underline{y}_{1 : k}\right)}}_{=: w_k^{e, i}} p\left(\underline{x}_{1: k} \mid \underline{y}_{1 : k}\right) d \underline{x}_{1: k-1} $$

Annahme: Proposal ist faktorisierbar

$$ p\left(\underline{x}_{1: k} \mid \underline{y}_{1: k}\right)=p\left(\underline{x}_{k} \mid \underline{x}_{1: k - 1}, \underline{y}_{1: k}\right) \cdot p\left(\underline{x}_{1: k -1} \mid \underline{y}_{1: k - 1}\right) $$

Für gegebenes Sample $\underline{\hat{x}}_{k-1}^{e, i}$ aus letzten Zeitpunkt, ziehe

$$ \underline{x}_{k}^{e, i} \sim P\left(\underline{x}_{k} \mid \hat{\underline{x}}_{k-1}^{e, i}, \underline{y}_{k}\right) $$

Jetzt umschreiben von $\frac{f\left(\underline{x}_{1: k} \mid \underline{y}_{1 : k}\right)}{p\left(\underline{x}_{1: k} \mid \underline{y}_{1 : k}\right)}$

  • Zähler

    $$ \begin{aligned} f\left(\underline{x}_{1: k} \mid \underline{y}_{1: k}\right) &\propto f\left(\underline{y}_{k} \mid \underline{x}_{1: k}, \underline{y}_{1: k - 1}\right) \cdot f\left(\underline{x}_{1: k} \mid \underline{y}_{1: k-1}\right)\\ &=f\left(\underline{y}_{k} \mid \underline{x}_{k}\right) \cdot f\left(\underline{x}_{k} \mid \underline{x}_{1:k-1}, \underline{y}_{1:k-1}\right) \cdot f\left(\underline{x}_{1:k-1} \mid \underline{y}_{1: k-1}\right)\\ &=f\left(\underline{y}_{k} \mid \underline{x}_{k}\right) \cdot f\left(\underline{x}_{k} \mid \underline{x}_{k-1}\right) \cdot f\left(\underline{x}_{1: k-1} \mid \underline{y}_{1: k \cdot 1}\right) \end{aligned} $$
  • Nenner

    $$ p\left(\underline{x}_{1: k} \mid \underline{y}_{1: k}\right)=p\left(\underline{x}_{k} \mid \underline{x}_{1: k - 1}, \underline{y}_{1: k}\right) \cdot p\left(\underline{x}_{1: k -1} \mid \underline{y}_{1: k - 1}\right) $$

$\Rightarrow$ Gewicht für Position $i$:

$$ w_k^{e, i} = \frac{f\left(\underline{\hat{x}}_{1: k} \mid \underline{y}_{1 : k}\right)}{p\left(\underline{\hat{x}}_{1: k} \mid \underline{y}_{1 : k}\right)} \propto \frac{f\left(\underline{y}_{k} \mid \underline{x}_{k}^i\right) \cdot f\left(\underline{x}_{k}^i\mid \underline{x}_{k-1}^i\right)}{p\left(\underline{x}_{k}^i \mid \underline{x}_{1: k - 1}^i, \underline{y}_{1: k}\right)} \cdot \underbrace{\frac{f\left(\underline{x}_{1: k-1}^i \mid \underline{y}_{1: k \cdot 1}\right)}{p\left(\underline{x}_{1: k -1}^i \mid \underline{y}_{1: k - 1}\right)}}_{=w_{k-1}^{e, i}} $$

mit Normalisierung.

Spezielle Proposal

Standard Proposal

Einfache Verwendung der Systemdynamik:

$$ p\left(\underline{x}_{k} \mid \underline{x}_{k-1}, \underline{y}_{k}\right) \stackrel{!}{=} f\left(\underline{x}_{k} \mid \underline{x}_{k-1}\right) $$

Es ergibt sich

$$ w_{k}^{e, i} \propto \frac{f\left(\underline{y}_{k} \mid \hat{\underline{x}}_{k}^{i}\right) \cdot f\left(\hat{\underline{x}}_{k}^{i} \mid \hat{\underline{x}}_{k-1}^{i}\right)}{p\left(\underline{\hat{x}}_{k}^{i} \mid \hat{\underline{x}}_{k-1}^{i}, \underline{y}_k\right)} \cdot w_{k-1}^{e, i}=f\left(\underline{y}_{k} \mid \hat{\underline{x}}_{k}^{i}\right) \cdot w_{k - 1}^{e, i} $$

Sehr einfach, aber KEINE verbesserte Performance 🤪

Optimales Proposal

Verwende

$$ \begin{aligned} p\left(\underline{x}_{k} \mid \underline{x}_{k-1}, \underline{y}_{k}\right) &=f\left(\underline{x}_{k} \mid \underline{x}_{k-1}, \underline{y}_{k}\right) \\ & \propto f\left(\underline{y}_{k} \mid \underline{x}_{k}\right) \cdot f\left(\underline{x}_{k} \mid \underline{x}_{k-1}\right) \end{aligned} $$

Damit wäre

$$ w_k^{e, i} = w_{k-1}^{e, i} $$

Wird als optimales Proposal genannt

  • Minimierte Varianz der Gewicht
  • Varianz der Gewicht ändert sich nicht

‼️ Aber typischerweise können wir hiervon nicht samplen $\rightarrow$ Nur in Spezialfällen verwendbar.

Einfaches praktisches Filter: SIR-Partikelfilter

  • Standard Proposal

  • Resampling nach jedem Filterschritt

  • Da Gewichte in Prädiktionsschritt unverändert

    $$ w_{k-1}^{e, i} = \frac{1}{L} $$

    und damit

    $$ w_k^{e, i} \propto f(\underline{y}_k \mid \underline{\hat{x}}_k^i) $$
  • Einfachstes praktisches Partikelfilter

  • Algorithm

    • Input

      • $\underline{\hat{x}}_{k-1}^{e, i}$
      • $w_{k-1}^{e, i} = \frac{1}{L}, i \in \{1, \dots, L\}$
    • For $i \in \{1, \dots, L\}$

      • Ziehe

        $$ \underline{\hat{x}}_{k-1}^{e, i} \sim f(\underline{x}_k \mid \underline{\hat{x}}_{k-1}^i) $$
      • Gewichtung

        $$ w_k^{e, i} \propto f(\underline{y}_k \mid \underline{\hat{x}}_{k}^{e, i}) $$
    • Normalisierung Gewichte $w_k^{e, i}$

    • Resampling

      $$ \underline{\hat{x}}_{k}^{e, i}, \quad w_{k}^{e, i} = \frac{1}{L} \qquad i \in \{1, \dots, L\} $$