KF101
カルマンフィルタを図と手計算で理解する
1 次元スカラー版に絞り、図 → 直感 → 手計算 → コードの順で進む入門コースです。各章の途中に数値を手で追う小問を配置し、採点と進捗保存はすべてブラウザ内で完結します。
図 → 直感 → 手計算 → コード
全 57 問
ブラウザ内採点
localStorage 保存
所要
3〜4 時間
問題数
全 57 問
形式
7 章 + 小問 + シミュレータ
費用
無料
この講座の特徴
各章の途中に数値を手で追う小問を配置
予測分散・カルマンゲイン・更新後の推定を、その場で計算して確認できます。各所で手を動かして確認できるので、流し読みになりにくい構成です。
図 → 手計算 → シミュレータ → コード の順で進む
第 5 章のシミュレータと第 6 章の最小実装で、同じ題材を段階的に確認するので、式と挙動が結びつきやすくなります。
すべてブラウザ内で採点・保存
小問と総合演習はサーバ送信なしで採点し、回答や進捗はブラウザの localStorage のみに保存します。
この講座で使う式は 5 本だけ
本講座では、対象が動かない(位置が変わらない)定常モデルを仮定します。そのため予測式は x̂⁻ = x̂ という最小形になります。
x̂⁻ = x̂定常モデルの予測。前回の推定値をそのまま使います。
P⁻ = P + Q予測分散の更新。モデルの不確かさの分だけ大きくなります。
K = P⁻ / (P⁻ + R)カルマンゲイン。予測と観測のどちらをどれだけ信じるかを決めます。
x̂ = x̂⁻ + K(z − x̂⁻)推定値の更新。観測によって推定値を修正します。
P = (1 − K)P⁻分散の更新。観測を取り込んだぶん、推定の不確かさが小さくなります。
記号の意味: Q はモデルの不確かさ(例: 静止対象を仮定する場合の本当の動きとモデルとのズレの分散)、R は観測の不確かさ(例: GPS の揺れ幅が ±5 m なら R ≈ 25)、P は推定値の不確かさです。
章構成
1 導入 — なぜ推定が必要か
6 問。GPS の揺らぎを例に、真値・観測・推定値の 3 つの概念を区別する感覚を養います。
2 予測ステップ — モデルから次の状態を予測する
6 問。定常モデルの予測
x̂⁻ = x̂ と、不確かさ P⁻ = P + Q の意味を手で確かめます。
3 更新ステップ — 観測で予測を修正する
7 問。観測と予測の差(イノベーション)y = z − x̂⁻ と、更新式 x̂ = x̂⁻ + K y を数値で追います。
4 カルマンゲイン — 予測と観測のどちらをどれだけ信じるか
7 問。K = P⁻ / (P⁻ + R) を起点に、Q と R の比が挙動をどう決めるかを理解します。
5 スライダと手計算で体感する
10 問。シミュレータで Q・R・P₀ を動かし、1〜2 ステップ分は手計算でも追えるようにします。
6 実装読解 — 1 次元の最小実装を追う
9 問。Python / C の最小実装と式・変数名を結びつけ、1 ループを追えるようにします。
7 総合演習と理解度チェック
12 問。総合問題で仕上げを行い、弱点となった章を復習するための総合演習です。
受講のコツ
- まず本文を読み、すぐ下の理解チェックを解く
- つまずいたらヒントを見る前に、まず式の意味を言葉で言い直す
- 第 5 章のシミュレータ(挙動を体感する)と第 7 章の総合演習(定着を確認する)は目的が違うので、必ず両方やる
開始前の前提
- 高校レベルの平均・分散の感覚があれば十分です。
- 行列は使いません。1 次元スカラー版に限定します。
- 外部ライブラリは不要で、すべて静的 HTML / CSS / JavaScript です。