Gaussian mixture in particle filter

Gaussian mixture in particle filter

di Andrea Premate -
Numero di risposte: 5

Buongiorno,
come accennato a lezione mi domandavo se una mistura di gaussiane fosse davvero il miglior modello per attribuire i pesi alle diverse particelle del particle filter. Il dubbio mi è sorto quando provando tale modello nella pratica, nella porzione di percorso in cui si ha una sovrapposizione di 2 camera readings(chiamiamole "percorso1 vero"(fucsia) e "lettura intermittente 3"(giallo)), la probabilità associata a tale zona diventa troppo preponderante e va a deprivare quasi sempre del tutto le particelle che erano presenti su "percorso2 vero"(blu). Questo succede perché usando la mistura di gaussiane le probabilità si "sommano" (e poi ovviamente si normalizzano per avere una distribuzione di probabilità) e passo dopo passo a causa del resampling si converge verso la situazione descritta. Questo fenomeno non succedeva invece quando, come avevo pensato precedentemente, anziché utilizzare una mistura di gaussiane andavo a considerare solo la gaussiana più vicina alla singola particella. Facendo così infatti, il passaggio delle particelle dalla "zona critica" descritta prima era molto più robusto e il cluster su "percorso2 vero"(blu) non veniva deprivato eccessivamente. 

Riassumendo:

- mistura di gaussiane PRIMA

Mistura PRIMA

- mistura di gaussiane DOPO

Mistura DOPO


- gaussiana più vicina PRIMA

gaussiana più vicina PRIMA

- gaussiana più vicina DOPO

gaussiana più vicina DOPO


Generalizzando, per coprire anche i casi con gaussiane con incertezze differenti, si può dire che, mentre nella mistura viene effettuata una somma normalizzata delle diverse gaussiane, nel metodo descritto si va a prendere la funzione max(gussiana1, gaussiana2, ....), come nella seguente figura(la somma non è normalizzata), che rappresenta il caso 1D della situazione precedente:



Si forza quindi a mantenere, in questo caso, 3 picchi nella distribuzione, poiché il numero di letture risulta 3 e si "scarica" il gioco delle probabilità non sull'altezza delle curve ma sull'estensione spaziale del dominio (tranne nel caso in cui le due gaussiane di sinistra risultano esattamente sovrapposte). 

Il problema alternativamente potrebbe essere risolto andando ad impostare una incertezza delle gaussiane più piccola, in modo che le sovrapposizioni possibili si presentino solo nel caso in cui le camera readings siano davvero praticamente sovrapposte (poco probabile). 

Specifico che tutto il discorso si basa sul fatto che si tenga conto solo delle letture del punto P1 del robot, e ci sono quindi dei possibili miglioramenti da fare che potrebbero portare il problema presentato a risolversi da solo, ma il discorso di base vale comunque in alcune istanze del problema generale.

In riposta a Andrea Premate

Ri: Gaussian mixture in particle filter

di Domenico Giorgio Sorrenti -

