非線形状態推定(EKF/UKF)

実世界の運動も観測も非線形で、素朴なカルマンフィルタは破綻する。EKFの線形化とUKFのシグマ点、発散を防ぐ設計原理を押さえれば、頑健な状態推定を自力で組める。

応用拡張カルマンフィルタ無香料カルマンフィルタ状態推定ロボティクスベイズフィルタセンサフュージョン最終更新: 2026-07-29
3つの要点
TL;DR
  1. カルマンフィルタは線形ガウス系でのみ最適で、非線形な運動・観測モデルには使えないため、EKFはヤコビ行列で1次テイラー線形化し、UKFはシグマ点を伝播させて分布を近似する。
  2. UKFはヤコビ行列を計算せず(微分不要)、平均・共分散を2次精度で捉えるため強い非線形性で有利。計算量は状態次元nに対しどちらもおおむねnの3乗オーダーで、粒子フィルタより桁違いに軽い。
  3. 発散の主因は線形化誤差・過小な共分散による自信過剰・観測不能な状態で、共分散を正定に保つ実装(平方根フィルタ)やプロセス雑音の適切な設定が収束の鍵になる。

現実の運動も観測も線形ではない

カルマンフィルタは「状態の遷移も観測も線形関数で、雑音がガウス分布」という前提のもとで、事後分布を最小分散の意味で最適に推定します。ところがロボットの実際の運動は線形ではありません。2輪差動駆動の姿勢更新には向きの三角関数が入り、観測モデルもレンジ・ベアリングセンサなら距離が座標差の平方根、方位が逆正接(arctan)になります。こうした非線形関数にガウス分布を通すと、出力はもはやガウス分布ではなくなり、平均・共分散だけで正しく表せません。

横にスクロール

非線形状態推定(EKF/UKF)について、現実の運動も観測も線形ではないを中心にセンサーから環境帰還までの処理経路と設計判断を示す図
「現実の運動も観測も線形ではない」の閉ループ構造と、実装・計測・判断の要点を整理します。

それでも実務では、多くの場合分布が単峰で緩やかな非線形性に収まるため、「非線形関数の近くではガウス分布で近似し続ける」という割り切りが有効です。この近似の仕方が2通りあり、それが拡張カルマンフィルタ(EKF)と無香料カルマンフィルタ(UKF, Unscented Kalman Filter)です。EKFは関数を線形化し、UKFは分布を代表点で標本化します。多峰性まで扱う必要がある場合はパーティクルフィルタへ進みますが、単峰で足りるならこの2つが計算効率で圧倒します。

EKF:ヤコビ行列による1次線形化

EKFの発想は、非線形関数を現在の推定値の周りで1次のテイラー展開に置き換える、というものです。運動モデル f と観測モデル h を、現在の平均のまわりで偏微分したヤコビ行列が線形化の係数になります。

非線形モデル:
  x_t = f(x_{t-1}, u_t) + w_t      w_t ~ N(0, Q)   プロセス雑音
  z_t = h(x_t)         + v_t      v_t ~ N(0, R)   観測雑音

ヤコビ行列(各要素は偏微分):
  F = ∂f/∂x |(x_{t-1}=推定平均)    運動モデルの線形化
  H = ∂h/∂x |(x_t=予測平均)        観測モデルの線形化

予測ステップ:
  x_pred = f(x_est, u_t)                非線形関数はそのまま適用
  P_pred = F P_est Fの転置 + Q          共分散はヤコビで線形伝播

更新ステップ:
  K = P_pred Hの転置 (H P_pred Hの転置 + R)^-1   カルマンゲイン
  x_est = x_pred + K (z_t - h(x_pred))            観測残差で補正
  P_est = (I - K H) P_pred

ポイントは、平均の伝播には非線形関数 fh をそのまま使い、共分散の伝播にだけ線形化したヤコビ行列 FH を使うという非対称な構造です。平均は非線形の中心を素直にたどり、不確かさ(共分散)だけを局所的な傾きで近似して運びます。これがEKFが「そこそこ効く」理由であり、同時に限界の源でもあります。

線形化はどこで破綻するか

1次テイラー展開は、非線形関数の曲率(2次以上の項)を無視します。関数が推定点の近くでほぼ直線とみなせるうちは誤差が小さいですが、共分散が大きく分布が広い、あるいは関数の曲率が急な領域では、線形化点から離れたところで真の関数と直線が大きくずれ、伝播される共分散が実際の不確かさを正しく表さなくなります。特に共分散を過小評価すると、フィルタが自分の推定を過信し、観測を軽視して真値から外れたまま戻れなくなる発散を招きます。

