系列データの統計モデリング 〜パーティクルフィルタによる状態推定〜
【概要】
- パーティクルフィルタを利用して系列データのモデリングと状態推定をやってみます
【目次】
はじめに
統計モデリングを行うにあたって、独立同分布(i.i.d; independent and identically distributed)を仮定することが多いと思います。
しかし、i.i.dを仮定できないケースはよくあります。時系列などの系列データが代表的です。また、i.i.dを仮定することが多い対象でも、計測対象や計測装置の経時的な変化(劣化)など本来的には系列を考慮しないといけない場面はあると思います。
系列データの解析について、主に「予測にいかす統計モデリングの基本」を参考に確認しましたので、数回に分けてまとめていこうと思います。なお、状態空間モデル(State Space Model)を使ったモデリングが対象です。私個人的には状態空間モデルでのモデリング経験はあるのですが、平滑化やパラメータ推論あたりなどの理解が曖昧でしたので、このあたりの整理をメインに考えています。
今回は第1回として、状態空間モデルをパーティクルフィルタで推論してみます。
間違いや勘違いなど、なにかありましたら指摘いただけるとすごく助かります。
状態空間モデル
系列データ
以下のデータが与えられ、このデータを基になんらかの統計モデルを設計したいとします。
大きく分けて二通りのアプローチが考えられると思います。
- 回帰モデルの設計
- 時系列データのモデリング
1のアプローチでは、横軸(ここでは時間t)を特徴として、データ全体になんらかの関数を当てはめます。例えば上記データは3次関数のフィッティングができそうな雰囲気を感じます(山が二つあるように見えるので)。このアプローチの場合、の前後関係に依存関係を仮定せず、それぞれのデータは独立であると仮定します。この場合の同時確率は次のようになります。
2のアプローチでは、Yの時間的な依存関係(順番の影響)を仮定し、時間tの値自体には興味を持ちません。この場合の同時確率は次のようになります。
図の横軸が気温などなんらかの量の場合は1のアプローチが効きそうです。しかし時間の場合、「時間」の値はデータのインデックスなども含むので、この値を特徴として使うのは違うはずです。今回は、アプローチ2の時系列データとして統計モデルを設計することを考えます。
系列データのモデリング
アプローチ2を採用することに決めましたが、モデリングを考えていくにあたって、アプローチ1との比較を考えながら進めてみます。
グラフィカルモデルで回帰モデル(アプローチ1)を書いてみると以下のようになります。
ここで、は通常は明示しないですが、パラメータθと特徴量xから決定的に算出される値です。回帰モデルの場合は、に観測ノイズが加わってが観測されるとします。
一方、時系列データなど時間的な依存関係があるデータに対して、次の構造のモデルを考えます。
このようなモデルを「状態空間モデル(State Space Model)」と呼びます。を観測できない内部状態として、に観測ノイズが付加されてが観測されるとします。先の回帰モデルと対比すると、内部状態が独立であるか、時間依存性があるかが違うものと理解できそうです。
上記のグラフィカルモデルから、状態空間モデルを定式化すると次のようになります。
の式は「システムモデル」、のモデルは観測モデルと呼ばれます。なお、内部状態には、過去の状態を含めることができるので、1時刻前の状態に”のみ”依存するというモデルでは無いことに注意です。
この状態空間モデルの同時確率を考えます。
1行目から3行目までは条件付き確立と同時確率の基本的jな性質から展開します。最後の式は上記のグラフィカルモデルに基づいて依存関係がある変数だけを残した結果です。
状態空間モデルの状態推定
これらのモデルから、予測したいものは内部状態であることがわかります。ここではの推論について考えていきます()。
を考えて行くにあたって、事後周辺分布を考えます。ここはあまり詳しく理解できてないのですが、をそのまま扱うよりも計算が楽になるであろうということは想像できます。
事後周辺分布は、の取り方で3種類の事後分布を考えることができます。
(1)は予測分布、(2)はフィルタ分布、(3)は平滑化分布と呼ばれています。平滑化分布については、次回で扱うとして、今回は予測分布とフィルタ分布を考えていきます。
予測分布とフィルタ分布を、確率の基本性質と、グラフィカルモデルを利用して展開すると、以下の図のようになります(手書きでごめんなさい)。この辺りは(全体的にですが)、参考文献[1]に丁寧に書かれているので是非そちらを参照してください。
展開結果を確認すると、予測分布とフィルタ分布は互いに逐次更新していけば良いことがわかります。
パーティクルフィルタ
前章で事後分布の導出をみていきました。しかし、実際にこのモデルを使って推論を行うにあたって、確率分布の表現と積分の計算をどのように実現するのかという問題があります。 ここではこの問題を、パーティクルフィルタ(Particle Filtering)を利用して近似推論していきます。パーティクルフィルタは、粒子フィルタ、モンテカルロフィルタなどとも呼ばれます。 パーティクルフィルタについては、参考文献[1]にも詳しく書かれていますが、[3]では疑似コードなども書かれてますし説明もとてもわかりやすいのでお勧めです。
パーティクルフィルタとは
パーティクルフィルタは、確率分布の表現を確率分布に従って得られたサンプル(パーティクル)の集合として表現します。サンプルによる確率分布表現のイメージとしては、ヒストグラムを思い浮かべてもらえば良いのかなと思います。
パーティクルの集合を使った分布の表現は次のようになります。
- 予測分布()
- フィルタ分布()
ここで、Nはパーティクルの数(ハイパーパラメータ)です。 はi番目の予測パーティクルを示しており、はフィルタパーティクルを表しています。はデルタ関数を表しています。
次に、どのようにして予測パーティクル、フィルタパーティクルを得るかということですが、状態空間モデルとして定義したシステムモデルと観測モデルを利用します。
予測パーティクルは、1時刻前のフィルタ粒子()をシステムモデル()に従って動かします。こうすることで予測パーティクルの集合を得ることができます。(この部分の証明は参考文献[1]に丁寧に書かれているので参考にしてください)
次に、フィルタ分布については、確率の基本性質を利用して展開します。
ここで、について、時刻tの状態は予測パーティクルの集合で表現されています。各パーティクルでフィルタ分布を考えるとつぎのようになります。
ここで、右辺のについて、パーティクルはそれぞれ重みみたいな物は持っておらず全て平等です(ヒストグラムをとるときに、データの重みは同じですよね。同じビン幅の中に何個データがあったかをカウントするわけなので。というイメージを持ってます。)。そのため、ここはとなります。 一方、は、パーティクルの尤度となり、観測モデルに基づいて計算できます。
すると、
となり、[tex:w^{i}t]がi番目のパーティクルの重みとなります。 パーティクルはそれぞれ平等であるため、[tex:w^{i}t]に従って復元抽出することで、フィルタ分布を得ることができます。
パーティクルフィルタのアルゴリズム
以上をアルゴリズムとして表現すると次のようになります。
- 初期分布を適当に設定
- for t in (1,...,T) データ毎に繰り返し
- for i in (1,...,N) パーティクル毎に繰り返し
- , システムモデルに基づいたサンプル
- , 重み付け
- , 重みに基づいた復元抽出
- for i in (1,...,N) パーティクル毎に繰り返し
アルゴリズムとしてはとてもシンプルです。
実装
実際に単純な時系列データの状態推定をしてみます。使うデータは冒頭に示した1次元の時系列データです。
システムモデルは、1時刻前の状態にガウスノイズが付加された物とします。観測ノイズはガウスノイズとします。(こういうモデルを1階差分モデルと呼ぶという理解で良いんですよね?)
はパラメータで、ここでは既知とします(これらのパラメータの推論については次回以降で扱います)。
このモデルに従った実装をgistにて公開していますので、必要な方は参考にしてもらえたらと思います。 ここでは、結果だけを掲載します。
パーティクルの集合がオレンジの線をだいたい覆っていることがわかりますね。
内部で利用しているParticleFilterクラスは次の通りです。
おわりに
ということで、パーティクルフィルタを実装して時系列データの推論をやってみました。
パーティクルフィルタは証明もそんなに複雑じゃなく、実装もシンプルで使いやすいです。こんなにシンプルなのに、実際に使っても強力な印象ですごく面白いアルゴリズムだと思います。(最近使われているのかは、サーベイ不足で知らないですけど)
次は、既知と仮定したパラメータの推論に焦点を当てて行きたいと思います。
参考資料
[1] 樋口(著), 予測にいかす統計モデリングの基本―ベイズ統計入門から応用まで, 講談社, 2011
予測にいかす統計モデリングの基本―ベイズ統計入門から応用まで (KS理工学専門書)
- 作者:樋口 知之
- 発売日: 2011/04/07
- メディア: 単行本
[2] 北川(著), 時系列解析入門, 岩波書店, 2005
[3] Sebastian Thrun(著), Probabilistic Robotics, MIT Press, 2005
Probabilistic Robotics (Intelligent Robotics and Autonomous Agents series)
- 作者:Thrun, Sebastian,Burgard, Wolfram,Fox, Dieter
- 発売日: 2005/08/19
- メディア: ハードカバー