15.4. Kalman-szűrők

Képzeljünk el egy kismadarat, amint a dzsungel sűrűjében repül szürkületkor: a mozgásának csupán rövid, szakaszos felvillanásait pillanthatjuk meg; minden igyekezetünkkel azt próbáljuk megjósolni, hogy hol van most a madár, és legközelebb hol fog felbukkanni, hogy nehogy szem elől tévesszük. Vagy képzeljük azt, hogy a második világháborúban radarkezelők vagyunk, egy gyenge, mozgó radarjelet kémlelve, ami 10 másodpercenként jelenik meg a képernyőn. Vagy, kissé még távolabbra visszalépve, képzeljük magunkat Kepler helyébe, ahogy a bolygók mozgását próbálja rekonstruálni igen pontatlan szögmérések sokaságából, amit rendszertelen és pontatlanul mért intervallumokban rögzítettek. Mindegyik esetben egy fizikai rendszer állapotát próbáljuk megbecsülni (helyet és sebességet például) időben egymást követő zajos megfigyelésekből. A problémát megfogalmazhatjuk egy időbeli valószínűségi modellben való következtetésként, ahol az állapotátmenet-modell a mozgás fizikáját írja le, az érzékelő modell pedig a mérési folyamatot. Ez a fejezet azokat a speciális reprezentációkat és következtetési algoritmusokat vizsgálja, amelyeket ilyen típusú problémákra fejlesztettek ki; a tárgyalt eljárást Kalman-szűrésnek (Kalman filtering) nevezik, a kidolgozója Rudolf E. Kalman[159] után.

Világos, hogy több folytonos változóra lesz szükségünk a rendszer állapotának megadásához. Például a madár repülése megadható egy (X, Y, Z) pozícióval és egy (X, Y, Z) sebességgel minden egyes időpillanatban. Szükségünk lesz még alkalmas feltételes sűrűségfüggvényekre az állapotátmenet- és érzékelő modellekhez; a 14. fejezethez hasonlóan, lineáris Gauss-eloszlásokat (linear Gaussian) fogunk használni. Ez azt jelenti, hogy a következő Xt+1 állapot a jelenlegi Xt állapot lineáris függvénye, amihez még egy Gauss-zaj adódik, amely feltétel a gyakorlatban igen elfogadhatónak bizonyul. Tekintsük például a madár X koordinátáját, pillanatnyilag figyelmen kívül hagyva a többi koordinátát. Legyen a megfigyelések közötti intervallum Δ, és tételezzünk fel állandó sebességet; ekkor a pozíció frissítésére az adódik, hogy

Ha Gauss-zajt adunk hozzá, akkor egy lineáris Gauss-féle állapotátmenet-modellt kapunk:

Az Xt pozíció és sebességvektorok alkotta rendszerhez tartozó Bayes-hálóstruktúra a 15.7. ábrán látható. Vegyük észre, hogy ez a lineáris Gauss-modellnek egy nagyon speciális alakja; az általános alakot a fejezetben később írjuk le, ami alkalmazások nagyon széles körét fedi le az első bekezdés egyszerű mozgásos példáin túl. Az olvasónak hasznos lehet az A) függelékben átnézni a Gauss-eloszlások egyes matematikai tulajdonságait; a jelenlegi céljainkhoz a legfontosabb, hogy egy többváltozós Gauss-eloszlást (multivariate Gaussian) d változó esetén egy d elemű μ átlag és egy d × d-s Σ kovarianciamátrix ad meg.

15.7. ábra - Egy Xt hely, Egy Xt hely, sebesség és Zt helymegfigyelés alkotta lineáris dinamikus rendszerhez tartozó Bayes-hálóstruktúrasebesség és Zt helymegfigyelés alkotta lineáris dinamikus rendszerhez tartozó Bayes-hálóstruktúra
Egy Xt hely, sebesség és Zt helymegfigyelés alkotta lineáris dinamikus rendszerhez tartozó Bayes-hálóstruktúra

15.4.1. Gauss-eloszlások frissítése

A 14. fejezetben hivatkoztunk a lineáris Gauss-eloszlások családjának egy alaptulajdonságára: az eloszláscsalád zárt a standard Bayes-hálóbeli műveletekre. Most ezt az állítást pontosítjuk az időbeli valószínűségi modellben végzett szűrés esetére. A megkövetelt tulajdonságok megfelelnek a szűrés (15.3) egyenletben megadott kétlépéses számításának:

  1. Ha a jelenlegi P(Xt|e1:t) eloszlás Gauss-eloszlás és a P(Xt+1|xt) állapotátmenet-modell lineáris Gauss-modell, akkor az egylépéses előrejelzés eloszlása

