Filtru multiparticule [1] ( MPF , filtru de particule în engleză - "filtru de particule", "filtru de particule", "filtru corpuscular") - o metodă Monte Carlo secvențială - un algoritm recursiv pentru rezolvarea numerică a problemelor de estimare ( filtrare , netezire ), în special pentru cazurile neliniare și non- gaussiene . De la descrierea din 1993 [2] de către N. Gordon, D. Salmond și A. Smith, a fost folosită în diverse domenii - navigație, robotică , viziune computerizată .
În comparație cu metodele utilizate în mod obișnuit pentru astfel de probleme - filtrele Kalman extinse (EKF) - filtrele cu particule multiple nu depind de metodele de liniarizare sau de aproximare . EKF convențional nu se descurcă bine cu modelele în esență neliniare, precum și în cazul zgomotului de sistem și măsurătorilor care sunt foarte diferite de Gaussian, prin urmare, au fost dezvoltate diverse modificări, cum ar fi UKF ( English unscented KF ), QKF ( English Quadrature KF ), etc ][3 Trebuie remarcat faptul că, la rândul lor, filtrele multiparticule sunt mai solicitante în ceea ce privește resursele de calcul.
Termenul „filtru de particule” a fost inventat de Del Moral în 1996 [4] și „Monte Carlo secvenţial” de Liu și Chen în 1998.
Multe filtre multiparticule utilizate în practică sunt derivate prin aplicarea unei metode Monte Carlo secvenţiale la o secvenţă de distribuţii ţintă [5] .
FFM este conceput pentru a estima secvența variabilelor latente pe baza observațiilor de la . Pentru simplitatea prezentării, vom presupune că luăm în considerare un sistem dinamic și și sunt vectori de stare reală și respectiv de măsură [1] .
Ecuația stocastică a stării sistemului are forma:
,unde funcția de modificare a stării sistemului este o variabilă aleatorie , efectul perturbator.
Ecuația de măsurare:
,unde este funcția de măsurare, este o variabilă aleatorie, zgomotul de măsurare.
Funcțiile și sunt în general neliniare , iar caracteristicile statistice ale zgomotului sistemului ( ) și măsurătorilor ( ) se presupune că sunt cunoscute.
Sarcina de filtrare este de a obține o estimare bazată pe rezultatele măsurătorilor cunoscute la momentul respectiv .
Luați în considerare un proces Markov discret cu următoarele distribuții de probabilitate:
și ,
|
(unu) |
unde este densitatea de probabilitate , este densitatea de probabilitate condiționată ( densitatea de probabilitate de tranziție ) în tranziția de la la .
Aici notația înseamnă că condiția este distribuită ca .
Realizările procesului (variabile ascunse ) sunt observate printr-un alt proces aleator - procesul de măsurare - cu densități marginale :
, | (2) |
unde este densitatea de probabilitate condiționată ( densitatea măsurătorilor ), măsurătorile sunt considerate independente statistic .
Modelul poate fi ilustrat prin următoarea diagramă de tranziție:
Pentru simplitate, presupunem că densitatea de tranziție și densitatea de măsurare nu depind de . Se presupune că parametrii modelului sunt dați.
Sistemul și modelul de măsurare astfel definite sunt cunoscute sub denumirea de Hidden Markov Model [6] .
Ecuația (1) definește distribuția anterioară a procesului :
(3) |
În mod similar (2) definește funcția de probabilitate :
, | (patru) |
Aici și mai jos, notația pentru denotă .
Astfel, inferența bayesiană pentru implementări cunoscute de măsurători , notate respectiv cu și , se va baza pe distribuția posterioară
, | (5) |
unde (aici este măsura dominantă):
.Vezi și Eșantionarea importanței .
Metoda Monte Carlo vă permite să evaluați proprietățile distribuțiilor de probabilitate destul de complexe, de exemplu, calculând mediile și varianța sub forma unei integrale [3] :
,unde este funcția de estimare. De exemplu, pentru medie, puteți pune: .
Dacă o soluție analitică este imposibilă, problema poate fi rezolvată numeric prin generarea de eșantioane aleatorii cu o densitate , notați-le ca , și obținerea mediei aritmetice asupra punctelor eșantionului [3] :
Într-un caz mai general, când eșantionarea de la este dificilă, se aplică o altă distribuție (așa-numita distribuție instrumentală sau de importanță engleză ), iar pentru a menține estimarea nepărtinitoare, se introduc coeficienți de ponderare pe baza raportului [3] :
și apoi calculează media ponderată:
,Deși distribuția auxiliară este utilizată în principal pentru a simplifica eșantionarea din distribuția principală , procedura de „sampling and resampling by signification” ( în engleză sampling importance resampling, SIR ) este adesea folosită. Această procedură constă în două etape: eșantionarea efectivă după semnificație cu calculul greutăților și eșantionarea suplimentară a punctelor care iau în considerare aceste greutăți [3] .
Reeșantionarea este necesară în special pentru filtrele seriale [3] .
Metodele de filtrare a particulelor multiple și de netezire sunt cele mai cunoscute exemple de algoritmi Monte Carlo ( SMC ) secvenţiali . În măsura în care literatura de multe ori nu face distincție între ele. Cu toate acestea, SMC include o clasă mai largă de algoritmi aplicabili pentru a descrie metode aproximative mai complexe de filtrare și netezire [7] .
Metodele Monte Carlo secvenţiale sunt o clasă de metode Monte Carlo care eşantionează secvenţial dintr-o secvenţă de densităţi de probabilitate ţintă de dimensiune crescătoare, unde fiecare este definită pe o putere carteziană [5] .
Dacă scriem densitatea ca: [5]
, Unde este cunoscut punctual și este o constantă normalizantă, posibil necunoscută, atunciAlgoritmul SMC va găsi aproximări și estimări pentru .
De exemplu, pentru cazul filtrării, se poate pune (vezi (5) ):
și ,din care vom avea:
.
Omițând rezultatul, schema predictor-corector poate fi reprezentată după cum urmează [3] :
Multiplicatorul este o constantă de normalizare care nu este necesară pentru algoritmul SMC normal.
Un algoritm tipic de filtru multiparticule poate fi reprezentat după cum urmează [3] :
algoritmul MCF -- inițializare pentru i = 1...N: mostra din -- greutăți inițiale kts pentru n = 1...T: dacă RESELECTARE atunci -- selectați indici de N particule în funcție de greutăți = SelectByWeight( ) pentru i = 1...N: in caz contrar pentru i = 1...N: pentru i = 1...N: -- etapa de propagare a particulelor -- actualizare la scară kts -- normalizarea greutăților pentru i = 1...N: kts