Molto spesso l'ottimizzazione delle matrici di rumore del filtro Kalman viene eseguita in base a tentativi, errori o conoscenza del dominio. Ci sono modi più di principio per ottimizzare tutti i parametri del filtro Kalman?
Molto spesso l'ottimizzazione delle matrici di rumore del filtro Kalman viene eseguita in base a tentativi, errori o conoscenza del dominio. Ci sono modi più di principio per ottimizzare tutti i parametri del filtro Kalman?
Risposte:
È possibile ottenere dati sperimentali ed eseguire alcune analisi statistiche per determinare il rumore di processo (rumore tra le fasi temporali) e il rumore del sensore (rispetto a una verità di base).
Per ottenere la verità fondamentale sul rumore del sensore, è necessario un sensore più accurato oppure testare sperimentalmente mantenendo lo stato di interesse a un valore noto (solitamente fisso).
Se non si dispone di dati sperimentali, è possibile utilizzare i fogli dati o le specifiche di ciascun sensore per determinarne il rumore. Il rumore di processo sarebbe più difficile in questo caso, ma potresti essere in grado di indovinare il suo valore assumendo una certa quantità di rumore a causa, ad esempio, di un attuatore, se l'attuatore è la fonte primaria di rumore di processo.
Un altro modo è quello di considerare il tempo di assestamento massimo consentito per la stima. Ciò determinerà il rapporto tra rumore di processo e rumore del sensore. Ciò consente di ottenere il massimo effetto di filtraggio soddisfacendo al contempo i requisiti del tempo di assestamento.
Si noti che ciò non fornisce un buon modo per ottimizzare il rapporto tra sensori diversi o tra stati diversi, quindi non è perfetto.
Fondamentalmente, se si dispone di dati sperimentali, è possibile ottenere prestazioni ottimali. Altrimenti, puoi calcolare il rumore di processo solo assumendo il rumore probabile del contributore dominante al rumore di processo o determinando quale prestazione minima è richiesta (che non è ottimale, ma almeno ottiene ciò che è necessario).
Nel campo dell'apprendimento automatico, osserviamo un filtro Kalman come un algoritmo di inferenza su un modello variabile latente. Le misure sono visibili, ma lo stato reale è nascosto. Ora vuoi dedurre i veri stati.
Come al solito, questo metodo si basa su un insieme di parametri e - in linea di principio - il modo per ottenere la migliore stima puntuale per i parametri è quello di esaminare la probabilità dei dati (dati i parametri) e ottimizzare i parametri per ottenere il valore massimo. Questo ti dà la stima della massima verosimiglianza.
Sfortunatamente, nel caso del filtro Kalman, questo approccio non è così facile e intrattabile da fare in forma chiusa. Questo perché non osserviamo gli stati nascosti. Pertanto, si devono applicare alcuni trucchi. Uno di questi consiste nell'utilizzare l'algoritmo Expecation Maximization (EM), che è un approccio iterativo: nel primo passaggio, si calcola il valore più probabile per gli stati nascosti (il valore atteso) in base ai parametri correnti. Nel secondo passaggio, si mantengono fissi gli stati nascosti e si ottimizzano i parametri per ottenere la soluzione con la massima probabilità. Questi passaggi vengono ripetuti fino alla convergenza.
Puoi leggere il concetto generale di EM in un mucchio di libri di testo sull'apprendimento automatico (solo un esempio: "Bayesian Reasoning and Machine Learning" di David Barber). Il processo di inferire i parametri per i sistemi dinamici lineari (che ti dà il tipo di filtro del modello di Kalman) è ben descritto in un rapporto tecnico di Zoubin Ghahramani e Geoffrey Hinton .
Potresti voler leggere "Uno strumento per la regolazione del filtro Kalman" di Bernt M. Åkesson, et. al. Descrive il metodo dei minimi quadrati di autocovarianza (ALS).