szintén Gauss-eloszlás.

  1. Ha az előrejelzés P(Xt+1|e1:t) eloszlása Gauss-eloszlás és a P(et+1|Xt+1) érzékelő modell lineáris Gauss-modell, akkor az új bizonyítékkal, mint feltétellel, a frissített eloszlás

P(Xt+1|e1:t+1) = αP(et+1|Xt+1)P(Xt+1|e1:t) (15.16)

szintén Gauss-eloszlás.

Így a Kalman-szűrés ELŐRE művelete fogad egy t átlaggal és t kovarianciamátrixszal meghatározott f1:t Gauss előre üzenetet, és előállít egy új többváltozós f1:t+1 Gauss előre üzenetet μt+1 átlaggal és Σt+1 kovarianciamátrixszal. Így, ha egy f1:0= P(X0) = N(μ0, Σ0)Gauss-eloszlással indulunk, egy lineáris Gauss-modellel való szűrés az állapotokon Gauss-eloszlást eredményez minden időpontban.

Fontos

Ez tetszetős és elegáns eredménynek tűnik, de miért is olyan fontos? Ennek a magyarázata az, hogy a most tárgyalt esethez hasonló néhány speciális esetet kivéve, a szűrés folytonos vagy hibrid (diszkrét és folytonos) hálókkal olyan állapoteloszlásokat generál, amelyek reprezentációja az idővel korlátlanul nő. Ezt az állítást általában nem könnyű bizonyítani, de a 15.5. feladat egy egyszerű példán mutatja be, hogy mi történik.

15.4.2. Egy egyszerű egydimenziós példa

Azt állítottuk, hogy a Kalman-szűrés ELŐRE művelete egy Gauss-eloszlást egy új Gauss-eloszlásba visz át. Ez új átlag- és kovarianciamátrix kiszámítását jelenti az előző átlagból és kovarianciamátrixból. Az általános (többváltozós) eset frissítési szabályának származtatása igen sok lineáris algebrai lépést igényel, így egyelőre a nagyon egyszerű egyváltozós esetnél maradunk, és később adjuk meg az eredményeket az általános esetre. A számítások még az egyváltozós esetre is unalmasak kissé, de úgy érezzük, hogy érdemes látni őket, mivel a Kalman-szűrő hasznossága olyan szorosan kötődik a Gauss-eloszlások matematikai tulajdonságaihoz.

A tárgyalt időbeli modell egyetlen folytonos Xt állapotváltozós véletlen bolyongást (random walk) ír le egy zajos Zt megfigyeléssel. Egy példa lehet erre a „vásárlói bizalom” mutatója, amit modellezhetünk úgy, mint ami havonként egy véletlen Gauss-eloszlású változáson megy át, és amelyet egy véletlen vásárlói kérdőív mér fel, ami szintén Gauss-mintavételi zajt okoz. Az a priori eloszlást gaussinak tételezzük fel szórásnégyzettel:

(Az egyszerűség kedvéért ebben a fejezetben ugyanazt az α szimbólumot fogjuk használni minden normalizációs állandó jelölésére.) Az állapotátmenet-modell egyszerűen a jelenlegi állapot egy Gauss-eloszlású módosítását jelenti állandó szórásnégyzettel:

Az érzékelő modell egy Gauss-eloszlású zajt tételez fel szórásnégyzettel:

Most, az a priori P(X0) eloszlás ismeretében kiszámíthatjuk az egylépéses előrejelzés eloszlását felhasználva a (15.15) egyenletet:

Az integrál igen bonyolultnak néz ki. A továbbhaladás lehetőségét annak észrevétele jelenti, hogy a kitevő két olyan kifejezés összege, amelyek négyzetesek x0-ban, és így az maga is négyzetes x0-ban. Egy egyszerű trükk, amit teljes négyzetté kiegészítésként (completing the square) ismerünk, lehetővé teszi bármely átírását egy négyzetes tag és egy x0-tól független maradék tag összegévé. A maradék tag az integrálból kivihető, így azt kapjuk, hogy

Most az integrál pontosan egy Gauss-eloszlás teljes tartomány feletti integrálja, ami egyszerűen 1-et ad. Így csupán a maradék tag maradt a négyzetesből.

A második kulcslépés annak észrevétele, hogy a maradék tagnak x1-ben négyzetesnek kell lennie; valóban, egyszerűsítés után azt kapjuk, hogy