Anche se il considerare entrambi i punti del robot (una sovrapposizione "completa" delle ipotesi di stato, che include quindi anche l'orientamento) rende poco probabile il caso di cui parla, trovo interessante affrontarlo, perché in questo genere di problemi la situazione più sfortunata, per quanto poco probabile possa apparire, poi si verifica e fa saltare tutto. Inoltre concordo che il problema abbia una valenza generale.

Detto questo, non mi è ben chiaro se la (eccessiva) riduzione di particelle sul "percorso vero 4" non sia dovuta a qualche altro problema. In altre parole, è vero che quando le particelle sul "percorso vero 1" arrivano nella zona della "lettura intermittente 3" le normali corrispondenti circa si sommano, ma così facendo non stiamo creando campioni con pesi che sopraffanno gli altri, resta circa un 25% di pesi per le particelle su "percorso vero 2" e su "lettura intermittente 2" (in realtà mi aspetto che le particelle sulle intermittenti spariscano presto, perché ad ogni iterazione la previsione, il movimento, porta quelle particelle sul valori bassi della normale). Ipotizzando che lei non stia usando numeri bassissimi di particelle (nel qual caso la probabilità di non selezionare niente su "percorso vero 2" non è del tutto infinitesima e potrebbe anche capitare), non mi è ben chiaro perché non accada quello che accade in condizioni di non sovrapposizione, ovvero che l'evidenza fornita da essere in accordo con una delle misure faccia sopravvivere il cluster di particelle; certamente cresceranno le particelle su "percorso vero 1", ma senza far sparire quelle su "percorso vero 4", visto che nel resampling una quota dei pesi non trascurabile si riferisce a particelle su "percorso vero 4".

Per quanto riguarda invece la sua proposta, anche se non mi è ben chiaro come si possa effettuare la scelta della "più vicina" (solo valori nominali? una distanza mediata dalla varianza della normale? altro) ho bisogno di pensarci ancora un po'.

Sentiamo anche le opinioni dei suoi colleghi...

In riposta a Domenico Giorgio Sorrenti

Ri: Gaussian mixture in particle filter

di Andrea Premate -
Secondo me il punto chiave è che la disparità dovuta alla diversa probabilità è ripetuta in più passi. Se ipotizziamo che da una situazione di equilibrio in cui ho una divisione 150 - 150 (nell'esempio ho usato 300 particelle) ad ogni passo il 50% delle particelle del cluster "sfortunato" passa al cluster in cui c'è sovrapposizione di letture, bastano pochi passi perché la situazione si sbilanci molto ed il resampling successivamente "finisce il lavoro" di azzeramento del cluster. In numeri avrei una successione del tipo 150 - 75 - 38 - 19 ... e ciò è dovuto alla diversa altezza delle curve che si vengono a creare. Se invece impediamo che i picchi siano di diversa altezza, come nella mia proposta, non si presenta questa situazione in cui uno dei due cluster finisce per dominare sull'altro. Mi sembra corretto ragionare sulla percentuale di particelle che se ne va da un cluster all'altro perché in una situazione di picchi uguali la situazione rimane stazionaria: se ci sono 200 - 100 al passo successivo ho (a meno del resampling) ancora 200-100. Passare invece da una zona con letture sovrapposte ha l'effetto di sbilanciare questo equilibrio ad ogni passo in cui succede che la somma delle due gaussiane quasi sovrapposte è maggiore rispetto alla gaussiana sul percorso2 vero (ragionando per semplicità solo con i picchi).
La scelta della più vicina è semplicemente fatta andando a misurare la distanza euclidea dalla particella (lo stato viene trasformato da coord mondo a coord camera) ad ognuna delle letture della camera e viene considerata solo la gaussiana relativa alla distanza minore misurata: procedo in questo modo poiché nel caso in esempio ho varianza uguale tra le diverse gaussiane e quindi vado a considerare semplicemente il centro di ogni gaussiana (le letture della camera). Nel caso avessi a che fare con varianze differenti calcolerei indipendentemente la probabilità della particella per ogni gaussiana e poi andrei a prendere il max. Questo secondo modo si può vedere come una generalizzazione del primo.
In riposta a Andrea Premate

Re: Gaussian mixture in particle filter

di Domenico Giorgio Sorrenti -

Un po' di commenti sparsi (sperando di sentire qualcosa anche dai suoi colleghi):

  • dove dice "Il problema alternativamente potrebbe essere risolto andando ad impostare una incertezza delle gaussiane più piccola, in modo che le sovrapposizioni possibili si presentino solo nel caso in cui le camera readings siano davvero praticamente sovrapposte (poco probabile)": non concordo perché la covarianza della misura non la imposta come desidera, la imposta come è giusto che sia in funzione di quello che conosce della precisione del sistema sensore;
  • dove dice "Specifico che tutto il discorso si basa sul fatto che si tenga conto solo delle letture del punto P1 del robot, e ci sono quindi dei possibili miglioramenti da fare che potrebbero portare il problema presentato a risolversi da solo, ma il discorso di base vale comunque in alcune istanze del problema generale.": è vero che considerando anche l'orientamento diventa necessario, per avere questo fenomeno di sovrapposizione, che il target mobile arrivi anche con lo stesso orientamento, meno facile, ma non impossibile, quindi concordo che si tratti di una questione di interesse generale;
  • circa "nel metodo descritto si va a prendere la funzione max(gussiana1, gaussiana2, ....)": questa è una versione nobile di "prendo la normale più vicina", ma è interessante, l'ha visto in qualche altro insegnamento? In letteratura ho trovato qualcosa: provi a cercare "olson burgard max mixture", mi pare un qualcosa di simile...
  • circa "ad ogni passo il 50% delle particelle del cluster "sfortunato" passa al cluster in cui c'è sovrapposizione di letture e bastano pochi passi perché la situazione si sbilanci molto": la sovrapposizione inizia parzialmente, cresce e poi decresce; in effetti non ho un'idea precisa di quanto duri rispetto alla dinamica di pesi_alti-resampling, ma, come dicevo in altro intervento, 
  • circa "ed il resampling successivamente "finisce il lavoro" di azzeramento del cluster": in che senso "il resampling"? È il resampling che modifica le percentuali quando c'è sovrapposizione, ma quando non c'è sovrapposizione non vedo motivo (a parte la realizzazione più o meno sfortunata del rumore) per cui le cardinalità dei 2 cluster debbano cambiare (ma... potrei essere io il cieco di sorrento);
  • circa "Nel caso avessi a che fare con varianze differenti calcolerei indipendentemente la probabilità della particella per ogni gaussiana e poi andrei a prendere il max": non capisco perché non cercare il massimo anche se le varianze delle normali sono uguali.
In riposta a Domenico Giorgio Sorrenti

Ri: Re: Gaussian mixture in particle filter

di Federica Di Lauro -
Intervento sull'idea di prendere il max tra le gaussiane vs mixture: non avendo conoscenze a priori sulle letture camera, in un caso reale io darei più peso ad una certa zona del mondo se rilevassi due letture uguali/molto vicine, quindi il modello mixture mi sembra migliore.
Ad esempio se abbiamo una lettura 2 vicino a una lettura 1 non possiamo sapere se le due letture non siano dei rilevamenti di 2 target veri, o due rilevamenti poco distanti tra loro dello stesso target la cui distanza è dovuta al rumore . Di conseguenza dovremmo presupporre che è molto probabile che ci sia uno o due target in quella zona.
In riposta a Domenico Giorgio Sorrenti

Ri: Re: Gaussian mixture in particle filter

di Andrea Premate -
- Sì, ovviamente nella pratica non si può impostare la covarianza della misura a piacimento, intendevo solo dire che nel caso in cui tale covarianza sia minore è meno probabile che il problema si verifichi, essendo le gaussiane più "strette".
- La ringrazio per la letteratura indicata, non appena avrò tempo la guarderò nel dettaglio. Non l'ho visto in qualche insegnamento, forse l'ispirazione proviene da qualcosa letto riguardo alla logica fuzzy.
- Sì, riguardo alla frase "ed il resampling successivamente "finisce il lavoro" di azzeramento del cluster" mi sono espresso male, intendevo proprio la realizzazione più o meno sfortunata del rumore.
- circa "Nel caso avessi a che fare con varianze differenti calcolerei indipendentemente la probabilità della particella per ogni gaussiana e poi andrei a prendere il max" certamente si può cercare il massimo anche se le varianze delle normali sono uguali, le ho semplicemente raccontato il metodo così come passo passo mi è venuto in mente, quindi in un primo momento avevo pensato solo alla gaussiana più vicina e poi mi è venuto in mente di considerare il max per generalizzare.