Appunti di filtraggio non-lineare - Dipartimento di Ingegneria dell
Transcript
Appunti di filtraggio non-lineare - Dipartimento di Ingegneria dell
Appunti di filtraggio non-lineare MAGGIO 2007 Indice 1 Filtraggio ricorsivo non lineare 1.1 Filtraggio ricorsivo Bayesiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Filtro di Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Filtro di Kalman Esteso (EKF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 6 7 2 Filtro di Kalman Unscented (UKF) 2.1 Trasformazione Unscented . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 L’algoritmo UKF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 13 3 Particle Filter 3.1 Integrazione Monte Carlo (MCI) . . . . . . . . . . . . . . . . . . . . . . 3.2 Campionamento della funzione di importanza (IS) . . . . . . . . . . . . 3.3 Applicazione di MCI al filtraggio ricorsivo . . . . . . . . . . . . . . . . . 3.4 Campionamento sequenziale della funzione di importanza (SIS) . . . . . 3.5 Scelta della funzione di importanza . . . . . . . . . . . . . . . . . . . . . 3.6 Ricampionamento e algoritmo SIR (Sequential Importance Resampling) 16 16 18 19 21 24 25 II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capitolo 1 Filtraggio ricorsivo non lineare Il problema del filtraggio consiste nello stimare ricorsivamente lo stato di un sistema dinamico utilizzando un insieme di misure rumorose. Un sistema dinamico tempo discreto è modellato attraverso un’equazione di stato e un’equazione di uscita: x(t + 1) = f (t, x(t), w(t)) (1.0.1) y(t) = h(t, x(t), v(t)) dove x(t) è il vettore di stato, w(t) è il rumore di processo, y(t) è il vettore delle misure e v(t) il rumore di misura. Nel caso in cui f (·) e h(·) siano funzioni lineari e i rumori di processo e misura siano Gaussiani, la soluzione ottima del problema di filtraggio ricorsivo è data dal filtro di Kalman (KF=Kalman Filter ). Nel caso non lineare non esiste in generale una soluzione ottima in forma chiusa. Tuttavia, assumendo che i rumori di processo e di misura siano Gaussiani e additivi, uno dei metodi classici per risolvere il problema di filtraggio non lineare è quello di linearizzare il sistema, nell’intorno della stima corrente, ed applicare il filtro di Kalman al sistema linearizzato; il filtro così ottenuto prende il nome di Filtro di Kalman Esteso (EKF=Extended Kalman Filter ). Se le non linearità sono significative e/o i rumori non sono Gaussiani, EKF può fornire prestazioni inadeguate e quindi si deve ricorrere ad altre soluzioni. Due di queste, oggigiorno comunemente utilizzate, sono unscented Kalman filter ed il particle filter. 1.1 Filtraggio ricorsivo Bayesiano Definendo con xt = {x(0), x(1), . . . , x(t)} la sequenza degli stati fino all’istante t, con yt = {y(1), y(2), . . . , y(t)} la sequenza delle misure e osservando che, a causa dei rumori di processo e misura, stato e misure sono variabili aleatorie, l’obiettivo è stimare l’evolvere dello stato x(t) usando tutte le misure yt raccolte fino al tempo corrente t. Poiché x(t) è una variabile aleatoria, tutte le informazioni fornite da yt sullo stato x(t) sono raccolte nella PDF a-posteriori p(x(t)|yt )1 Quindi una tecnica di filtraggio ricorsivo deve fornire una stima di p(x(t)|yt ). La conoscenza della PDF a-posteriori permette di determinare qualsiasi statistica di x(t), come ad esempio la 1 Si osserva che p(x(0)|y(0)) = p(x(0)) è la PDF a-priori dello stato iniziale. 1 CAPITOLO 1. FILTRAGGIO RICORSIVO NON LINEARE media condizionata, che corrisponde alla stima MMSE: Z x̂(t) = x(t) p(x(t)|yt ) dx(t). 2 (1.1.1) La differenza rispetto alla stima batch (non ricorsiva) è che si impone che la stima di p(x(t)|yt ) sia generata solo sulla base della stima precedente p(x(t − 1)|yt−1 ) e della misura corrente y(t), cioè ricorsivamente. La ricorsione consiste di due passi: aggiornamento temporale (predizione) e aggiornamento della misura (correzione). Predizione: Data p(x(t − 1)|yt−1 ) si calcola p(x(t)|yt−1 ) tramite Z t−1 p(x(t)|x(t − 1), yt−1 ) p(x(t − 1)|yt−1 ) dx(t − 1) p(x(t)|y ) = (1.1.2) x(t−1) Aggiornamento della misura Dati p(x(t)|yt−1 ) e y(t) si calcola p(x(t)|yt ) tramite p(x(t)|yt ) = p(y(t)|x(t), yt−1 ) p(x(t)|yt−1 ) p(y(t)|yt−1 ) (1.1.3) Esaminando (1.1.2) e (1.1.3) si nota come non sia possibile in generale ottenere una stima ricorsiva, a causa dei termini p(x(t)|x(t−1), yt−1 ) e p(y(t)|x(t), yt−1 ) che richiedono la memorizzazione di tutta la sequenza di misure yt−1 . Si osserva che anche il termine p(y(t)|yt−1 ) dipende dalle misure passate, tuttavia tale termine può essere espresso come: Z t−1 p(y(t)|y ) = p(y(t)|x(t), yt−1 ) p(x(t)|yt−1 ) dx(t) (1.1.4) cioè in funzione di p(y(t)|x(t), yt−1 ) e p(x(t)|yt−1 ). Quindi per poter realizzare uno stimatore ricorsivo è necessario fare delle assunzioni sul sistema in modo da eliminare, in p(x(t)|x(t − 1), yt−1 ) e p(y(t)|x(t), yt−1 ), il condizionamento rispetto a yt−1 . In primo luogo si assume che la sequenza di stato sia un processo di Markov, cioè: p(x(t)|xt−1 ) = p(x(t)|x(t − 1)). (1.1.5) In secondo luogo si assume che le misure yt siano condizionatamente indipendenti dalla sequenza degli stati, vale a dire: t Y p(y(i)|x(i)) (1.1.6) p(yt |xt ) = i=1 Dalle due assunzioni (1.1.5)-(1.1.6) si deduce il seguente passo di aggiornamento temporale (predizione). CAPITOLO 1. FILTRAGGIO RICORSIVO NON LINEARE Predizione sotto le ipotesi (1.1.5) e (1.1.6) Z p(x(t)|x(t − 1)) p(x(t − 1)|yt−1 ) dx(t − 1) p(x(t)|yt−1 ) = 3 (1.1.7) x(t−1) Dimostrazione - Per la definizione di probabilità marginale si ha Z p(x(t), xt−1 |yt−1 ) dxt−1 p(x(t)|yt−1 ) = t−1 x Z p(yt−1 |xt ) p(xt ) = dxt−1 p(yt−1 ) xt−1 (1.1.8) Dall’assunzione di sistema Markoviano p(xt ) = p(x(t)|x(t − 1)) p(xt−1 ) e dall’ipotesi di misure condizionatamente indipendenti è possibile eliminare il condizionamento delle misure rispetto a x(t); infatti Z t−1 t p yt |xt dy(t) p y |x = y(t) = = = Z t Y p (y(i)|x(i)) dy(t) y(t) i=1 t−1 Y p (y(i)|x(i)) i=1 t−1 Y Z p (y(t)|x(t)) dy(t) (1.1.9) y(t) p (y(i)|x(i)) i=1 = p yt−1 |xt−1 Sostituendo (1.1.9) in (1.1.8), si ha Z p(yt−1 |xt−1 ) p(xt−1 ) p(x(t)|x(t − 1)) dxt−1 p(x(t)|yt−1 ) = t−1 ) p(y t−1 x Z Z p(yt−1 |xt−1 ) p(xt−1 ) p(x(t)|x(t − 1)) = dx(t − 1) dxt−2 p(yt−1 ) x(t−1) xt−2 Z Z p(xt−1 |yt−1 ) p(x(t)|x(t − 1)) dx(t − 1) dxt−2 = x(t−1) xt−2 Z Z p(x(t − 1), xt−2 |yt−1 ) p(x(t)|x(t − 1)) dxt−2 dx(t − 1) = t−2 x(t−1) x Z p(x(t)|x(t − 1)) p(x(t − 1)|yt−1 ) dx(t − 1) = x(t−1) (1.1.10) Aggiornamento della misura sotto le ipotesi (1.1.5) e 1.1.6) CAPITOLO 1. FILTRAGGIO RICORSIVO NON LINEARE p(x(t)|yt ) = p(y(t)|x(t)) p(x(t)|yt−1 ) p(y(t)|yt−1 ) Dimostrazione - Applicando la definizione di probabilità marginale e la regola di Bayes Z t p(x(t), xt−1 |yt ) dxt−1 p(x(t)|y ) = xt−1 Z p(yt |xt ) p(xt ) dxt−1 = t) p(y t−1 x Z p(y(t)|x(t)) p(yt−1 |xt−1 ) p(xt ) = dxt−1 t) p(y t−1 x Z p(y(t)|x(t)) p(yt−1 |xt−1 ) p(x(t)|xt−1 ) p(xt−1 ) = dxt−1 p(yt ) xt−1 Z p(x(t)|xt−1 ) p(xt−1 |yt−1 )p(yt−1 ) dxt−1 xt−1 = p(y(t)|x(t)) p(y(t)|yt−1 ) p(yt−1 ) Z p(x(t)|xt−1 ) p(xt−1 |yt−1 ) dxt−1 xt−1 = p(y(t)|x(t)) p(y(t)|yt−1 ) Z p(x(t)|xt−1 , yt−1 ) p(xt−1 |yt−1 ) dxt−1 t−1 = p(y(t)|x(t)) x p(y(t)|yt−1 ) p(y(t)|x(t)) p(x(t)|yt−1 ) = p(y(t)|yt−1 ) 4 (1.1.11) si ha (1.1.12) (1.1.13) (1.1.14) (1.1.15) (1.1.16) (1.1.17) (1.1.18) dove (1.1.13) segue dall’ipotesi di misure condizionatamente indipendenti dalla sequenza degli stati e in (1.1.16) si è sfruttato il fatto che p x(t)|xt−1 , yt−1 p yt−1 |xt−1 t−1 = p x(t)|xt−1 , yt−1 p x(t)|x = t−1 t p (y |x ) avendo precedentemente dimostrato in (1.1.9) che p(yt−1 |xt ) = p(yt−1 |xt−1 ). Confrontando le formule (1.1.2) e (1.1.3) con (1.1.7) e (1.1.11) si derivano, nell’ipotesi di sistema Markoviano e misure condizionatamente indipendenti, le uguaglianze seguenti: p(x(t)|x(t − 1), yt−1 ) = p(x(t)|x(t − 1)) p(y(t)|x(t), y t−1 ) = p(y(t)|x(t)) (1.1.19) (1.1.20) Riassumendo, quindi, il filtraggio Bayesiano è esprimibile in forma ricorsiva se il sistema è Markoviano e le misure sono condizionatamente indipendenti. Si può verificare che il sistema dinamico (1.0.1) è Markoviano e ha misure condizionatamente indipendenti se le seguenti condizioni sono soddisfatte: CAPITOLO 1. FILTRAGGIO RICORSIVO NON LINEARE 5 wt è una sequenza di variabili aleatorie indipendenti; • vt è una sequenza di variabili aleatorie indipendenti; • wt , vt e x(0) sono mutuamente indipendenti. • Tuttavia, le equazioni (1.1.7) e (1.1.11) forniscono solo una soluzione concettuale al problema del filtraggio ricorsivo; infatti, l’integrale in (1.1.7) e l’integrazione (1.1.4) necessaria per calcolare il denominatore di (1.1.11) non hanno in generale soluzione in forma chiusa. In generale non è neanche possibile esprimere p(x(t)|x(t−1)) e p(y(t)|x(t)) in forma chiusa, a meno che le equazioni di stato e di misura del sistema (1.0.1) soddisfino le condizioni riportate nel seguente teorema [3]. Teorema - Siano x e y vettori aleatori della stessa dimensione tali che y = f (x). Supponendo che f −1 (·) esiste, allora: −1 ∂f (y) −1 py (y) = px f (y) det (1.1.21) ∂y dove f −1 (·) è la funzione inversa di f (·). Tramite (1.1.21) è possibile calcolare p(x(t)|x(t − 1)) e p(y(t)|x(t)) per il sistema (1.0.1), se le funzioni f (t, x(t), ·) ed h(t, x(t), ·) sono invertibili rispetto a w(t) e v(t) rispettivamente. Sotto queste ipotesi, da (1.1.21) segue che: −1 ∂fw (·) −1 p(x(t + 1)|x(t)) = pw(t) fw (t, x(t), x(t + 1)) det (1.1.22) ∂x(t) −1 ∂hv (·) −1 (1.1.23) p(y(t)|x(t)) = pv(t) hv (t, x(t), y(t)) det ∂y(t) Esempio - La probabilità di transizione è esprimibile nella forma (1.1.22) nel caso in cui in (1.0.1) i rumori di processo e misura siano additivi, cioè il sistema dinamico sia descritto dalle equazioni seguenti: x(t + 1) = f (t, x(t)) + w(t) (1.1.24) y(t) = h(t, x(t)) + v(t) In tal caso p(x(t)|x(t − 1)) = pw(t−1) (x(t) − f (t, x(t − 1))) p(y(t)|x(t)) = pv(t) (y(t) − h(t, x(t))) (1.1.25) (1.1.26) Nel filtraggio ricorsivo non solo si vuole calcolare una stima dello stato del sistema dinamico, ma si vuole anche quantificare l’incertezza associata a tale stima tramite la matrice di covarianza P(t) = E[x̂(t) − x(t)][x̂(t) − x(t)]′ Dato che non si conosce lo stato vero x(t), per calcolare questa incertezza si deve stimare anche la matrice di covarianza. Calcolate le stime x̂(t) e P̂(t) si richiede che queste soddisfino le seguenti proprietà. CAPITOLO 1. FILTRAGGIO RICORSIVO NON LINEARE 6 Assenza di polarizzazione: una stima è non polarizzata se il suo valore atteso è uguale al valore vero. Efficienza: uno stimatore è efficiente se possiede la più piccola matrice di covarianza tra tutti gli stimatori non polarizzati. Consistenza: una stima è consistente se converge al valore vero al crescere del numero di osservazioni disponibili. Robusto: uno stimatore è robusto se è poco sensibile agli errori di misura e alle incertezze di modellizzazione. La stima della matrice di covarianza è consistente se, oltre a convergere alla covarianza vera, soddisfa la disuguaglianza matriciale P̂(t) ≥ P(t), cioè la covarianza non deve essere mai sottostimata. Nei capitoli seguenti vengono presentati due metodi per risolvere il problema della stima ricorsiva, che seguono rispettivamente un approccio analitico e un approccio numerico. 1.2 Filtro di Kalman Il problema del filtraggio si riduce alla stima della PDF condizionata dello stato rispetto alle misure. Nell’ipotesi di sistema (1.0.1) lineare e Gaussiano, la PDF condizionata è una Gaussiana e quindi completamente caratterizzata dai suoi primi due momenti: media e covarianza. In questo caso la stima della PDF condizionata equivale alla stima della sua media e covarianza e il filtro di Kalman fornisce proprio le equazioni che permettono di stimare queste due quantità e propagare le stime nel tempo. Inoltre il filtro di Kalman è ottimale, in quanto, nell’ipotesi di sistema lineare e Gaussiano, le stime coincidono con media e covarianza condizionata e quindi sono ottimali nel senso del minimo errore quadratico medio (MMSE). Si consideri, quindi, il caso in cui il sistema (1.0.1) si riduce ad un sistema lineare tempo discreto: x(t + 1) = A(t) x(t) + w(t) (1.2.1) con w(t) rumore di processo, bianco, gaussiano, a media nulla e di covarianza: E[w(t)w′ (t)] = Q(t). (1.2.2) y(t) = C(t) x(t) + v(t) (1.2.3) L’equazione di misura è dove v(t) è il rumore di misura, bianco, gaussiano, a media nulla e di covarianza E[v(t)v′ (t)] = R(t) (1.2.4) Si suppone che le matrici A(t), C(t), Q(t), R(t) siano note e che lo stato iniziale x(0), non noto, sia modellabile come una variabile aleatoria gaussiana, con media e covarianza note. Si assume inoltre che i due disturbi (di processo e di misura) e lo stato iniziale siano mutuamente CAPITOLO 1. FILTRAGGIO RICORSIVO NON LINEARE 7 indipendenti. Sotto queste ipotesi esiste una soluzione ricorsiva al problema di filtraggio e tale soluzione è data dal filtro di Kalman. Le ben note equazioni del filtro di Kalman sono: ỹ(t) = y(t) − C(t)x̂(t|t − 1) innovazione ′ S(t) = C(t)P(t|t − 1)C (t) + R(t) covarianza dell’innovazione ′ (t)S−1 (t) L(t) = P(t|t − 1)C guadagno (1.2.5) x̂(t|t) = x̂(t|t − 1) + L(t)ỹ(t) stima filtrata P(t|t) = P(t|t − 1) − L(t)S(t)L′ (t) covarianza della stima filtrata x̂(t + 1|t) = A(t)x̂(t|t) stima predittiva P(t + 1|t) = A(t)P(t|t)A′ (t) + Q(t) covarianza della stima predittiva Le equazioni vengono inizializzate con x̂(0|0) e P(0|0), media e covarianza a-priori di x(0). Si noti che nel caso in cui le matrici A(t) = A, C(t) = C, Q(t) = Q e R(t) = R sono tempo invarianti, il filtro ammette (sotto certe ipotesi) una soluzione di regime K(t) = K e P(t) = P. Si osserva anche che, nel caso in cui non sia valida l’ipotesi di gaussianità per lo stato iniziale e/o i disturbi, la stima fornita dal filtro di Kalman non è quella ottimale a minimo errore quadratico medio (MMSE), ma è solo la migliore stima lineare non polarizzata MMSE. Per maggiori dettagli si consulti [?]. 1.3 Filtro di Kalman Esteso (EKF) Nel caso generale (1.0.1), la soluzione del problema del filtraggio è infinito-dimensionale, cioè si devono conoscere tutti i momenti della PDF condizionata per poterla caratterizzare completamente. Quindi, escluso alcuni casi particolari (fra i quali è compreso anche il filtro di Kalman), non è possibile ottenere una soluzione esatta al problema del filtraggio e si deve ricorrere a soluzioni approssimate. Il metodo di linearizzazione, sul quale si basa il filtro di Kalman Esteso (EKF), è la tecnica più usata per trovare una soluzione approssimata al problema del filtraggio. L’idea è quella di approssimare le funzioni nonlineari f (·) e h(·) in (1.0.1) mediante uno sviluppo in serie di Taylor al primo ordine (o ad ordini superiori se si vuole ottenere una migliore approssimazione) nell’intorno della stima corrente. A seguito della linearizzazione, il sistema (1.0.1) diventa lineare e ipotizzando che la PDF condizionata sia Gaussiana, si può applicare il filtro di Kalman al sistema linearizzato, calcolando media e covarianza della PDF. La stima fornita dal filtro EKF, in generale, è polarizzata e inconsistente, e ha buone prestazioni solo se le approssimazioni fatte (linearizzazione e Gaussianità) sono ragionevoli. Si consideri, quindi, il sistema x(t + 1) = f (t, x(t)) + w(t) (1.3.1) y(t) = h(t, x(t)) + v(t) con f (t, x) e h(t, x) funzioni non lineari rispetto a x. Per i disturbi si suppongono valide le assunzioni precedenti. Per risolvere il problema in questo caso, si linearizzano le due funzioni f (t, x) ed h(t, x) rispettivamente nell’intorno dei punti x = x̂(t|t) e x = x̂(t|t − 1). Si definiscono CAPITOLO 1. FILTRAGGIO RICORSIVO NON LINEARE quindi le matrici Jacobiane ∂f (·) A(t) = ∂x x=x̂(t|t) ∂h(·) C(t) = ∂x x=x̂(t|t−1) e si approssimano al primo ordine le suddette funzioni nel seguente modo: f (t, x(t)) ∼ = f (t, x̂(t|t)) + A(t) [x(t) − x̂(t|t)] h(t, x(t)) ∼ = h(t, x̂(t|t − 1)) + C(t) [x(t) − x̂(t|t − 1)] 8 (1.3.2) (1.3.3) Utilizzando tali approssimazioni, il sistema è diventato lineare per cui si può applicare il filtro di Kalman, ottenendo le seguenti ricorsioni: S(t) = C(t)P(t|t − 1)C′ (t) + R(t) L(t) = P(t|t − 1)C′ (t)S−1 (t) ỹ(t) = y(t) − h(t, x̂(t|t − 1)) (1.3.4) x̂(t|t) = x̂(t|t − 1) + L(t)ỹ(t) P(t|t) = P(t|t − 1) − L(t)S(t)L′ (t) x̂(t + 1|t) = f (t, x̂(t|t)) P(t + 1|t) = A(t)P(t|t)A′ (t) + Q(t) Si osserva che nel filtro di Kalman esteso, oltre agli errori di processo e di misura, sono presenti errori di linearizzazione, che non possono essere quantificati e di cui non si tiene conto nel valutare la covarianza dell’errore di stima. Pertanto non vi sono garanzie sulla qualità delle stime ottenute ed il filtro di Kalman esteso risulta molto sensibile all’accuratezza delle stime iniziali. Capitolo 2 Filtro di Kalman Unscented (UKF) Il filtro EKF assume che la PDF p(x(t−1)|yt−1 ) sia Gaussiana e propaga media e covarianza della distribuzione attraverso il sistema non lineare semplicemente linearizzandolo e quindi applicando le equazioni del filtro di Kalman al sistema linearizzato per ottenere p(x(t)|yt ). Al contrario di EKF, UKF non approssima il sistema non lineare, ma approssima la distribuzione. UKF assume sempre che p(x(t − 1)|yt−1 ) sia Gaussiana tuttavia, anzichè ricorrere alla linearizzazione, per propagare la media e la covarianza della distribuzione, utilizza la trasfomazione Unscented. 2.1 Trasformazione Unscented Sia x una variabile aleatoria con media x e covarianza Px , l’obiettivo è calcolare media e covarianza della variabile aleatoria y = f (x), con f (·) arbitraria funzione non lineare (ad esempio nel filtraggio x = x̂(t − 1|t − 1) e y = x̂(t|t − 1)). Sviluppando in serie di Taylor la funzione f (·) rispetto a x, considerando per semplicità x e y scalari, si ottiene: 1 1 y = f (x) = f (x + δx) = f (x) + ∇f δx + ∇2 f δx2 + ∇3 f δx3 + · · · 2 6 (2.1.1) dove ∇i f è la derivata i-esima di f calcolata in x, δx è una variabile aleatoria gaussiana con media nulla e covarianza Px . Calcolando media e covarianza di (2.1.1) si ha: 1 1 y = f (x) + ∇2 f Px + ∇4 f E[δx4 ] + . . . 2 4! 2 1 1 2 2 ∇ f E[δx4 ] − Px2 + ∇f ∇3 f E δx4 + · · · Py = (∇f ) Px + 4 3 (2.1.2) Dalle equazioni precedenti si può notare che l’n-esimo termine dello sviluppo in serie di y è funzione dell’n-esimo momento della variabile aleatoria x moltiplicato per la derivata n-esima di f (·) calcolata in x. Pertanto se si calcolano i momenti di x fino all’ordine n si può determinare esattamente y fino allo stesso ordine dello sviluppo di Taylor. Un discorso analogo vale per Py . I metodi di linearizzazione (tipo EKF) assumono che i contributi dei termini di secondo ordine e di 9 CAPITOLO 2. FILTRO DI KALMAN UNSCENTED (UKF) 10 ordine superiore in (2.1.1) siano trascurabili; sotto questa ipotesi le equazioni (2.1.2) diventano: y = f (x) Py = ∇f 2 Px (2.1.3) Tuttavia, se i termini di ordine superiore al primo sono significativi, la trasformazione (2.1.3) può essere polarizzata e inconsistente. In questo caso si deve ricorrere ad un metodo di approssimazione migliore della linearizzazione. La trasformazione Unscented si basa sull’idea che è più facile approssimare una distribuzione di probabilità piuttosto che approssimare un’arbitraria funzione non lineare. In pratica vengono generati dei campioni (punti sigma) xi nello spazio degli stati in modo da catturare certe proprietà della distribuzione di x. Questi campioni, a cui sono associati dei pesi wi , vengono poi propagati attraverso la funzione non lineare f (·), ottenendo in tal modo dei campioni trasformati dei quali si calcolano le statistiche per ottenere y e Py . I passi della trasformazione Unscented sono quindi: 1. Generazione dei punti sigma, σ = {xi , wi : i = 0, 1, . . . , l − 1}; 2. Propagazione dei punti sigma attraverso la funzione non lineare yi = f (xi ) 3. Calcolo delle statistiche dei campioni trasformati: y = Py = l−1 X i=0 l−1 X i=0 wi y i wi (yi − y)(yi − y)′ (2.1.4) Quello che distingue la trasformazione Unscented dai metodi Monte Carlo è che il numero l dei punti sigma, la loro locazione nello spazio degli stati nonché i pesi associati sono scelti deterministicamente in modo da catturare le proprietà statistiche più importanti della variabile aleatoria x. In particolare, come mostrato in (2.1.2), se si riescono a catturare i momenti di x fino all’ordine n, allora y e Py sono accurati fino al termine n-esimo dello sviluppo di Taylor. A tale proposito, si osserva che non è facile catturare i momenti di x per distribuzioni generiche. Tuttavia, se si assume per x una distribuzione Gaussiana, è possibile determinare i punti sigma garantendo un’accuratezza fino ad almeno il secondo ordine. La distribuzione Gaussiana soddisfa le seguenti due proprietà: 1. simmetria ⇒ i punti xi devono essere simmetrici (rispetto al valor medio); CAPITOLO 2. FILTRO DI KALMAN UNSCENTED (UKF) 11 2. una variabile aleatoria x con media x e covarianza Px , può essere sempre scritta nella forma x = x + Cz dove z è una variabile aleatoria Gaussiana standard (con media nulla e covarianza unitaria) e CC′ = Px . La matrice C può essere ottenuta ad esempio tramite una decomposizione di Cholesky di Px . I punti sigma sono quindi {(xi = x + Czi , wi ) : i = 0, 1, . . . , l − 1}. L’obiettivo adesso è generare i campioni zi della variabile aleatoria z in modo da catturarne i primi due momenti, cioè imporre E [z] = l−1 X wi z i = 0 i=0 Cov (z) = l−1 X (2.1.5) wi zi z′i = I i=0 Esempio 2.1 - Nel caso bi-dimensionale sono sufficienti 5 punti sigma per catturare i primi due momenti di z, come è illustrato in figura 2.1. I punti sono collocati sugli assi e sono simmetrici Figura 2.1: Disposizione dei punti sigma rispetto all’origine. Con una scelta opportuna dei parametri w0 , w1 , s1 si riescono ad assegnare CAPITOLO 2. FILTRO DI KALMAN UNSCENTED (UKF) 12 media e covarianza di z. Per la media si osserva che, indipendentemente dalla scelta dei pesi, si ha w0 z 0 + w1 z 1 + w1 z 2 + w1 z 3 + w1 z 4 = 0 P data la simmetria dei punti rispetto all’origine.PImponendo la condizione sulla covarianza wi zi z′i = I e la condizione di normalizzazione dei pesi wi = 1, si ottengono le relazioni: 2 w1 s21 = 1 w0 + 2n w1 = 1 (2.1.6) dove n = 2 è la dimensione di x. Questo è un sistema di due equazioni in tre incognite ed è quindi indeterminato. Fissando una delle tre incognite w1 = 0.5(n + k)−1 , dove k è un parametro il cui significato sarà spiegato successivamente, la soluzione del sistema è fornita da n k w0 = 1 − m = n+k n+k √ n+k s1 = (2.1.7) (2.1.8) Il risultato ottenuto nell’esempio è generalizzabile al caso n-dimensionale. In particolare si può verificare che la trasformazione Unscented, utilizzando 2n + 1 punti di cui uno collocato sull’origine degli assi e gli altri 2n disposti simmetricamente lungo gli assi coordinati, riesce ad approssimare i momenti di una variabile aleatoria Gaussiana in forma standard sino al secondo ordine. Dalla relazione x = x + Cz si ottengono i punti sigma associati alla variabile aleatoria x: x0 = x xi = x + xi+n = x − w0 = = √ n + k Ci wi √ n + k Ci wi+n = k n+k 1 2(n + k) 1 2(n + k) (2.1.9) per i = 1, 2, . . . , n, dove Ci indica la i-esima colonna della matrice C. La scelta del parametro k è un grado di libertà della trasformazione Unscented. Scegliendo k + n = 3 si minimizza la differenza tra il quarto momento di x e quello calcolato tramite i punti sigma. La trasformazione Unscented riesce a catturare correttamente i momenti di x fino al secondo ordine, senza dover calcolare né lo Jacobiano né l’Hessiano della funzione f (·). L’approssimazione è quindi migliore di quella ottenibile tramite linearizzazione. Esempio 2.2 - Si consideri la funzione non lineare y = x2 con x ∼ N (x, σx2 ). Effettuando uno sviluppo in serie della funzione rispetto a x si ha: y = x2 = (x + δx)2 = x2 + 2 x δx + δx2 con δx ∼ N (0, σx2 ). Calcolando il valore atteso e la varianza di y si ottiene: y = E[y] = x2 + σx2 2 2 σy = E[(y − y) ] = 2 σx4 + 4 x2 σx2 CAPITOLO 2. FILTRO DI KALMAN UNSCENTED (UKF) 13 Questi sono i valori esatti della media e della varianza di y. Ricorrendo alla linearizzazione, la relazione y = x2 può essere approssimata nel modo seguente: ŷ ≈ x2 + 2 x δx da cui, calcolando media e varianza, si ha: ŷ = E[ŷ] = x2 2 2 σ̂y = E[(ŷ − ŷ) ] = 4 x2 σx2 Confrontando i valori approssimati con quelli esatti si nota che la stima ottenuta tramite linearizzazione è polarizzata (y 6= ŷ) e inconsistente (σ̂y < σy ). La trasformazione Unscented opera invece nel seguente modo: • genera 2n + 1 = 3 punti sigma x0 = x con σ = p x1 = x + σ x2 = x − σ (1 + k)σx2 ; • propaga i punti attraverso la non linearità y0 = x2 , w0 = y1 = (x + σ)2 , w1 = y2 = (x − σ)2 , w2 = k 1+k 1 2(1 + k) 1 ; 2(1 + k) • calcola media e covarianza dei punti sigma trasformati P = x2 + σx2 ŷ = Pi yi wi 2 4 2 2 2 σ̂y = i (yi − y) wi = k σx + 4 x σx In questo caso la stima non è polarizzata (y = ŷ) e, scegliendo k = 3 − n = 2, è anche consistente ed efficiente (σ̂y = σy ). 2.2 L’algoritmo UKF Il filtro UKF è la diretta applicazione della trasformazione Unscented al problema della stima ricorsiva a minimo errore quadratico medio. Nel sistema non lineare (1.0.1) le due funzioni f (·) e h(·) dipendono, oltre che dallo stato, anche dai rumori di processo e, rispettivamente, di misura; quindi, per poter applicare la trasformazione Unscented, è necessario definire lo stato esteso xa (t) = [x′ (t), w′ (t), v′ (t)]′ ∈ IRna . I passi del filtro UKF sono: CAPITOLO 2. FILTRO DI KALMAN UNSCENTED (UKF) 14 1. Inizializzazione: Dati: x0 = E[x(0)] P0 = E[(x(0) − x0 )(x(0) − x0 )′ ] xa (0) = E[xa (0)] = [x′0 , 0, 0]′ Pa (0) = si pone: P0 0 0 E[(xa (0) − xa (0))(xa (0) − xa (0))′ ] = 0 Q 0 0 0 R Ca (0) t.c. Ca (0)Ca′ (0) = Pa (0) 2. Per t = 1, 2, . . . , (a) Calcola i punti sigma: χa0 (t − 1) = xa (t − 1) p na + k Cai (t − 1) per i = 1, 2, . . . , na p χai+na (t − 1) = xa (t − 1) − na + k Cai (t − 1) per i = 1, 2, . . . , na χai (t − 1) = xa (t − 1) + (b) Predizione: χxi (t|t − 1) = f (χxi (t − 1), χw i (t − 1)) per i = 0, 1, . . . , 2na 2na X x(t|t − 1) = wi χxi (t|t − 1) P(t|t − 1) = i=0 2n a X i=0 wi [χxi (t|t − 1) − x(t|t − 1)] [χxi (t|t − 1) − x(t|t − 1)]′ yi (t|t − 1) = h(χxi (t|t − 1), χvi (t|t − 1)) per i = 0, 1, . . . , 2na 2na X y(t|t − 1) = wi yi (t|t − 1) i=0 CAPITOLO 2. FILTRO DI KALMAN UNSCENTED (UKF) 15 (c) Aggiornamento della misura: S(t) Pxy (t) = = 2na X i=0 2n a X i=0 L(t) = x(t) = P(t) = Pa (t) = wi [yi (t|t − 1) − y(t|t − 1)] [yi (t|t − 1) − y(t|t − 1)]′ wi [χxi (t|t − 1) − x(t|t − 1)] [yi (t|t − 1) − y(t|t − 1)]′ Pxy (t) S−1 (t) x(t|t − 1) + L(t) (y(t) − y(t|t − 1)) P(t|t − 1) − L(t) S(t) L′ (t) x(t) P(t) 0 0 0 Q 0 , xa (t) 0 0 0 0 R Calcola Ca (t) t.c. Ca (t)Ca′ (t) = Pa (t) dove χa = [χx′ , χw′ , χv′ ]′ , Q è la covarianza del rumore di processo, R è la covarianza del rumore di misura, na = nx + nw + nv è la dimensione dello stato esteso, ed i pesi sono dati da w0 = wi = k na + k 1 2(na + k) i = 1, 2, . . . , 2na Si osserva, infine, che nell’ipotesi di rumori di processo e misura additivi (1.1.24), le equazioni del filtro UKF si semplificano in quanto non è necessario introdurre lo stato esteso (in questo caso la covarianza del rumore di processo/misura si somma, come nel filtro di Kalman, alla covarianza di stato/misura). In questo caso l’algoritmo precedentemente esposto, oltre ad operare nello stato x di dimensione nx anziché nello stato esteso xa di dimensione na , si modifica nelle seguenti equazioni di aggiornamento di covarianze: P(t|t − 1) = S(t) = 2nx X i=0 2nx X i=0 wi [χi (t|t − 1) − x(t|t − 1)] [χi (t|t − 1) − x(t|t − 1)]′ + Q(t − 1) wi [yi (t|t − 1) − y(t|t − 1)] [yi (t|t − 1) − y(t|t − 1)]′ + R(t) Riassumendo, le principali caratteristiche del filtro UKF sono le seguenti: 1. per implementare il filtro non è necessario calcolare lo Jacobiano (o l’Hessiano) delle funzioni f (·) e h(·); 2. il numero dei punti sigma dipende linearmente dalla dimensione dello stato, quindi il carico computazionale risulta contenuto. Capitolo 3 Particle Filter Il filtro UKF usa la trasformazione Unscented per costruire, in modo deterministico, 2n + 1 campioni con i quali approssimare numericamente i momenti della PDF a-posteriori, che è assunta Gaussiana. Un approccio alternativo è quello di utilizzare metodi di integrazione numerica Monte Carlo per il calcolo di integrali multi-dimensionali e quindi dei momenti della PDF a-posteriori. Confrontando questi due metodi numerici si possono notare delle somiglianze anche se vi sono sostanziali differenze. Infatti, mentre nella trasformazione Unscented il numero e la posizione dei campioni sono scelti in modo deterministico, per catturare i primi due momenti della PDF (assunta Gaussiana), nei metodi Monte Carlo i campioni sono posizionati casualmente ed il loro numero M è un parametro di progetto. Nell’ipotesi di PDF a-posteriori Gaussiana e a parità di numero di campioni M = 2n + 1, è logico aspettarsi che la trasformazione Unscented fornisca una approssimazione migliore dei metodi Monte Carlo, in quanto i campioni sono posizionati “ad hoc”, in modo deterministico, per catturare i primi due momenti della PDF. Tuttavia, per i Metodi Monte Carlo la legge forte dei grandi numeri assicura che per M → ∞ la PDF può essere approssimata con arbitrario grado di accuratezza. L’aspetto più interessante dei metodi Monte Carlo, rispetto alla trasformazione Unscented, è la possibilità di rimuovere l’ipotesi di Gaussianità della PDF a-posteriori. Pertanto i metodi Monte Carlo sono applicabili anche a sistemi non lineari e rumori non Gaussiani. Di seguito si richiamano gli elementi esenziali dei metodi Monte Carlo e, successivamente, la loro applicazione al filtraggio ricorsivo, che dà luogo al cosiddetto Particle Filter (PF). 3.1 Integrazione Monte Carlo (MCI) La maggior parte degli integrali non possono essere calcolati analiticamente, per questo si cerca di approssimarne la soluzione utilizzando metodi numerici. Per calcolare numericamente gli integrali esistono molti metodi, fra i quali il più noto è quello della somma di Riemann. Si supponga di voler approssimare l’integrale seguente (caso scalare): I[a,b] = Z b g(x) p(x) dx a 16 (3.1.1) CAPITOLO 3. PARTICLE FILTER 17 R dove p(x) è tale che p(x) dx = 1.1 La soluzione di Riemann è quella di troncare la funzione integranda nell’intervallo [a, b], dividere tale intervallo in M sotto-intervalli [x0 , x1 ], [x1 , x2 ], [x2 , x3 ], ..., [xM −1 , xM ] e approssimare l’integrale attraverso la somma: IM = M X i=1 g(xi ) p(xi ) (xi − xi−1 ) (3.1.2) Per M → ∞ risulta che IM → I[a,b] . Questo metodo può essere esteso al caso multi-dimensionale anche se la sua efficienza peggiora, in quanto la convergenza ha ordine O(M −1/n ), dove n è la dimensione di x, per cui all’aumentare di n la convergenza è più lenta. Il metodo MCM opera in modo diverso approssimando l’integrale tramite la somma: IM M 1 X = g(x(i) ) M (3.1.3) i=1 dove x(i) : i = 1, ..., M sono dei punti campionati in modo indipendente dalla PDF p(x). Per esempio l’integrale Z Z 1 x2 2 I = x N (x; 0, σ ) dx = x √ (3.1.4) exp − 2 dx 2σ 2πσ 2 che corrisponde alla media di una distribuzione Gaussiana, è approssimato tramite IM M 1 X (i) x = M (3.1.5) i=1 dove x(i) : i = 1, ..., M sono realizzazioni della variabile aleatoria gaussiana x avente distribuzione x2 1 2 △ exp − 2 . N (x; 0, σ ) = √ 2σ 2πσ 2 In pratica utilizzando MCM, in questo caso, si è approssimata la media statistica (valore atteso) con la media campionaria. La validità dell’approssimazione è garantita dalla legge forte dei grandi numeri, la quale afferma che la media di molte variabili aleatorie indipendenti con media comune e varianza finita converge alla loro media comune: lim IM = I con probabilità 1 (3.1.6) M →∞ Inoltre, se la varianza σg2 della funzione g(x) rispetto alla PDF p(x) è finita, vale il limite: √ 1 M (IM − I) → N (0, σg2 ) (3.1.7) La funzione p(x) ha il significato di densità di probabilità. La scelta di questa particolare funzione integranda g(x) p(x) consegue dal fatto che l’obiettivo, in questo capitolo, è quello di usare i metodi di integrazione numerica per calcolare la stima MMSE; ovviamente i metodi esposti sono applicabili ad una generica funzione integranda f (x). CAPITOLO 3. PARTICLE FILTER 18 cioè il tasso di convergenza dell’errore di approssimazione è O(M −1/2 ) ed è quindi indipendente dalla dimensione n dell’integrale. L’approccio MCM è, quindi, preferibile rispetto alla somma di Riemann nel caso di integrali multi-dimensionali; si fa notare comunque che la convergenza dell’MCM dipende, oltre che da M −1/2 , anche da σg2 che influenza l’errore di approssimazione. Il punto critico del metodo MCM è il campionamento dalla distribuzione p(x), che in generale sarà multi-dimensionale e non-standard. Per superare il problema del campionamento dalla PDF p(x) vi sono vari metodi, che si differenziano a seconda delle informazioni disponibili su p(x) [5]. Nel paragrafo seguente verrà presentato il metodo di campionamento della funzione di importanza (IS= Importance Sampling). 3.2 Campionamento della funzione di importanza (IS) Si supponga di riuscire a scegliere una funzione di importanza q(x) in modo che il suo supporto contenga quello della PDF p(x), allora si può esprimere l’integrale nella forma seguente [4]: Z Z p(x) I = g(x) p(x) dx = g(x) q(x) dx (3.2.1) q(x) Applicando la (3.1.2), questo integrale può essere calcolato numericamente attraverso la somma: IM M 1 X = g(x(i) ) w∗ (x(i) ) M (3.2.2) i=1 dove i campioni x(i) sono ottenuti campionando la distribuzione q(x) e i pesi di importanza w∗ (importance weights) sono per definizione: w∗ (x(i) ) = p(x(i) ) q(x(i) ) (3.2.3) In questo modo, utilizzando una PDF q(x) facilmente campionabile, si riesce a calcolare l’integrale. Si osserva che l’ipotesi che il supporto di q(x) contenga quello di p(x) è necessaria affinchè l’intero spazio dello stato sia raggiunto dai campioni prodotti da q(x); questa è una condizione necessaria e sufficiente per la convergenza dell’approssimazione MCM al valore vero dell’integrale. Utilizzando il metodo Monte Carlo per calcolare la stima MMSE si deve risolvere l’integrale: Z +∞ x p(x|z) dx (3.2.4) x̂MMSE = −∞ In questo caso i pesi w∗ sono uguali a: w∗ (x(i) ) = p(x(i) |z) p(z|x(i) ) p(x(i) ) = q(x(i) ) p(z) q(x(i) ) dove p(z) = Z p(z|x) p(x) dx (3.2.5) CAPITOLO 3. PARTICLE FILTER 19 Il problema è che p(z) non è noto quindi non si possono calcolare i pesi w∗ (x(i) ). Comunque si osserva che l’integrale I può essere riscritto nella forma Z 1 p(z|x) p(x) I= g(x) q(x) dx (3.2.6) p(z) q(x) in quanto p(z) non dipende da x e quindi può essere portato fuori dall’integrale. Esplicitando l’espressione per p(z) si ha: Z p(z|x) p(x) q(x) dx g(x) q(x) Z (3.2.7) I= p(z|x) p(x) dx L’idea è quella di applicare MCM anche all’integrale a denominatore. Si ottiene così : Z p(z|x) p(x) g(x) q(x) dx q(x) Z I= p(z|x) p(x) q(x) dx q(x) (3.2.8) e, quindi, passando dall’integrale alla sua approssimazione MCM, si ottiene IM dove 1 PM (i) (i) M X i=1 g(x ) w(x ) M = g(x(i) ) w̄(x(i) ) = 1 PM i=1 w(x(i) ) M i=1 w(x(i) ) = e sono i pesi normalizzati. 3.3 p(z|x(i) ) p(x(i) ) q(x(i) ) w(x(i) ) w̄(x(i) ) = PM (i) i=1 w(x ) (3.2.9) (3.2.10) (3.2.11) Applicazione di MCI al filtraggio ricorsivo Sia p(xt |yt ) la PDF a-posteriori della sequenza degli stati xt = {x(0), x(1), . . . , x(t)} condizionata alla sequenza delle misure yt = {y(1), y(2), . . . , y(t)}. L’obiettivo è stimare ricorsivamente la probabilità condizionata p(xt |yt ), la distribuzione marginale del filtraggio p(x(t)|yt ) ed i relativi momenti ottenuti mediante il valore atteso Z I(g) = g(xt ) p(xt |yt ) dxt (3.3.1) CAPITOLO 3. PARTICLE FILTER 20 per opportune funzioni integrabili g(·). Nel paragrafo 3.1 è stato mostrato che, tramite il metodo IS, è possibile approssimare l’integrale precedente tramite la sommatoria: b I(g) = M X g(xti ) w(xti ) dove xti sono i campioni di xt generati rispetto alla funzione di importanza q(xt |yt ), t |yt p yt t |xt ) p(xt ) p x p(y i i i w xti = = q(xti |yt ) q (xti |yt ) e (3.3.2) i=1 w(xt ) w(xti ) = PM i t j=1 w(xj ) (3.3.3) (3.3.4) Se le seguenti ipotesi sono valide: • xti ; i = 1, . . . , M è un insieme di vettori i.i.d. (indipendenti ed identicamente distribuiti) in accordo alla PDF q(xti |yt ); • il supporto Sq = xt : q(xt |yt ) > 0 di q(xt |yt ) contiene il supporto Sp = xt : p(xt |yt ) > 0 di p(xt |yt ); • I(g) esiste finito; • varp(xt |yt ) [g(xt )] < ∞ e w(xt ) < ∞ per ogni xt ∈ Sq , b allora si dimostra [4] che, per M finito, la stima I(g) è polarizzata ma, grazie alla legge forte dei grandi numeri, è asintoticamente non polarizzata cioè b = I(g) con probabilità 1 lim I(g) M →∞ (3.3.5) L’equazione (3.3.2) può essere riscritta equivalentemente nella forma b I(g) = Z g(xt ) M X i=1 w(xti ) δ(xt − xti ) dxt (3.3.6) dove δ(·) indica la delta di Dirac. Dal confronto tra (3.3.6) e (3.3.1) risulta che p(xt |yt ) ≈ M X i=1 w(xti ) δ(xt − xti ) (3.3.7) cioè è possibile interpretare i metodi Monte Carlo come metodi di campionamento e non solo come metodi di integrazione. Quindi i metodi Monte Carlo risolvono completamente il problema della stima fornendo una approssimazione della PDF a-posteriori e dei suoi momenti tramite una distribuzione di probabilità discreta. CAPITOLO 3. PARTICLE FILTER 3.4 21 Campionamento sequenziale della funzione di importanza (SIS) Lo scopo della stima ricorsiva è quello di ottenere una stima della PDF p(xt |yt ) a partire dalla PDF p(xt−1 |yt−1 ) e sulla base della misura corrente y(t). Questo obiettivo, dal punto di vista dei metodi Monte Carlo, si traduce nell’approssimare p(xt |yt ) aggiungendo ai campioni passati t−1 xi ; i = 1, . . . , M , relativi a p(xt−1 |yt−1 ), nuovi campioni ottenuti propagando quelli passati dopo averli aggiornati sulla base della misura recente y(t). Si può notare che, scegliendo la funzione di importanza q(xt |yt ) in modo che sia fattorizzabile nella forma q(xt |yt ) = q(xt−1 |yt−1 ) q(x(t)|xt−1 , yt ), (3.4.1) si possono ottenere campioni xti ∼ q(xt |yt ) aggiungendo ai campioni esistenti xt−1 ∼ q(xt−1 |yt−1 ) i t−1 t quelli ottenuti tramite xi (t) ∼ q(x(t)|x , y ). Di seguito vengono mostrati i passaggi per rendere ricorsiva anche l’equazione di aggiornamento dei pesi. Sfruttando le relazioni sviluppate nel paragrafo 1.1, si osserva che p(xt |yt ) = p(yt |xt ) p(xt ) p(yt ) = p(y(t), yt−1 |xt ) p(xt ) p(y(t)|yt−1 ) p(yt−1 ) = p(y(t)|xt , yt−1 ) p(yt−1 |xt ) p(xt ) p(y(t)|yt−1 ) p(yt−1 ) = p(y(t)|xt , yt−1 ) p(xt |yt−1 ) p(yt−1 ) p(y(t)|yt−1 ) p(yt−1 ) = p(y(t)|xt , yt−1 ) p(xt |yt−1 ) p(y(t)|yt−1 ) = p(y(t)|xt , yt−1 ) p(x(t)|xt−1 , yt−1 ) p(xt−1 |yt−1 ) p(y(t)|yt−1 ) = p(y(t)|x(t)) p(x(t)|x(t − 1)) p(xt−1 |yt−1 ) p(y(t)|yt−1 ) (3.4.2) L’ultima uguaglianza è conseguenza delle relazioni (1.1.19) e (1.1.20). Infine, sostituendo (3.4.1) e (3.4.2) in (3.3.3) si ha: t−1 t−1 p xti |yt ) t t t = p(y(t)|xi (t)) p(xi (t)|xi (t − 1)) p(xi |y p y w(xi ) = p y t t−1 t−1 t q (xi |y ) q(xi |yt−1 ) q(xi (t)|xi , yt ) p(y(t)|yt−1 ) (3.4.3) t−1 p(y(t)|xi (t)) p(xi (t)|xi (t − 1)) = w(xi ) t q(xi (t)|xt−1 i ,y ) Le espressioni precedenti risolvono il problema della stima ricorsiva di p(xt |yt ); nel filtraggio l’obiettivo è stimare p(x(t)|yt ). In questo caso è possibile scegliere delle funzioni di importanza tali che q(x(t)|xt−1 , yt ) = q(x(t)|x(t − 1), y(t)) CAPITOLO 3. PARTICLE FILTER 22 eliminando quindi la dipendenza dalla sequenza di stati passati. L’assunzione precedente semplifica l’equazione di aggiornamento dei pesi che diventa: wi (t) = wi (t − 1) p(y(t)|xi (t)) p(xi (t)|xi (t − 1)) q(xi (t)|xi (t − 1), y(t)) (3.4.4) e la corrispondente approssimazione discreta della PDF è: t p(x(t)|y ) ≈ M X i=1 wi (t) δ(x(t) − xi (t)) (3.4.5) dove per semplicità si adotta la notazione wi (t) = w(xi (t)). Riassumendo, i passi dell’algoritmo SIS sono: 1. Inizializzazione: xi (0) ∼ q(x(0)|y(0)) e wi (0) = 1 per i = 1, . . . , M ; M 2. Per t > 1 e per i = 1, 2, . . . , M : • Campionamento xi (t) ∼ q(x(t)|xi (t − 1), y(t)); • Aggiornamento dei pesi wi (t) sulla base di (3.4.4); 3. Normalizzazione dei pesi 4. Calcolo della stima: x̂(t) = PM wi (t) wi (t) = PM j=1 wj (t) (3.4.6) wi (t) xi (t) P ′ b 5. Calcolo della covarianza: P(t) = M i=1 w i (t) (xi (t) − x̂(t)) (xi (t) − x̂(t)) i=1 Si nota che nell’algoritmo SIS vi sono due gradi di libertà; il numero dei campioni M e la scelta della funzione di importanza q(x(t)|x(t − 1), y(t)). L’unico vincolo richiesto sulla scelta della funzione di importanza è che il suo supporto contenga il supporto di p(x(t)|yt ); tuttavia, per M finito, questo non è sufficiente per ottenere una stima accurata. Esempio - Si consideri il seguente sistema dinamico non lineare (scalare) 25 x(t) x(t + 1) = 0.5 x(t) + + 8 cos(1.2 t) + w(t) = f (t, x(t)) + w(t) 1 + x2 (t) x2 (t) + v(t) = h(x(t)) + v(t) y(t) = 20 (3.4.7) con x(0) ∼ N (0, p0 ), w(t) ∼ N (0, q), v(t) ∼ N (0, r), p0 = 10, q = 10 e r = 1. I rumori sono additivi e quindi si possono applicare (1.1.22) e (1.1.23). Fissando q(x(t)|x(t − 1), y t ) = p(x(t)|x(t − 1), cioè scegliendo come funzione di importanza la probabilità di transizione, e applicando l’algoritmo SIS si ottiene: CAPITOLO 3. PARTICLE FILTER 23 1. Inizializzazione: xi (0) ∼ N (0, p0 ) e wi (0) = 1 per i = 1, 2, . . . , M ; M 2. Per t > 1 e per i = 1, 2, . . . , M : • Campionamento: ξi (t − 1) ∼ N (0, q), • Aggiornamento dei pesi: xi (t) = f (t, xi (t − 1)) + ξi (t − 1); wi (t) ∝ p(y(t)|xi (t)) wi (t − 1) ( ) [y(t) − h(xi (t)]2 = wi (t − 1) exp − 2r (3.4.8) e normalizzazione mediante (3.4.6). All’istante t, la stima MMSE di x(t) fornita dall’algoritmo è: x̂(t) = M X wi (t) xi (t) i=1 Applicando l’algoritmo al sistema (3.4.7) si è riscontrato che, al crescere del tempo t, il valore dei pesi tende a zero con l’eccezione di un solo peso cioè, tenuto conto della normalizzazione, wj (t) → 1 e wi (t) → 0 per ogni i 6= j e t → ∞. Questo fenomeno di degenerazione dei pesi causa la divergenza della stima x̂(t), in quanto asintoticamente un solo campione è utilizzato per calcolare tale stima. Intuitivamente si può capire il fenomeno della degenerazione dei pesi osservando (3.4.8); infatti, a causa della presenza dell’esponenziale negativo, i campioni con errori y(t) − h(xi (t)) grandi tendono ad avere pesi piccoli e questo, per la struttura ricorsiva dell’equazione, produce nel tempo la degenerazione. Il fenomeno della degenerazione dei pesi, che è causato dalla fattorizzazione della funzione di importanza (3.4.1), è quantificabile valutando il numero dei campioni effettivi [4], cioè i campioni i cui pesi sono significativi 1 △ Mef f = PM (3.4.9) 2 i=1 w i Si noti che Mef f ≤ M e piccoli valori di Mef f indicano una consistente degenerazione. La degenerazione degrada l’accuratezza della stima e non utilizza in modo efficiente le risorse di calcolo. Si devono, infatti, sprecare risorse di calcolo per propagare campioni con pesi nulli che, quindi, non contribuiscono alla stima. Tale fenomeno può essere contrastato in due modi: 1. scegliendo accuratamente la funzione di importanza; 2. effettuando un ricampionamento. CAPITOLO 3. PARTICLE FILTER 3.5 24 Scelta della funzione di importanza La funzione di importanza ottimale è quella che massimizza Mef f . Si dimostra [4] che tale funzione è: qopt (x(t)|x(t − 1), y(t)) = p(x(t)|x(t − 1), y(t)) p(y(t)|x(t), x(t − 1)) p(x(t)|x(t − 1)) = p(y(t)|x(t − 1)) (3.5.1) Sostituendo (3.5.1) in (3.4.4) si ottiene wi (t) = wi (t − 1) p(y(t)|xi (t − 1)) Z = wi (t − 1) p(y(t)|x(t)) p(x(t)|xi (t − 1)) dx(t) (3.5.2) La scelta ottimale della funzione di importanza comporta due difficoltà: 1. si deve riuscire a campionare p(x(t)|x(t − 1), y(t)); 2. si deve calcolare l’integrale in (3.5.2). L’uso della funzione di importanza ottimale risulta, quindi, possibile soltanto in due casi. Il primo caso è quando lo stato x(t) può assumere solo un numero finito di valori, ad esempio quando con lo stato si descrivono i tipi di manovre di un bersaglio (e.g. moto rettilineo, curva a destra, curva a sinistra etc.). In questo caso l’integrale in (3.5.2) si riduce ad una sommatoria ed è possibile campionare p(x(t)|x(t − 1), y(t)). Il secondo caso si ha nell’ipotesi di Gaussianità della PDF p(x(t)|x(t − 1), y(t)). Tale PDF è Gaussiana se il sistema (1.0.1) è della forma: x(t + 1) = f (t, x(t)) + w(t) (3.5.3) y(t) = C(t) x(t) + v(t) dove: w(t) ∼ N (0, Q(t)) , v(t) ∼ N (0, R(t)) ; (3.5.4) f (·) è una funzione nonlineare; C(t) è una matrice; i campioni delle sequenze di rumore {w(t)} e {v(t)} sono variabili aleatorie i.i.d. . Definendo Σ−1 (t) = Q−1 (t− 1) + C′ (t) R−1 (t) C(t) m(t) = Σ(t) Q−1 (t − 1) f (t − 1, x(t − 1)) + C′ (t) R−1 (t) y(t) (3.5.5) si ottiene la relazione p(x(t)|x(t − 1), y(t)) = N (x(t); m(t), Σ(t)) p(y(t)|x(t − 1)) = N (y(t); C(t)f (t − 1, x(t − 1)), R(t) + C(t) Q(t − 1) C′ (t)) (3.5.6) Quando il sistema non è nella forma (3.5.3) si può comunque ricorrere a tecniche di approssimazione per ricondursi a tale forma. Ad esempio, si può utilizzare EKF linearizzando l’equazione di uscita. Naturalmente, in questo modo si ottiene solo una approssimazione della funzione di CAPITOLO 3. PARTICLE FILTER 25 importanza ottimale. Nell’esempio precedente è stata scelta la densità a-priori p(x(t)|x(t − 1)) come funzione di importanza. Questa è un’altra possibile scelta che ha il vantaggio di rendere il campionamento semplice da implementare. Lo svantaggio è che tale PDF non tiene conto della misura y(t) nel campionamento e tende quindi a basarsi esclusivamente sull’equazione di stato trascurando l’equazione di uscita. Pertanto se la covarianza del rumore di misura è molto più piccola della covarianza del rumore di processo, tale scelta non è efficiente. Vi sono comunque altre possibili scelte della funzione di importanza [4]. 3.6 Ricampionamento e algoritmo SIR (Sequential Importance Resampling) Il secondo metodo per contrastare il fenomeno della degenerazione dei pesi è il ricampionamento. L’idea è eliminare i campioni con pesi trascurabili e moltiplicare i campioni con pesi significativi. Le tecniche di ricampionamento sono molto simili alle tecniche di riproduzione negli algoritmi genetici e si basano sul seguente principio: la probabilità di duplicazione di un campione è proporzionale al valore del peso associato al campione. L’obiettivo delle tecniche di ricampionamento è quindi quello di generare un nuovo insieme di campioni (x∗j , w∗j ) per j = 1, . . . , M a partire da (xi , wi ) per i = 1, . . . , M , in modo che P r(x∗j = xi ) = wi Il valore dei nuovi pesi è re-inizializzato a w∗j = 1/M . Il ricampionamento può essere effettuato ad ogni passo del particle filter o solo quando è necessario, cioè quando il numero efficace dei campioni Mef f scende sotto una certa soglia. Infine, si fa notare che il ricampionamento introduce due problemi: la perdita di diversità dei campioni (causata dalla duplicazione) e impedisce la parallelizzazione del particle filter, in quanto per implementare il campionamento si devono combinare i campioni. Esistono delle tecniche per ridurre la perdita di diversità, ad esempio aggiungere del rumore ai campioni duplicati in modo che non siano esattamente uguali. Applicando le tecniche di ricampionamento all’algoritmo SIS si ottiene l’algoritmo SIR (Sequential Importance Resampling): 1. Inizializzazione: xi (0) ∼ q(x(0)|y(0)) e wi (0) = 1 per i = 1, . . . , M ; M 2. Per t > 1 (a) per i = 1, . . . , M : • campionamento: xi (t) ∼ q(x(t)|xi (t − 1), y(t)) • aggiornamento dei pesi wi (t) sulla base di (3.4.4); (b) normalizzazione dei pesi wi (t) sulla base di (3.4.6); P (c) Calcolo della stima: x̂(t) = M i=1 w i (t) xi (t) P b (d) Calcolo della covarianza: P(t) = M wi (t) (xi (t) − x̂(t))(xi (t) − x̂(t))′ (e) Ricampionamento: genera (x∗i , w∗i = i=1 1 M) ricampionando (xi , wi ) per i = 1, . . . , M Bibliografia [1] Y. Bar-Shalom, X. Rong Li, T. Kirubarajan, Estimation with applications to tracking and navigation, John Wiley & Sons, 2001. [2] S.M. Kay, Fundamentals of statistical signal processing estimation theory, Prentice Hall, 1993. [3] H. Jazwinski, Stochastic processes and filtering theory, Academic Press, New York, 1974. [4] A. Doucet, “On Sequential Simulation-Based Methods for Bayesian Filtering”, Available as Technical Report CUED/F-INFENG/TR. 310, Cambridge University Department of Engineerin, http://citeseer.ist.psu.edu/doucet00sequential.html, 1998. [5] S. Arulampalam, S. Maskell, N. Gordon, T. Clapp, “A Tutorial on Particle Filters for Online Non-linear/Non-Gaussian Bayesian Tracking”, IEEE Trans. on Signal Processing, vol. 50, pp. 174-188, 2002. [6] B. Ristic, S. Arulampalam, and N. Gordon, Beyond the Kalman filter: particle filters for tracking applications, Artech House, 2004. [7] S. M. Herman, A particle filtering approach to joint passive radar tracking. PhD thesis, University of Illinois, 2002 [8] S. Challa, S. Arulampalam and N. Bergman, “Target Tracking Incorporating Flight Envelope Information”, Proc. 3rd International Conference on Information Fusion, CD-ROM, ThC24, Paris, France, 2000. 26
Documenti analoghi
Lezione 23 — 07 Dicembre 23.1 Unscented Kalman filter
Si continua ora con l’unscented Kalman filter (UKF) visto nella lezione precedente. In
particolare, il filtro UKF si basa su un metodo per l’approssimazione di densità di probabilità
ottenute tra...