15.8. ábra - A Kalman-szűrés frissítési ciklusának a lépései egy véletlen bolyongás esetén. A véletlen bolyongás a priori eloszlása μ0 = 0,0 és σ 0 = 1,0, az átmenet bizonytalansága σ x = 2,0, az érzékelő bizonytalansága σ z = 1,0, az első megfigyelés pedig z1 = 2,5 (az x tengelyen csillaggal jelölve).Vegyük észre, ahogy a P(x1) előrejelzés ellapul a P(x0)-hoz képest az átmenet bizonytalansága miatt. Vegyük azt is észre, hogy az a posteriori P(x1|z1) kissé balra helyezkedik el a z1 megfigyeléstől, mivel az átlag az előrejelzés és a megfigyelés súlyozott átlaga.
A Kalman-szűrés frissítési ciklusának a lépései egy véletlen bolyongás esetén. A véletlen bolyongás a priori eloszlása μ0 = 0,0 és σ 0 = 1,0, az átmenet bizonytalansága σ x = 2,0, az érzékelő bizonytalansága σ z = 1,0, az első megfigyelés pedig z1 = 2,5 (az x tengelyen csillaggal jelölve).Vegyük észre, ahogy a P(x1) előrejelzés ellapul a P(x0)-hoz képest az átmenet bizonytalansága miatt. Vegyük azt is észre, hogy az a posteriori P(x1|z1) kissé balra helyezkedik el a z1 megfigyeléstől, mivel az átlag az előrejelzés és a megfigyelés súlyozott átlaga.

Azaz az egylépéses előrejelzés eloszlása Gauss-eloszlás, ugyanazzal a μ0 átlaggal, a szórásnégyzet pedig egyenlő az eredeti szórásnégyzetnek és az átmenet szórásnégyzetének az összegével. Egy pillanatnyi belegondolás után ez szemléletesen is elfogadhatónak tűnik.

A frissítés lépésének befejezéséhez még szükséges, hogy az első időpontbeli megfigyelést, x1-t feltételként vegyük számításba. A (15.16) egyenletből erre az adódik, hogy

Most ismét kombináljuk a kitevőket, és négyzetté egészítsük ki (15.6 feladat), azt kapva, hogy

így egy frissítési ciklus után egy új Gauss-eloszlásunk van az állapotváltozóra.

A (15.17) egyenletben a Gauss-alakból láthatjuk, hogy az új átlag és szórás kiszámítható a régi átlagból és szórásból a következőképpen:

A 15.8. ábrán látható egy frissítési ciklus az állapotátmenet- és az érzékelő modell konkrét értékei esetén.

Az előző egyenletpár pontosan ugyanazt a szerepet játssza, mint az általános szűrés egyenlete (15.3) vagy az RMM-szűrés egyenlete (15.10). A Gauss-eloszlások speciális tulajdonsága miatt azonban az egyenleteknek van néhány további érdekes tulajdonsága. Először is, hogy az új μt+1 átlag kiszámítása értelmezhető úgy, mint egyszerűen az új zt+1 megfigyelés és a régi μt átlag súlyozott átlaga. Ha a megfigyelés megbízhatatlan, akkor nagy, és több figyelmet szentelünk a régi átlagnak; ha a régi átlag megbízhatatlan (t2 nagy), vagy a folyamat nehezen megjósolható ( nagy), akkor több figyelmet szentelünk a megfigyelésnek. Másodszor, vegyük észre, hogy a szórásnégyzet frissítése független a megfigyeléstől. Ezért előre kiszámíthatjuk, hogy mi lesz a szórásnégyzetértékek sorozata. Harmadszor, a szórásnégyzetértékek sorozata gyorsan konvergál egy adott értékhez, ami csak -től és -től függ, ezáltal lényegesen egyszerűsítve az elkövetkező számításokat (lásd 15.7. feladat).

15.4.3. Az általános eset

Az előző levezetés szemléletesen bemutatta a Gauss-eloszlásoknak azt az alaptulajdonságát, ami a Kalman-szűrés működését lehetővé teszi: azt a tényt, hogy az exponens négyzetes alakú. Ez nem csak az egyváltozós esetre igaz; a teljes többváltozós Gauss-eloszlás alakja:

A kitevőben lévő tényezők összeszorzása láthatóvá teszi, hogy a kitevő is négyzetes függvénye az x-ben lévő xi valószínűségi változóknak. Ahogy az egyváltozós esetben, a szűrési frissítés megőrzi az állapoteloszlás gaussi voltát.