UKF:シグマ点で分布そのものを通す

UKFは「関数を近似するより、分布を近似する方が正確だ」という異なる立場を取ります。ヤコビ行列を一切計算せず、代わりに現在の平均・共分散を代表する少数のシグマ点を決定論的に選び、その各点を非線形関数へそのまま通してから、通過後の点群の重み付き平均・共分散を再計算します。これを無香料変換(Unscented Transform, UT)と呼びます。

シグマ点の生成(状態次元 n に対し 2n+1 点):
  χ_0 = x_est                                       中心点
  χ_i     = x_est + (√((n+λ) P))_i    i=1..n        列ベクトル方向へ
  χ_{i+n} = x_est - (√((n+λ) P))_i    i=1..n        反対方向へ

  √P は共分散の行列平方根(コレスキー分解など)
  λ = α² (n+κ) - n : 中心からの散らばりを決めるスケーリング係数

無香料変換:
  1. 各シグマ点を非線形関数へ: Y_i = f(χ_i)  (または h)
  2. 変換後の平均:   y_mean = Σ_i Wm_i Y_i
  3. 変換後の共分散: Py = Σ_i Wc_i (Y_i - y_mean)(Y_i - y_mean)の転置

  Wm_i, Wc_i : 平均用・共分散用の重み(中心点と周辺点で異なる)

重要なのは、シグマ点が乱数ではなく決定論的に選ばれた最小限の点である点です。パーティクルフィルタが数百から数千の乱数サンプルを要するのに対し、UKFは 2n+1 点で済みます。そして無香料変換は、任意の非線形関数に対して変換後の平均・共分散をテイラー展開の2次項まで正しく捉える(EKFは1次まで)ため、強い非線形性の下でEKFより精度が高くなります。パラメータ ακβ はシグマ点の広がりと分布形状(β=2 がガウス最適)の補正に使われます。

UKFはヤコビ行列が要らないという実務的利点

EKFの実装で最も骨が折れ、かつバグの温床になるのがヤコビ行列の手計算です。観測モデルが複雑(カメラの投影モデルや多センサ融合など)だと偏微分の導出だけで大仕事になり、符号ミス1つで静かに発散します。UKFは関数を評価するだけでよく微分が不要なので、モデルを差し替えても実装を触らずに済みます。関数がブラックボックス(微分不可能な数値ソルバなど)でも適用できるのは、UT が導関数を使わない標本化に基づくためです。

EKF・UKF・粒子フィルタの計算量と精度

3手法は「分布をどう近似するか」で系統的に整理できます。

観点EKFUKF粒子フィルタ
近似の対象非線形関数を線形化分布をシグマ点で標本化分布を乱数サンプルで表現
精度(非線形性)1次(テイラー2次以上を無視)2次まで捕捉サンプル数を増やせば任意精度
ヤコビ行列必要(手計算・偏微分)不要(関数評価のみ)不要
分布の形単峰ガウス限定単峰ガウス限定多峰・非ガウス可
計算量(状態次元 n)おおむね n の3乗おおむね n の3乗(点は 2n+1)サンプル数 N に比例、高次元で急増
主な弱点線形化誤差・自信過剰な発散共分散が非正定になり得る粒子退化・次元の呪い

計算量の観点では、EKFとUKFはどちらも共分散行列の演算(行列積や逆行列)が支配的で、状態次元 n に対しておおむね n の3乗オーダーに収まります。UKFのシグマ点は 2n+1 個で n に線形なので、支配項は変わりません。つまりUKFはEKFと同程度の計算コストで、より高い精度とヤコビ不要の実装容易性を得られることが多く、非線形が強い問題での第一候補になります。一方パーティクルフィルタは多峰・非ガウス分布を扱える代わりに、必要サンプル数が状態次元に対して指数的に増える「次元の呪い」を受け、計算量が桁違いに重くなります。単峰で足りる姿勢追跡やセンサ融合ではEKF/UKFが、初期位置不明のグローバル位置推定など多峰性が避けられない場面では粒子フィルタが選ばれます。

収束と発散の条件

カルマンフィルタ系が収束する(推定誤差が有界に保たれる)には、線形ガウス系での可観測性・可制御性に相当する条件が要ります。非線形版では以下が実務上の発散要因になります。

