Kalman filtresindeki olasılık neden daha pürüzsüz sonuçlar yerine filtre sonuçları kullanılarak hesaplanıyor?


11

Kalman filtresini çok standart bir şekilde kullanıyorum. Sistem durumu denklem ile temsil edilir xt+1=Fxt+vt+1 ve gözlem denklemi yt='Hxt+birzt+wt .

Ders kitapları öğrettikleri Kalman filtresi uygulayarak ve "tek adım önde aldıktan sonra x t | t - 1x^t|t-1 (veya "filtrelenmiş tahmin"), olasılık işlevini hesaplamak için bunları kullanmalıyız:

fyt|bent-1,zt(yt|bent-1,zt)=det[2π(HPt|t1H+R)]12exp{12(yt'Hx^t|t-1-birzt)'('HPt|t-1'H'+R,)-1(yt-'Hx^t|t-1-birzt)}

Benim sorum: Olasılık fonksiyonu neden "düzeltilmiş tahmin" değil, " filtrelenmiş tahmin" hesaplanıyor ? Is not durum vektörünün daha iyi bir tahmin?x^t|t-1x^t|Tx^t|T


Başlığı daha bilgilendirici olacak şekilde düzenledim.
Juho Kokkala

Yanıtlar:


5

Sorunuzu cevaplamak için: düzeltme yoğunluğunu kullanabilirsiniz. Ama zorunda değilsin. Jarle Tufto'nun cevabı kullandığınız ayrışmaya sahip. Ama başkaları da var.

Kalman Özyinelemeleri Kullanma

Burada olasılığı

f(y1,,yn)=f(y1)i=2nf(yi|y1,,yi1).

Bununla birlikte, ortalamalar ve varyanslar genel olarak olasılık dağılımlarını her zaman tam olarak tanımlamaz. Aşağıdaki Eğer dağılımlarını filtreleme gitmek için kullanmakta olduğunuz ayrışma olduğunu koşullu olasılıklarının f ( y ı | y 1 , ... , y i - 1 ) :f(xi1|y1,,yi1)f(yi|y1,,yi1)

(1)f(yben|y1,...,yben-1)=f(yben|xben)f(xben|xben-1)f(xben-1|y1,...,yben-1)dxbendxben-1.

Burada durum geçiş yoğunluğu ... modelin bir parçasıdır ve f ( y i | x i ) yine gözlem yoğunluğu ... modelin bir parçasıdır. Sorunuzda bunları x t + 1 = F x t + v t + 1 ve y t = H x t + A z t + w tf(xben|xben-1)f(yben|xben)xt+1=Fxt+vt+1yt='Hxt+birzt+wtsırasıyla. Aynı şey.

Bir adım önde durum tahmini dağılımı elde ettiğinizde, bu i hesaplar . Tekrar entegre ettiğinizde, (1) 'i tamamen elde edersiniz. Bu yoğunluğu sorunuza tamamen yazıyorsunuz ve aynı şey.f(xben|xben-1)f(xben-1|y1,...,yben-1)dxben-1

Burada sadece olasılık dağılımlarının ve model hakkındaki varsayımların ayrıştırmasını kullanıyorsunuz. Bu olabilirlik hesabı kesin bir hesaplamadır. Bunu daha iyi veya daha kötü yapmak için kullanabileceğiniz isteğe bağlı bir şey yoktur.

EM Algoritmasını Kullanma

Bildiğim kadarıyla, bu tür bir durum uzay modelinde olasılığı doğrudan değerlendirmenin başka bir yolu yoktur. Ancak, yine de farklı bir işlevi değerlendirerek maksimum olasılık tahmini yapabilirsiniz: EM algoritmasını kullanabilirsiniz. Beklenti adımında (E-Adımı) Buradaf( y 1 ,, y n , x 1 ,, x n )

f(x1,...,xn|y1,...yn)günlükf(y1,...,yn,x1,...,xn)dx1:n=EsmÖÖth[günlükf(y1,...,yn,x1,...,xn)].
f(y1,...,yn,x1,...,xn)"tam veri" olasılığıdır ve eklem yumuşatma yoğunluğu ile ilgili günlüğün beklentisini alıyorsunuz demektir. Sık sık olan şey şu ki, bu tam veri olasılığının günlüğünü alıyorsanız, terimler toplamlara ayrılır ve beklenti operatörünün doğrusallığı nedeniyle, marjinal yumuşatma dağılımları ( Sorunuzda bahsediyorsunuz).

Diğer şeyler

EM'nin olasılığını en üst düzeye çıkarmak için "daha kararlı" bir yol olduğunu okudum, ama bu noktanın gerçekten iyi tartışıldığını hiç görmedim, ne de bu kelimeyi "kararlı" olarak tanımladım, ama aynı zamanda bunu daha fazla incelemedi. Bu algoritmaların hiçbiri yerel / küresel maksimum çare bulmak değildir. Şahsen Kalman'ı alışkanlıktan daha sık kullanma eğilimindeyim.

Devletin düzeltilmiş tahminlerinin tipik olarak filtrelemekten daha küçük varyansa sahip olduğu doğrudur, bu yüzden sanırım bu konuda bir sezgiye sahip olursunuz, ancak gerçekten durumları kullanmıyorsunuzdur. En üst düzeye çıkarmaya çalıştığınız olasılık, devletlerin bir işlevi değildir.


KF ve EM ne kadar farklıdır? Sonunda aynı şeyi belirsiz şekilde görüyorlar.
Mitch

1
@Mitch muhtemelen bir yorumdan daha fazlasını hak eden bir şey. KF ile hangi genel amaçlı optimize ediciyi kullandığınıza ve ne tür EM kullandığınıza bağlı olacaktır. Bakmadan çok emin olmayacağım.
Taylor

7

Genel olarak, ürün kuralı ile kesin olasılık olarak yazılabilir . . Durum uzayı modelinin varsayımından , geçmiş gözlemlere bağlı her bir y i'nin beklenti vektörü ve varyans matrisi E (

f(y1,...,yn)=f(y1)Πben=2nf(yben|y1,...,yben-1).
yben ve V , bir R ( y ı | y 1 , ... , y i - 1 )
E(yben|y1,...,yben-1)=E('Hxt+birzt+wt|y1,...,yben-1)='HE(xt|y1,...,yben-1)+birzt+Ewt='Hx^t|t-1+birzt,
Böylece bu, herhangi bir düzeltilmiş hesaplamayı hesaplamadan kesin olasılığı verir.
Vbirr(yben|y1,...,yben-1)=Vbirr('Hxt+birzt+wt|y1,...,yben-1)='HVbirr(xt|y1,...,yben-1)'H'+Vbirrwt='HPt|t-1'H'+R,.

yben


0

"Neden" düzgünleştirme dağılımının (tipik olarak) kullanılmadığı konusunda daha iyi bir yanıtın verimlilik olduğunu düşünüyorum. Prensipte, (ayrılık) marjinal olasılığını, bir kereye mahsus bırakma anlamında hesaplamak basittir. Gözlem j'yi silin, kalan verilerde Kalman'ı daha düzgün çalıştırın. Sonra görünmeyen y (j) olasılığını değerlendirin. Bunu tüm j için tekrarlayın. Günlük olasılıklarını toplayın. Bunun daha hızlı sürümleri, dışarıda bırakılan örneklerin (rastgele) bloklarıyla (k-katlamalı CV gibi) çalışır. Bu şemanın, Kalman filtresinin / düzleştiricisinin, gerektiğinde ölçüm güncellemelerini keyfi olarak atlayabilecek daha genel bir uygulamasını gerektirdiğine dikkat edin. Geri / yumuşatma geçişi ölçümlere erişmez (RTS algoritması yine de) ve aynı kalır.

Zaman serisi "yeterince uzun" ise, filtreleme olasılığı başlangıçtaki geçici süresini "yaktığı" için bunu yapmanın pek bir yararı yoktur. Ancak veri kümesi kısaysa, daha pahalı düzleştirme olasılığı buna değer olabilir. Sabit gecikmeli bir pürüzsüz, aradaki bir çözüm olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.