Elsőként definiáljuk a Kalman-szűrésnél használt általános időbeli modellt. Mind az állapotátmenet-modell, mind az érzékelő modell lineáris transzformációt enged meg additív Gauss-zajjal. Így azt kapjuk, hogy

P(xt+1|xt) = N(Fxt, Σx)(xt+1)

P(zt|xt) = N(Hxt, Σz)(zt) (15.19)

ahol az F és a Σx mátrixok a lineáris állapotátmenet-modellt és az átmeneti zaj kovarianciáját írják le, a H és a Σz pedig az érzékelő modell megfelelő mátrixai. Ekkor az átlag és a kovariancia frissítésének az egyenletei a maguk rémisztő valóságában:

μt+1 = Fμt + Kt+1(zt+1HFμt)

Σt+1 = (IKt+1)(tF + Σx) (15.20)

ahol a Kt+1 = (tF + Σx)H(H(tF+ Σx)H+ Σz)-1 mennyiség neve a Kalman-erősítésmátrix (Kalman gain matrix). Akár hihető, akár nem, ezeknek az egyenleteknek lehetséges egy szemléletes értelmezése. Például, gondoljuk meg a μ állapotátlag-becslés frissítését. Az Fμt tag a t+1 időpontban előre jelzett állapot, így HFμt az előre jelzett megfigyelés. Ezért a zt+1HFμt tag az előre jelzett megfigyelés hibáját reprezentálja. Ez van megszorozva a Kt+1 tényezővel az előre jelzett állapot korrigálásához; így a Kt+1 annak mértéke, hogy mennyire kell figyelembe venni az új megfigyelést az előrejelzéshez képest. Ahogyan a (15.18) egyenletben, az a tulajdonság most is fennáll, hogy a szórásnégyzet frissítése független a megfigyeléstől. A Σt és a Kt értékek sorozata ezért előre (offline) is kiszámolható, és a követés közben szükséges konkrét számítások igen mérsékeltek.

Hogy bemutassuk az egyenletek működését egy XY síkon mozgó tárgy követésének a problémájára alkalmaztuk őket. Az állapotváltozók az , így az F, Σx, H és Σ z 4 × 4-es mátrixok. A 15.9. (a) ábrán látható az igazi pályagörbe, a zajos megfigyelések sorozata és a Kalman-szűréssel becsült pályagörbe végig a kovarianciával, amit az egységnyi szórás méretű körvonalak jeleznek. A szűrési folyamat jól teljesít az aktuális mozgás követésében, és ahogy várható, a szórásnégyzet gyorsan beáll egy rögzített értékre.

Ahogyan szűrésre, úgy simításra is származtathatók egyenletek lineáris Gauss-modell esetén. A simítás eredményei a 15.9. (b) ábrán láthatók. Vegyük észre, hogy a helyzetbecslés szórásnégyzete gyorsan lecsökken, a pályagörbe végét leszámítva (itt miért nem?), és hogy a simítással becsült pályagörbe sokkal egyenletesebb.

15.9. ábra - (a) A Kalman-szűrés eredménye egy X–Y síkon mozgó objektumnál, feltüntetve a valódi (balról jobbra haladó) pályagörbét, a zajos megfigyelések egy sorozatát és a Kalman-szűrés alapján becsült pályagörbét. A helybecslések szórásait az oválisok jelzik. (b) A Kalman-simítás eredménye ugyanarra a megfigyelési sorozatra.
(a) A Kalman-szűrés eredménye egy X–Y síkon mozgó objektumnál, feltüntetve a valódi (balról jobbra haladó) pályagörbét, a zajos megfigyelések egy sorozatát és a Kalman-szűrés alapján becsült pályagörbét. A helybecslések szórásait az oválisok jelzik. (b) A Kalman-simítás eredménye ugyanarra a megfigyelési sorozatra.

15.4.4. A Kalman-szűrés alkalmazhatósága

A Kalman-szűrést és kiterjesztéseit alkalmazások széles körében használják. A „klaszszikus” alkalmazás légi járművek és rakéták radar követése. Kapcsolódó alkalmazások között van a tengeralattjárók és földi járművek akusztikai követése, és járművek és emberek képi követése. Egy kissé elvontabb szemlélettel a Kalman-szűrőket részecskék buborékkamrás pályagörbéjének rekonstrukciójára, valamint óceáni áramlások felszíni műholdképek alapján történő rekonstrukciójára használják. Az alkalmazások köre sokkal szélesebb, mint csupán mozgások követése: bármely rendszerre alkalmazható, ami folytonos állapotváltozókkal és zajos megfigyelésekkel jellemezhető. Ilyen rendszerek magukban foglalnak zúzdákat, vegyi üzemeket, nukleáris reaktorokat, növényi ökoszisztémákat és nemzetgazdaságokat.

