信号解析 第10回講義録

 

日時:2006年7月3日

講義内容:状態空間モデルとカルマンフィルタ

担当者:情報知能工学科 小島史男

 

1. はじめに

 

 先週はARモデルの推定について学習しました。データのARモデルによるあてはめがレビンソンのアルゴリズムを用いて効率よく実現できることを示しました。さて、今週と来週は状態空間モデルによる推定問題について考察します。カルマンフィルタはシステムの状態量の推定値を逐次求めていく計算アルゴリズムです。ここでは、データがモデルのなかに時時刻々組み込まれていきます。

 

2. 状態空間モデル

 

今回の講義では混乱を避けるため、取得される観測データの系列は のようにデータ長 と冠記号をつけて、モデルの時系列 とは明示的に区別します。トップダウンの説明になりますが、時系列モデルの観測量 次元、すなわち、

で与えられるとします。この時系列 のモデルを以下のように記述します。まずシステムの状態量を 次元の状態ベクトル

で与え、システムの不規則性の記述を、 次元の互いに独立なガウス型白色雑音ベクトル

で与えます。ただし、平均値ベクトルは また分散共分散行列は で与えられるとします。このときシステムの状態量 は次の逐次更新式で与えられるものとします。

ただし、 および は時刻 におけるそれぞれ および の推移行列、すなわち

とします。これを状態空間モデルと呼びます。一方観測信号 に対応する観測モデルは、この状態ベクトル と観測に混入する雑音を 次元の互いに独立なガウス型白色雑音ベクトル

との和によって

で記述することにします。ただし は平均値ベクトルは 、かつ分散共分散行列が で与えられるとし、 は時刻 における の観測行列、すなわち

で記述します。すなわちシステム全の状態量に関する情報の次元 に対して 次元の観測情報に縮約されたことを意味します。結局状態空間モデルとは

で記述される構造を持っています。これは線形システムの標準系であり、線形システム解析の基本モデルとなっています。このシステムの入力はシステムノイズ およびこれとは独立な観測ノイズ であり、モデルの出力は となります。モデルの基本構成はシステムの次元 およびダイナミクスと観測機構を定める行列 となります。それではこのモデルと観測データとの関係づけを以降おこなっていきます。

 

. ARモデルと状態空間モデル

 

先週説明したARモデルがこの状態空間モデルで記述できることを示してみましょう。ARモデル

において、形式的に

と設定し、また観測ノイズを考慮しないとすれば、状態空間モデルは

のように書くことができます。さて、この状態空間モデルの形で観測データの系列 から尤度関数について考えてみましょう。尤度関数は 次の同時ガウス型確率密度関数によって

によって与えられることは先週学習しました。ここで です。ところで条件付き期待値の性質(ベイズの定理)により、

が成立します。ここで は条件付き確率密度関数を意味します。これを繰り返し適用すれば、尤度関数は

のような条件付き期待値のかけ算で与えられることになります。ここで条件付き確率密度関数の条件部分に観測データ を代入した は観測値 の予測分布に相当します。つまり時時刻々の予測分布のかけ算により尤度関数が反復的に計算できることになります。カルマンフィルタはこの予測計算を簡単に実現できる計算アルゴリズムです。


4.カルマンフィルタの構成

 

一般的な状態空間モデルにもどって議論していくことにします。ここでは求めるのは、観測データ にもとづいて状態量 の推定を行うことです。推定問題には3つのカテゴリーがあります。いま

のように推定問題を記述することにします。いま のとき、観測の時間区間より先の情報を推定することになりますので、これを予測問題(Prediction)と呼びます。一方この逆の場合、すなわち の場合は観測値のもとづいて過去の状態の推定を行うことから平滑問題(Smoothing)と呼びます。ちょうど のとき濾波問題(Filtering)と呼びます。このように推定問題には3種類の問題があります。ではカルマンフィルタ(Kalman filter)のアルゴリズムについて説明していきます。この導出には各種の方法がありますが、詳しくは講義科目「確率過程論」で説明されるとおもいますので、ここでは省略します。フィルタの特性を求めるために以下の記法を用いることにします。

カルマンフィルタは以下の予測問題とフィルタリングの問題を各時間ステップで繰り返し計算していくアルゴリズムです。

 

予測問題(1ステップ)

濾波問題(フィルタリング)

 

観測データの情報は予測誤差の計算 に組み込まれています。この予測誤差のことをイノベーション過程と呼びます。この修正はカルマンゲイン によって制御されています。更新式を少し変形すると

とも書けます。つまり、フィルタリング は新しい観測データ と予測ベクトル の線形和となっています。また分散共分散行列 についてみると

となって、誤差が減少する方向、つまり繰り返し演算を通じて精度が改善去れいく様子がみてとれます。

 

 

カルマンフィルタのプログラムについて:ここではシステムの状態を 次のARモデルで記述し、その出力に対して観測雑音が混入したモデルについてKalman filterを構成してみましょう。すなわち、ここで対象とするモデルは

とします。ここでシステムの状態は

となり、またシステムノイズ は平均値 分散 のスカラー量のガウス型白色雑音とします。また観測ノイズはシステムノイズと独立な平均値 分散 のスカラー量のガウス型白色雑音とします。このときKalman filterは以下のように簡単にまとめることができます。

 

予測問題(1ステップ)

濾波問題(フィルタリング)

この問題では観測方程式がスカラーであることから、カルマンゲインの更新において逆行列の計算は必要がないことから、簡単にフィルタを構成することができます。次の図は観測データとフィルタリングの結果の見本過程を示しています。プログラム例を挙げておきますので、各自確かめてみてください。システムの状態量がARMAモデルの場合においても容易に拡張することができます。

 

 

宿題:AR次数、AR係数を変えてフィルタリングを実行してみてください。プログラムは各自ダウンロードしてください。このプログラムではAR次数、AR係数、システムノイズ、観測ノイズの分散を与えるだけでARデータを自動的に生成し、フィルタリングが実行できるようになっています。