ゼロから理解するロードマップシリーズ、第一弾は「ゼロから理解するカルマンフィルタ 」です。
ゼロから理解するシリーズでは、知識ゼロから目的のアルゴリズムや手法を理解することを通して、同時にそのアルゴリズムの導出に使っている数学やプログラミングの基礎を全て身につけてしまおうとする、大変欲張りな企画です。
数学やプログララミングなどの実力をつける際には、基本参考書や教科書的なものを用いて、基礎からゆっくり理解していく方法と、ある特定の目的を達成するために必要な必要な数学や別の低級な概念について逐一理解していく方法があると思います。
前者は、挫折しないように、逐次丁寧に必要な概念が懇切丁寧に説明されている一方で(そうでないとおかしい)、覚えた数式やアルゴリズムが実際の問題や課題を解決するのにどのように役に立つのか想像できず、結果として、インプットしたものが忘却しやすいです。
後者は理解すべき課題が明確なため、インプットした内容がどの現実問題を解決するかイメージしやすく、従って知識も定着しやすい一方で、前提となる知識が当たり前のように用いられて解説されていたり、紙面の都合等であまりにも簡潔な説明しかしていないために、行間が省略され、初学者にはついていけないという課題があります。
今回取り扱うカルマンフィルタ はまさに後者のような勉強をする人にとっては極めて鬼門となります。なぜかというと、カルマンフィルタ を理解するには、必要となる数学が莫大にあるためです。
この記事では、カルマンフィルタ を理解しながら、基本的な数学、工学分野や機械学習、統計学で用いられている確率・統計の知識を一挙に理解し、段階的に知識で武装しながら最終的にカルマンフィルタ を理解していく内容となっています。
なかなか理解するのはしんどい内容ですが、各ステップごとに着実に学んでいきましょう。
ステップ0: カルマンフィルタ の概要
まず、カルマンフィルタの概要について理解しましょう。
カルマンフィルタは非常に歴史が長く、さらに 今も実際の製品等でバリバリ動いているアルゴリズムになります。まず、カルマンフィルタ の歴史やカルマンフィルタ が応用されている概念について学び、その後カルマンフィルタ の概要について学びましょう。
- カルマンフィルタ の歴史
- カルマンフィルタ の応用先
- カルマンフィルタ の概要・概念
ステップ1: カルマンフィルタ を理解するための確率・統計
カルマンフィルタ では、全ての情報を確率分布の1つである多変量正規分布、別名(多変量)ガウス分布を用いて表現します。ガウス分布を用いることで、システムをかなり簡潔に記述することができますが、一方でこれらを使いこなすためには確率の基本的な知識や考え方が必要になります。
ここでは、カルマンフィルタ 、特にカルマンフィルタ で登場するガウス分布を理解し使いこなすことを目的に、基本的な確率・統計の知識をインプットします。
- 確率分布とは
- 確率分布における平均と分散
- 正規分布(1次元ガウス分布)
- 正規分布の線型性
- 多変量正規分布(多次元ガウス分布)
ステップ2: カルマンフィルタ を理解するための数学
ここではカルマンフィルタ を導出・使いこなすために必要な数学をインプットします。カルマンフィルタ はアルゴリズムの導出が難解で、多くの数学的な知識を必要とします。
ここでは、これらの導出に必要は数学の知識を全て列挙し、一つ一つ勉強していきます。正直この辺りはつまらないしモチベーションも上がらないので、ある程度概要だけ抑えればオッケーで、なるべく早く次のステップに進むことを意識しましょう。
ここで出てくる数学は汎用的で多く使われるものばかりですが、それに囚われては仕方ないので、カルマンフィルタ 自体を理解して使いこなせるようになった後に、またこのステップで登場する数学を復習することをお勧めします。
- ベクトルの微分
- ラグランジュの不等方程式
ステップ3: カルマンフィルタ を理解するためのベイズ統計
カルマンフィルタ はベイズ統計学の考え方が基本となっており、ベイズ統計の考え方なしでは、カルマンフィルタ を使いこなすことはできません。
ここではベイズ統計についてじっくり取り組みます。カルマンフィルタ に必要な事前知識で最も重要なパートになるので、じっくり腰を据えて取り組んでいきましょう。
- ベイズ統計とは?従来の統計学との違い
- 最尤推定とMAP推定の違い
- ベイズ学習とベイズ推論
- (理解の確認)正規分布でベイズ推論する
- (理解の確認)ポアソン分布でベイズ推論する
- 多変量ガウス分布でベイズ推論する
ステップ4: カルマンフィルタ を理解する
いよいよ、カルマンフィルタ の話題に入っていきます。
ここまでカルマンフィルタ の導出に必要な数学や知識は揃えてきたので、ここまでの内容が理解できていればかなりスムーズに理解することができるはずです。
- カルマンフィルタ を導出する
- カルマンフィルタ の学習アルゴリズム
ステップ $\infin$: カルマンフィルタ のその先
カルマンフィルタ は登場してから50年ほどたち、カルマンフィルタ を土台とした応用研究が多数なされています。カルマンフィルタ をさらに使いこなすために必要なトピックを紹介します。
- データからカルマンフィルタ のパラメータを決定する
- 粒子フィルタ
- パーティクルフィルタ
- 動的線形モデル(DLM)とカルマンフィルタ の関係
参考文献
今回参考にさせていただいた、資料やホームページ等はこちらに掲載します。