発散を引き起こす3つの典型
  • 線形化誤差の蓄積:EKFで曲率の急な関数を広い共分散のまま線形化すると、伝播される共分散が真の不確かさとずれ続け、やがて観測残差の統計と整合しなくなる。UKFでも α が過大でシグマ点が非線形の妥当領域を超えると同種の破綻が起きる。
  • 自信過剰(共分散の過小評価):プロセス雑音 Q を小さくしすぎると、フィルタが予測を過信してカルマンゲインがほぼゼロになり、観測をほとんど取り込まなくなる。真値がずれても補正が効かず、推定が固着して発散する。
  • 可観測性の欠如:観測が状態の一部しか拘束しない構成(例:方位しか測れないのに位置を推定する)では、観測されない方向の共分散が際限なく増大するか、逆に数値的に縮退して不正な相関を生む。

数値面での代表的な破綻が、共分散行列 P が理論上は必ず対称正定であるべきなのに、浮動小数点の丸めや (I - K H) P の形の更新で対称性・正定性を失う現象です。これが起きると行列平方根やゲイン計算が破綻します。対策として、共分散そのものではなくその平方根因子を伝播させ正定性を保証する平方根フィルタ(EKFなら平方根形式、UKFならコレスキー更新を使う実装)や、対称化のための P ← (P + Pの転置)/2 の強制、QR を実データの残差統計から調整する適応フィルタが使われます。

試験・面接での頻出ポイント
  • 前提:カルマンフィルタは線形ガウス系でのみ最適。非線形にはEKF/UKFで近似する。
  • EKF:運動・観測モデルをヤコビ行列で1次線形化。平均は非線形関数、共分散はヤコビで伝播。線形化誤差が弱点。
  • UKF2n+1 個のシグマ点を無香料変換で通す。ヤコビ不要(微分不要)、テイラー2次まで捕捉しEKFより高精度。
  • 計算量:EKF・UKFともおおむね状態次元 n の3乗。粒子フィルタは次元の呪いで指数的に重い。分布形はEKF/UKFが単峰ガウス、粒子フィルタが多峰可。
  • 発散条件:線形化誤差、Q 過小による自信過剰、可観測性欠如。共分散の正定性を保つ平方根フィルタが対策。

まとめ

EKFとUKFは、非線形な運動・観測モデルに対してもガウス分布近似を維持したまま状態を推定するための2つの標準手法です。要点は、(1) カルマンフィルタが最適なのは線形ガウス系に限られ、現実の非線形性には関数近似(EKF)か分布近似(UKF)で対処すること、(2) EKFはヤコビ行列による1次線形化で平均は非線形関数・共分散は線形伝播という非対称構造をとり、実装は軽いが線形化誤差と自信過剰による発散が弱点であること、(3) UKFは決定論的なシグマ点を無香料変換で通すことで微分を使わずテイラー2次まで捉え、EKFと同等の n の3乗計算量でより高精度を得られること、(4) いずれも単峰ガウス限定であり、多峰性が必要なら粒子フィルタへ移るが計算量は桁違いに増えること、(5) 収束には可観測性と適切な雑音設定が要り、共分散の正定性を守る平方根フィルタが数値的発散を防ぐこと。この状態推定の骨格は、SLAMのEKF-SLAMやLiDAR・カメラのセンサ融合視覚オドメトリの姿勢トラッキングなど、ロボティクスの推定問題全般で繰り返し現れます。

ロボティクスの記事ガイド

非線形状態推定(EKF/UKF)を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

拡張カルマンフィルタ

比較で見る軸

難易度: advanced / カテゴリ: ロボティクス / タグ数: 6

導入後に効く点

UKFはヤコビ行列を計算せず(微分不要)、平均・共分散を2次精度で捉えるため強い非線形性で有利。計算量は状態次元nに対しどちらもおおむねnの3乗オーダーで、粒子フィルタより桁違いに軽い。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
ロボティクス
タグ数
6

判断チェックリスト

  • 自社の用途が「拡張カルマンフィルタ / 無香料カルマンフィルタ」に近いか確認する。
  • 強みである「カルマンフィルタは線形ガウス系でのみ最適で、非線形な運動・観測モデルには使えないため、EKFはヤコビ行列で1次テイラー線形化し、UKFはシグマ点を伝播させて分布を近似する。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

拡張カルマンフィルタ無香料カルマンフィルタ状態推定ロボティクスベイズフィルタ