Wyjaśnienie filtrów Kalmana w modelach przestrzeni stanów

10

Jakie są kroki związane z użyciem filtrów Kalmana w modelach przestrzeni stanów?

Widziałem kilka różnych sformułowań, ale nie jestem pewien szczegółów. Na przykład Cowpertwait zaczyna się od następującego zestawu równań:

yt=fatθt+vt
θt=soltθt-1+wt

gdzie i , \ theta_ {t} to nasze nieznane szacunki, a y_ {t} to obserwowane wartości.θ0N.(m0,do0),vtN.(0,V.t)wtN.(0,W.t)θtyt

Cowpertwait definiuje zaangażowane rozkłady (odpowiednio: wcześniejsze, prawdopodobieństwo i tylne):

y t | θ tN ( F

θt|ret-1N.(zat,Rt)
θt| DtN(mt,Ct)
yt|θtN.(fatθt,V.t)
θt|retN.(mt,dot)

z

at=Gtmt1,Rt=GtCt1Gt+Wtet=ytft,mt=at+Atetft=Ftat,Qt=FtRtFt+VtAt=RtFtQt1,Ct=RtAtQtAt

Nawiasem mówiąc, oznacza rozkład biorąc pod uwagę zaobserwowane wartości do . Prostsza notacja to ale będę trzymać się notacji Cowpertwait. θ t y t - 1 θ t | t - 1θt|Dt1θtyt1θt|t1

Autor opisuje również prognozę dla w kategoriach oczekiwań:yt+1|Dt

E[yt+1|Dt]=E[Ft+1θt+1+vt+1|Dt]=Ft+1E[θt+1|Dt]=Ft+1at+1=ft+1

O ile rozumiem, są to następujące kroki, ale proszę dać mi znać, jeśli wystąpi błąd lub niedokładność:

  1. Zaczynamy od , , czyli domyślamy się wartości dla naszych szacunków . C 0 θ 0m0C0θ0
  2. Przewidujemy wartość dla . Powinno to być równe czyli . jest znany od . f 1 F.y1|D0f1a1a1=G1m0F1a1a1a1=G1m0
  3. Gdy mamy nasze prognozy dla , obliczamy błąd . e 1 = y 1 - f 1y1|D0e1=y1f1
  4. Błąd służy do obliczenia rozkładu tylnego który wymaga i . podano jako ważoną sumę wcześniejszej średniej i błędu: .e1θ1|D1m1C1m1a1+A1e1
  5. W następnej iteracji zaczniemy od przewidywania jak w kroku 1. W tym przypadku . Ponieważ i jest oczekiwaniem , które obliczyliśmy już w poprzednim kroku, możemy przystąpić do obliczenia błędu i średnia rozkładu tylnego jak poprzednio.y2|D1f2=F2)a2)za2)=sol2)m1m1θ1|re1mi2)θ2)|re2)

Myślę, że obliczenie rozkładu tylnego jest tym, co niektórzy nazywają krokiem aktualizacji, a użycie oczekiwania jest krokiem przewidywania.θt|retyt+1|ret

Ze względu na zwięzłość pominąłem kroki, aby obliczyć macierze kowariancji.

Czy coś przegapiłem? Czy znasz lepszy sposób na wyjaśnienie tego? Myślę, że nadal jest to nieco niechlujne, więc może jest bardziej przejrzyste podejście.

Robert Smith
źródło

Odpowiedzi:

3

Myślę, że to, co mówisz, jest poprawne i nie sądzę, że jest bałagan. Można by powiedzieć, że filtr Kalmana jest algorytmem korekcji błędów, który modyfikuje przewidywania w świetle rozbieżności z bieżącymi obserwacjami. Ta korekta jest wykonywana w kroku 4) przy użyciu macierzy wzmocnienia .ZAt

F. Tusell
źródło
Dziękuję za Twoją odpowiedź. Może to prawda, ale chciałbym przeczytać bardziej szczegółowe (i naturalne) wyjaśnienie tego. Przeczytałem opisy w książkach i slajdach, ale większość z nich nie jest bardzo jasna i istnieją niewielkie różnice.
Robert Smith