A Kalman-szűrés alkalmazhatóságának ténye egy rendszerre nem jelenti, hogy az eredmények érvényesek vagy hasznosak lesznek. A feltevések – lineáris Gauss-féle állapotátmenet-modell és érzékelő modell – igen erősek. A kiterjesztett Kalman-szűrő (KKSZ) (extended Kalman filter, EKF) megpróbál úrrá lenni a modellezett rendszer nemlineáris tulajdonságain. Egy rendszer nemlineáris, ha az állapotátmenet-modell nem írható le, mint az állapotvektor mátrixszorzata, ahogyan ez a (15.19) egyenletben szerepel. A KKSZ úgy működik, hogy rendszert xt-ben lokálisan lineárisként modellezi az xt= μt környezetében, ahol μt a jelenlegi állapoteloszlás átlaga. Ez jól működik „sima”, „jó magaviseletű” rendszereknél, és lehetővé teszi a követőnek, hogy egy olyan Gauss-állapoteloszlást tartson nyilván és frissítsen, ami elfogadható közelítése az igazi a posteriori eloszlásnak.

Azonban mit is jelent, hogy egy rendszer „nem sima” vagy „rossz magaviseletű”? Technikailag ez azt jelenti, hogy jelentős nemlinearitás van jelen a rendszer viselkedésében abban a régióban, ami „közel” van a jelenlegi μt átlaghoz (a Σt kovarianciamátrix szerint). Ennek a tulajdonságnak a nem technikai megértéséhez gondoljunk arra a példára, amikor egy dzsungelben szálló madár követésével próbálkoztunk. A madár nagy sebességgel egyenesen egy fatörzs felé tart. A Kalman-szűrő, akár reguláris, akár kiterjesztett a madár pozíciójára, csak Gauss-előrejelzést adhat, és ennek a Gaussnak az átlaga a fatörzs közepére esik, ahogyan a 15.10. (a) ábrán látható. A madár egy elfogadható modellje azonban egy elkerülő műveletet jelezne előre egyik vagy másik oldalra, ahogy az a 15.10. (b) ábrán látható. Egy ilyen modell erősen nemlineáris, mivel a madár döntése nagyon eltérő a fatörzshöz vett pontos pozíciójának függvényében.

15.10. ábra - Egy fa felé repülő madár (felülnézetben). (a) Egy Kalman-szűrő előrejelzése a madár helyzetére, ami egyetlen Gauss-eloszlás az akadály közepére illesztve. (b) Egy valósághűbb modell számításba veszi a madár elkerülő manővereit, és azt jelzi előre, hogy az egyik vagy a másik oldalon fog elszállni.
Egy fa felé repülő madár (felülnézetben). (a) Egy Kalman-szűrő előrejelzése a madár helyzetére, ami egyetlen Gauss-eloszlás az akadály közepére illesztve. (b) Egy valósághűbb modell számításba veszi a madár elkerülő manővereit, és azt jelzi előre, hogy az egyik vagy a másik oldalon fog elszállni.

Ilyen példák kezeléséhez nyilvánvalóan egy kifejezőbb nyelvre van szükségünk a modellezett rendszer viselkedésének a reprezentálásához. A szabályozáselmélet területén, ahol olyan problémák, mint például egy repülőgép elkerülő manőverezése ugyanilyen típusú bonyodalmakat vetnek fel, a megszokott megoldás a váltó Kalman-szűrő (switching Kalman filter). Ebben a megközelítésben, több Kalman-szűrő fut párhuzamosan, mindegyik a rendszer különböző modelljét használva – például egy az egyenes repülésre, egy az éles balra fordulásra és egy az éles jobbra fordulásra. Az előrejelzéseknek egy súlyozott összegét használjuk, ahol a súly attól függ, hogy mennyire illeszkednek az egyes szűrők az aktuális adatokhoz. A következő fejezetben látni fogjuk, hogy ez egyszerűen az általános dinamikus Bayes-háló modell egy speciális esete, amit a 15.7. ábrán látható hálóból egy diszkrét „manőver” állapotváltozó hozzáadásával nyerünk. A váltó Kalman-szűrőket a 15.5. feladat tárgyalja tovább.



[159] Rudolf E. Kalman (Kálmán Rudolf) magyar származású matematikus.