LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

カルマンフィルター

カルマンフィルター (Kalman filter) は、誤差のある観測値を用いて、ある動的システムの状態を推定あるいは制御するための、無限インパルス応答フィルターの一種である。カルマンフィルターは、 離散的な誤差のある観測から、時々刻々と時間変化する量(例えばある物体の位置と速度)を推定するために用いられる。レーダーやコンピュータビジョンなど、工学分野で広く用いられる。例えば、カーナビゲーションでは、機器内蔵の加速度計や人工衛星からの誤差のある情報を統合して、時々刻々変化する自動車の位置を推定するのに応用されている。カルマンフィルターは、目標物の時間変化を支配する法則を活用して、目標物の位置を現在(フィルター)、未来(予測)、過去(内挿あるいは平滑化)に推定することができる。このフィルターはルドルフ・カルマンによって提唱されたが、同様の原理はトルバルド・ティエレとピーター・スワーリングによってすでに開発されていた。カルマンがアメリカ航空宇宙局のエイムズ研究センターを訪問した際、この理論がロケットの軌道推定に有用なことに気づき、のちのアポロ計画で用いられた。カルマンフィルターは時間領域において、連続時間線形動的システム、もしくは離散化された離散時間線型動的システムに基づいて駆動する。以降に導入される解説は、後者の立場のものである。それらはガウス白色雑音によって励振をうける線形演算子からなるマルコフ連鎖モデルで表現される。より端的にいえば、システムは状態空間モデル (state space model) で表現されるということである。対象のシステムに定義された「状態 (state)」は、そのシステムの過去の動特性の遷移を保持する役割を果たし、動特性の遷移を保持する線形空間が状態空間として定義される。この空間は実数空間であるため、システムの状態は一般に、任意の次元の状態空間に含まれる実数ベクトルとして与えられる。状態の変化は、現在の状態と、それに付加する雑音の影響と、場合によってはシステムの状態の制御に関与する既知の制御入力の線形結合によって記述される。したがって、状態はシステムの因果性に寄与する存在である。上記の理念は、以下に記述する状態方程式 (state equation) によって表現される。状態が直接観測できない場合には、システムの出力は一般に状態と観測雑音の線形結合にて観測可能なものとして与えられる。この理念は観測方程式 (observation equation) として、以下に示すような線形モデルで表現される。カルマンフィルターは、直接システムの状態が観測できない問題に対する状態推定法のひとつであるから、一般的に観測方程式を伴う問題に適用される。カルマンフィルターは隠れマルコフモデル (hidden Markov model) の類似であると考えることができる。2者の主たる差異は隠れマルコフモデルにおける状態変数が、連続であるか離散であるかである。また、隠れマルコフモデルでは状態変数の未来への変化を任意の分布に従う形式で統計的に与えることができる一方で、カルマンフィルターでは、ガウス分布に従う雑音によって未来の状態変数が統計的に記述される点が異なっている。したがって、カルマンフィルターと隠れマルコフモデルの間には強固な双対性が存在する。ちなみに、カルマンフィルターの導出過程においては、「システムに付随する雑音の性質はガウス分布に従う」という仮定の下に行われるのが一般的であるが、雑音の性質がガウス分布に従わない場合であっても、カルマンフィルターは線形なクラスにおける最適推定値、すなわち線形最小分散推定値を導くことができる点で、汎用性に富んでいるといえる。唯一に観測可能である、雑音の影響を受けた出力過程に基づいて(制御問題においては、入力も観測可能な過程となる)、カルマンフィルターを用いてシステムの状態を推定するためには、対象のシステムに対して、カルマンフィルターの理念に合致するような状態の遷移(すなわち状態過程)に関するモデルを与えなければならない。これは、時変 (time-variant) な行列 formula_1, formula_2, formula_3, formula_4, formula_5 によって特徴付けられる線形方程式として、以下で与えられる。これが状態方程式である。時刻 formula_6 における真のシステムの状態は、1ステップ前の時刻 formula_7 の状態をもとに、次のように表現される。ここに、これがシステムの状態の遷移を記述する状態方程式である。ある時刻 formula_6 において、観測量(測定量)formula_14 は、真の(すなわち観測不可能な)状態 formula_15 と、以下のような関係にある。ここに、formula_3 は状態空間を観測空間に線形写像する役割を担う観測モデルで、 formula_17 は、共分散行列 formula_5 かつ零平均の多変数正規(ガウス)分布に従うような雑音である(観測雑音 (observation noise) )。これが観測方程式である。システムの初期条件と雑音formula_19 は、互いに統計的に独立であると仮定する。状態方程式と観測方程式を合わせて、状態空間モデルという。上記の状態空間モデルは時変システムを表現しているが、限定的な場合として行列のインデックス formula_6 を定数と考えることにより、時不変システム (time-invariant) を表現できる。 多くの実動的システムでは、上記のような状態空間モデルは厳密には適合しないが、カルマンフィルターは雑音の影響を加味した上で設計されているがゆえに、上記のモデルが対象システムに近似的に適合するものと考えられ、これが理由でカルマンフィルターは十分な有用性が認められている。カルマンフィルターは洗練された様々な拡張がなされており、それは以降に述べられる。カルマンフィルターは、システム(系)の現在の観測量と 1 ステップ前の状態推定値のみから(モデルが制御入力を受ける場合には現在の入力値も用いて)、現在の状態推定値(ろ波推定値)と 1 ステップ先の状態予測値( 1 段予測値)を与える、反復推定器(反復推定型フィルタ)である。例えばローパスフィルタなどの多くのフィルタが周波数領域で設計され、時間領域へ変換されて実演される中で、カルマンフィルターは純粋に時間領域でのみ設計されるフィルタで、その意味で特異な存在であるといえる。カルマンフィルターは基本的に線形なクラスのフィルタであり、システム(系)が無限の過去から駆動し続けていると仮定すると、状態の推定値は、それまでにシステム(系)から観測された観測値の全て(システム(系)が制御入力を受ける場合は入力値の全ても含めて)を用いた線形結合の形で表現される。その意味で、カルマンフィルタは無限インパルス応答フィルタであると解釈できる。反復推定との対応関係は、1 ステップ前の状態推定値が 1 ステップ前までの全ての観測値(入力値も含め)の情報を線形結合の形で保有しているという事実により与えられる。以降、formula_21 は時刻 "m" 時点での時刻 "n" の状態推定値を示すものとする。フィルタの現在(時刻 "k" )の状態(様子)は、以下の2つの変数で特徴付けられる。カルマンフィルターは、時間ステップをひとつ進めるために予測と更新の二つの手続きを行う。予測の手続きでは、前の時刻の推定状態から、今の時刻の推定状態を計算する。更新では、今の時刻の観測を用いて、推定値を補正してより正確な状態を推定する。_{k|k-1} = F_khat{oldsymbol{x}}_{k-1|k-1} + oldsymbol{u}_k (今の時刻の予測推定値)formula_24 (今の時刻の予測誤差行列)_{k|k-1} (観測残差、innovation)formula_25 (観測残差の共分散)formula_26 ("最適" カルマンゲイン)formula_27 (更新された状態の推定値)formula_28 (更新された誤差の共分散)もし、モデルが正確で初期条件 formula_29 と formula_30 が正確ならば、全ての推定量は不偏である。ここに、formula_33 は、期待値。また、共分散は、推定値の誤差共分散である。まっすぐで無限の長さを持つ摩擦の無いレールの上に乗っているトロッコを考えよう。初期条件は、トロッコは位置 0 に静止している。トロッコにはランダムな 力(加速度)が与えられる。"Δt" 秒ごとにトロッコの位置 x を観測する。ただしこの観測には誤差が混入している。トロッコの位置と速度のモデルを考えると、以下の様に設定すると、カルマンフィルターが用い得る。制御の必要はないから、 "u" は考えない。行列 "F"、 "G"、 "H"、 "R"、 "Q" は時間変化しないので添字は付けない。トロッコの場所と速度は、で、表される。 formula_37 は位置の時間微分、すなわち速度である。時刻 "k" − 1 と時刻 "k" の間に加速度formula_38がトロッコに与えられる。加速度formula_38は平均 0 標準偏差formula_40の正規分布をしている。運動の第2法則により、ここに、かつである。formula_41の共分散は、formula_40がスカラーであることを用いて、それぞれの時刻に、トロッコの位置を観測する。観測誤差も平均 0 で標準偏差formula_43の正規分布と仮定する。ここに、かつである。初期条件は正確に分かっているので、もしも、初期条件に誤差があるならば、誤差の大きさに応じて "B" を設定し、と、取るべきである。もし "B" が大きければカルマンフィルターは、初期条件より、それ以降の観測に重みを置くようになる。時間を進めるための予測と更新の手続きのうち、更新が終わったあとの共分散行列 "P" をまず求める。上の定義式、に、推定値 formula_22 の定義を代入。続いて、観測残差 formula_45 を代入。そして、観測値 formula_14 と真の値の関係を代入。変形して、観測誤差 v は、他の項と相関がないから、となり、さらに変形して、前述の不偏量 "P" と、観測誤差共分散 "R" を用いて、を得る。この式は、 "K" がどんな値であっても成立するが、 "K" が、最適カルマンゲインの時は、以下のようにさらに簡略化される。カルマンフィルターは最小平均二乗誤差(minimum mean-square error: MMSE)推定値を与える。すなわち、更新後の誤差の推定値はであり、このベクトルの大きさの自乗の期待値 formula_47 を最小にするような推定値を与える。これは、更新後の共分散 "P" のトレースを最小とすることと同じである。上の式を展開して、MMSE を導くゲインは、"P"のトレースを最小にするから、必要条件として、"K"による行列微分は下記が成立しなければならない。ここからカルマンゲイン "K" を求める。このゲインは、最適カルマンゲインと呼ばれる。カルマンゲインが上述の値を取るとき、更新後の誤差共分散行列は以下のように簡単になる。カルマンゲインの式の両辺の右から "S"K" をかけて、更新後の誤差共分散行列を展開して、右の二項は相殺するから、計算量が少ないため、ほとんどの場合この式が用いられるが、カルマンゲインが上記の最適解の時にしか適用できないことに注意。計算上の桁落ちなどで解の安定性が悪いときやなんらかの理由で敢えて最適でない解を用いるときは使えない。真の状態は一次マルコフ過程であると仮定され、観測値は隠れマルコフモデルからの観測された状態である。 仮定より、ひとつ前の時刻の状態にのみ依存して同様に、時刻 "k" での観測値は現在の状態にだけ依存して、過去には依存しないものとする。これらの仮定を用いると、隠れマルコフモデルの観測が z, z, formula_48z と得られる確率は、で、表される。一方、カルマンフィルターで状態 x を求めるには現在の系の状態とそれまでの観測だけを用いる。 カルマンフィルターの"予測"と"更新"の手続きを、確率を使って表してみる。予測後の状態の確率分布は、時刻 "k" − 1 から時刻 "k" への変化に関する確率と、時刻 ("k" − 1) の状態の積になるから、時刻 "t" までの観測はである。更新後の確率は観測の起こりやすさ(尤度)と予測された状態の積に比例するからとなる。分母のは、全確率を 1 にするための因子であまり重要ではない。他の確率分布関数も_{k-1},P_{k-1} )と書ける。情報フィルターもしくは逆共分散フィルターにおいては、カルマンフィルターにおける推定された共分散と状態が、各々フィッシャー情報行列と情報ベクトルに置き換わる。_{k|k} riangleq P_{k|k}^{-1}hat{oldsymbol{x}}_{k|k} 同様に、予測された共分散と状態は情報形式と等価になり、以下と定義する。_{k|k-1} riangleq P_{k|k-1}^{-1}hat{oldsymbol{x}}_{k|k-1} 観測共分散と観測ベクトルがあるとして、以下で定義する。このとき、情報更新は簡便な和算となる。_{k|k} = hat{oldsymbol{y}}_{k|k-1} + oldsymbol{i}_k情報フィルターの主たる優位性は、以下に示すように、N 個の観測値は各時間毎に、観測値の情報行列と情報ベクトルの和算でシンプルにフィルター処理される点である。_{k|k} = hat{oldsymbol{y}}_{k|k-1} + sum_{j=1}^N oldsymbol{i}_{k,j}情報フィルターを予測するために、情報空間予測を用いることができる。formula_49formula_50formula_51formula_52 なおformula_53であれば、formula_54である。"F" は可逆(正則)の必要がある。注意すべきは、もし "F

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。