はじめに
本エントリーでは、カルマンフィルターで用いる観測データの一貫性チェックについて説明します。実用において観測は非常にノイジーであり、時に異常値をを含んだものとなります。そのため、外れ値をそのまま統合してしまうと状態推定が不安定になってしまう恐れがあります。そこで、毎回の更新ステップ時に得られている観測を統合すべきか否かを判断し、大きく外れた観測が得られている場合はその観測を拒否することで安定したフィルター状態を保つような仕組みが一般的に採用されています。一貫性をチェックする方法は幾つか提案がされていますが、本エントリーではその中でもひろく用いられているNormalized Innovation Squared (NIS)について具体的に解説します。
カルマンフィルターについては過去にもまとめています。
- カルマンフィルター(1) - 1次元の場合 - Pacific10
- カルマンフィルター(2) - 多次元の場合 - Pacific10
- カルマンフィルター(3) - 非線形モデルの場合(EKF, UKF) - Pacific19
観測の一貫性判定
カルマンフィルターでは、予測モデルと観測モデルの誤差が正規分布に従うという過程の下で状態量を推定します。なので誤差がのっている観測を扱うという点ではカルマンフィルターのモデルに既に織り込み済みです。しかし実用上では、仮定している正規性に従わないような外れ値的な観測が突然得られることも多く、そのような観測を全て統合してしまうと、状態推定が不安定になってしまう恐れがあります。
そこで、得られている観測の"一貫性"を確認し、一貫した観測出ない場合は統合を行わないという方法が良くとられます。 一貫性の判定手段としては、Normalized Innovation Squared (NIS)という値を用います。
状態量:${\bf y_t}$、観測:${\bf z_t}$および制御入力:観測:${\bf u_t}$とした場合の予測モデルと観測モデルは以下で表されます。
${\bf w_t } \in R^n$と${ \bf v_t } \in R^m$は多次元正規分布に従うノイズです。各変数の意味については過去のエントリーをご参照ください。 この時の予測と更新モデルの式は以下のようになります。
予測モデル:
更新モデル:
式(3)の${\bf e}_t$をInnovation, Residualなどといい、これを判定に用います。 ${\bf e}_t$は図1に示したように、平均:${ \bf \hat{y}}_{t|t-1}$で分散:$S$の分布に従うことが分かります。NISは、過去の情報によって予測されているこの${\bf e}_t$の分布を基に今回時刻$t$に得られた観測がこの分布上あり得そうな観測なのかそうでないかを判断します。
NISの定義は式(4)で表されます。
これは図1の分布においてのマハラノビス距離(Mahalanobis' distance)に他なりません。マハラノビス距離は、過去に対する現在のデータの一貫性を確認する方法として教師なし学習での異常検知等によく用いられます。カルマンフィルターの観測においては、平均:${ \bf \hat{y}}_{t|t-1}$で分散:$S$が時刻$t-1$までの状態と時刻$t$の予測によって決まっているという点が重要で、今回時刻$t$に得られた観測データが疎の分布に適合するかをみて異常か正常かを判断します。
ここでマハラノビス距離がカイ2乗分布に従うことを利用して、判断の基準としてはカイ2乗検定の考え方を用いることが出来ます。 マハラノビス距離がカイ2乗分布に従う理由は、こちらのエントリーでまとめています。
カルマンフィルターの観測においては、特定の有意水準を設定しNISが棄却域である場合は異常と判断し式(3)の更新モデルの平均と分散の更新式をスキップするということを行います。
まとめ
カルマンフィルターを実用する上で重要となるNISについて解説しました。NISにより、過去と現在の観測の一貫性をチェックしながらの観測情報の扱いが可能になり、外れ値的な観測を拒否することによって安定な状態推定が出来るようになります。