41
2012/9/8 1 データ同化とフィルタの紹介 2012/9/8 Tokyo.R #26 @xiangze750

Data assim r

  • Upload
    xiangze

  • View
    4.733

  • Download
    1

Embed Size (px)

DESCRIPTION

Data assimilation & filtering in R

Citation preview

Page 1: Data assim r

2012/9/8 1

データ同化とフィルタの紹介

2012/9/8

Tokyo.R #26

@xiangze750

Page 2: Data assim r

2012/9/8 2

Agenda データ同化とは データ同化の応用範囲 状態空間モデル 予測と平滑化 カルマンフィルタ

– sspirパッケージ– いろいろなパッケージ

パーティクルフィルタ

– RcppSMCパッケージ– 非線形力学系とフィルタ

まとめと課題 Reference

Page 3: Data assim r

2012/9/8 3

自己紹介

@xiangze750

LSIメーカー勤務画像圧縮、画像処理

普段使うプログラミング言語

C++, Verilog HDL, Perl, VBA, R

普段使う自然言語

日本語、英語、中国語

Page 4: Data assim r

2012/9/8 4

データ同化(Data Assimilation)とは

ある未知のパラメータを含んだ方程式に基づいたシミュレーションの結果を実際の観測値を用いて補正する

http://www.hzg.de/institute/coastal_research/cosyna/007914/index_0007914.html

http://www.jamstec.go.jp/drc/maps/e/kadai/clm/clm_or_ap4.html

Figure 1. The representation of the NINO3.4 SST (red and blue lines: reproduced, black: observation). Coupled data assimilation (bottom panel) reproduces the state of the 1990's much better than simulation (top panel).

Page 5: Data assim r

2012/9/8 5

データ同化の応用範囲

流体力学的計算(Navier-Stokes 方程式に従う)

– 数値的天気予報– 気候モデル(大気海洋結合モデル、エルニーニョの予測)

– 津波のシミュレーション

– 放射性物質の拡散予測http://www.cs.kyoto-u.ac.jp/wp-content/uploads/2012/06/03ishikawa.pdf

その他

– 遺伝子発現調節モデル予測対象のメカニズム(運動方程式が)ある程度わかっている。未知なパラメータが存在する

Page 6: Data assim r

2012/9/8 6

エルニーニョの予測 海洋研究開発機構と東京大学によるエルニーニョの予測• 大気と海洋の相互作用によって海水温度の深度分布を未知のパラメータとして推定し、予測に取り入れた。

http://www.jamstec.go.jp/j/about/press_release/20100222/http://www.jamstec.go.jp/drc/maps/e/kadai/clm/clm_or_ap4.html

Page 7: Data assim r

2012/9/8 7

遺伝子発現調節モデル

どのようにしてしましまが形成されるのか

– ショウジョウバエの体節形成に関わる遺伝子

http://en.wikipedia.org/wiki/Drosophila_embryogenesis

Page 8: Data assim r

2012/9/8 8

遺伝子発現調節モデル

Modeling and Estimation of Dynamic EGFR Pathwayby Data Assimilation Approach Using Time SeriesProteomic Datahttp://www.jsbi.org/pdfs/journal1/GIW06/GIW06F032.pdfhttp://www.jsbi.org/pdfs/journal1/GIW06/GIW06F032Suppl.html

Page 9: Data assim r

2012/9/8 9

データ同化の種類

樋口知之 編著 データ同化入門 p.14

逐次型 非逐次型代表的手法 アンサンブルカルマンフィルタ 4次元変分法

解 周辺分布 状態ベクトル列の状態ベクトルの事後

数理的観点から 統計的推測 最適化

シミュレーションの規模 中〜小規模 超大規模も可能

使われている領域 すべて 気象、海洋予報

プログラムの実装 プラグイン化可能 エキスパートが最適な最適化手法を実装

High performance computing

スカラー並列計算機向き ベクトル計算器向き

シミュレーションモデルの比較

尤度により可能 困難

今回は逐次型を説明します。

Page 10: Data assim r

2012/9/8 10

状態空間モデル

システムモデル(発展方程式)

– n次元時系列xt=(x0t,x1t,x2t,...,xnt)

– 予測対象(隠れた変数) xt

– モデル内の未知の要素 z (確率変数)

真の発展方程式にはあるが値が未知のためシミュレーションモデルに含むことができない変数を確率変数(システムノイズ)として入れこむ。

一般の場合

線形の場合

Page 11: Data assim r

2012/9/8 11

状態空間モデル

観測モデル– 観測にはノイズがつきもの– 確率変数wtとしてノイズを表現する

システムモデル&観測モデル

真の発展方程式にあってシミュレーションモデルに含めない変数を確率変数(システムノイズ)として入れこむ

2種類のノイズが含まれる

一般の場合

線形の場合

Page 12: Data assim r

2012/9/8 12

グラフィカルモデル

確率変数間の関係を矢印で結んだもの時系列モデルの場合は変数が鎖状に並ぶ(隠れマルコフモデル)

逐次データ同化とは事後分布p(xt|y1:t-1)の推定

確率変数x (隠れ変数)

y 観測された変数

x0 x1

y0 yTyT-1

….

x2 x3 xT-1 xT

Page 13: Data assim r

2012/9/8 13

予測分布と計算法

逐次データ同化とは事後分布p(xt|y1:t-1)の推定

予測分布

フィルタ分布

平滑化分布

x0 x1

y0 ytyt-1

….

x2 x3 xt-1 xt

yTyT-1

….

xT-1 xT

y1

Page 14: Data assim r

2012/9/8 14

予測分布の計算手法

ベイズの定理を用いる

yt-1

xt-1 xt

矢印を逆にたどって分布p(xt|y1:t-1)を推測する。

yt

Page 15: Data assim r

2012/9/8 15

予測分布の計算手法

予測分布

xt-1の導入

条件付き確率の式

Xtとy1:t-1の独立性(グラフでつながっていない)

Page 16: Data assim r

2012/9/8 16

予測分布の計算手法

フィルタ分布

ベイズの定理(yt)

条件付き確率の式(xt)

ytとy1:t-1の独立性(グラフでつながっていない)

Xtの導入

条件付き確率の式(xt,分母)

Page 17: Data assim r

2012/9/8 17

平滑化(smoothing)

xtより将来の一定期間の観測値を用いて推測する– 固定区間平滑化– 固定点平滑化

– 固定ラグ平滑化

• t:t+Lの区間を状態ベクトルとする

Page 18: Data assim r

2012/9/8 18

予測分布の代表的計算法

カルマンフィルタ

– 線形モデル、ガウシアンノイズの場合のみ

アンサンブルカルマンフィルタ

– 非線形、ガウシアンノイズに対応 パーティクル(粒子)フィルタ

– 非線形モデル、非ガウシアンノイズにも対応

Page 19: Data assim r

2012/9/8 19

カルマンフィルタ

線形モデル、ガウシアンノイズの場合平均、分散が積分計算を実行することなく解析的に求まる。

– モデル

– Prediction step

– Update(filter) step

Page 20: Data assim r

2012/9/8 20

カルマンフィルタ

Prediction step

Update(filter) step

Pk xkの共分散行列

Sk ykの共分散行列

Kk カルマン行列(Pk)のupdateで用いられる行列

Page 21: Data assim r

2012/9/8 21

カルマンフィルタ

Prediction stepとUpdate(filter) step

Page 22: Data assim r

2012/9/8 22

カルマンフィルタ

時系列解析との関係

– auto.arma関数の出力に推定されたカルマンフィルタのパラメータが保存されている。

– ARMAモデル

– KalmanLike,KalmanRun, KalmanSmooth,KalmanForecast関数が利用可能

http://www.slideshare.net/hamadakoichi/r-3836773

Page 23: Data assim r

2012/9/8 23

カルマンフィルタ

library( forecast )

tsdisplay( BJsales )

r<-auto.arima(BJsales)

plot( forecast( r, h=10 ) ) #予測値(右図)

r$model #Kalman行列などが表示される。

KalmanForecast(10,r$model) #予測

#特定係数のarmaモデルによるシミュレーション

simr<-armaSim( model=list( ar=c( 0.3, -0.3 ), d=2,ma=c( 0.5, 0.7 ) ), n=200)

#尤度の推定

r2<-KalmanLike(simr,r$model)http://itbc-world.com/R_fm_library/r%E3%81%AE%E7%B5%B1%E8%A8%88%E9%96%A2%E6%95%B0/arima%E3%83%A2%E3%83%87%E3%83%AB/

Page 24: Data assim r

2012/9/8 24

いろいろなカルマンフィルタパッケージ

sspirパッケージ

– 非ガウシアンノイズ(Poisson,二項分布)

– Linear KFASパッケージ

– 非ガウシアンノイズ、Linear

http://hosho.ees.hokudai.ac.jp/~kubo/ce/TimeSeriesData.htmlhttp://www.jstatsoft.org/v16/i01/paper

http://stat-www.berkeley.edu/~brill/Stat248/kalmanfiltering.pdf

Page 25: Data assim r

2012/9/8 25

いろいろなカルマンフィルタパッケージ

相違点

– 平滑化の実装– 非ガウシアンノイズへの対応– 逆行列の計算方法

http://stat-www.berkeley.edu/~brill/Stat248/kalmanfiltering.pdf

Page 26: Data assim r

2012/9/8 26

パーティクルフィルタ

事後確率分布を多数の”粒子”で近似する 利点

– 非ガウシアンノイズ、非線形モデルに対応できる。– 並列化に向いている。

欠点

– 粒子数が少ないと分布をうまく近似できない– 多くの粒子が一カ所に集まる退化と呼ばれる現象が起こる。

応用例物体追跡(ロボットの位置推定など)

Page 27: Data assim r

2012/9/8 27

パーティクルフィルタ

処理の流れ

Page 28: Data assim r

2012/9/8 28

パーティクルフィルタ

処理の流れ

Page 29: Data assim r

2012/9/8 29

パーティクルフィルタ

処理の流れ

Page 30: Data assim r

2012/9/8 30

パーティクルフィルタ

処理の流れ

Page 31: Data assim r

2012/9/8 31

RcppSMC

3種類のモデルのパーティクルフィルタが使用できる(らしい)。

– blockpfGaussianOpt

– Linear

– Nonlinear

sim <- simGaussian(len=250) res <- blockpfGaussianOpt(sim$data,lag=5,plot=TRUE)

http://d.hatena.ne.jp/teramonagi/20120411/1334153387

Page 32: Data assim r

2012/9/8 32

MCMCの実行

パーティクルフィルタはモンテカルロ法の一種と言える。

MCMCpack

– 使用できるモデルは限定されている。

R2winBUGS

– WinBUGS(or OpenBUGS)を呼び出している。 RcppBUGS

– BUGSのc++実装、– http://www.rinfinance.com/agenda/2012/talk/WhitArmstrong.pdf

Page 33: Data assim r

2012/9/8 33

MCMCの実行

RcppBUGSの記述例http://www.rinfinance.com/agenda/2012/talk/WhitArmstrong.pdf

BUGS言語で隠れマルコフモデルを記述するのは大変そう。。。

Page 34: Data assim r

2012/9/8 34

パーティクルフィルタの実施例

モデル Lorenz方程式

Sigma=10, b=8/3 r<=24 固定点Sigma=10, b=8/3 24<r<=300 ストレンジアトラクタSigma=10, b=8/3 r>330 リミットサイクル

Page 35: Data assim r

2012/9/8 35

パーティクルフィルタの実施例

双子実験– 観測値の代わりにシミュレーションを行う。– パーティクルフィルタなどの手法の検証ができる。

データ同化用シミュレーション実験データ取得用のシミュレーション

Yt

Page 36: Data assim r

2012/9/8 36

パーティクルフィルタの実施例

時系列、分布(N=100,r=4,固定点)

https://github.com/xiangze/particlefilter_dynamical

実験データ取得用のシミュレーション データ同化用シミュレーション

Yt

収束している

Page 37: Data assim r

2012/9/8 37

パーティクルフィルタの実施例

時系列、分布(N=100,r=4,固定点)

https://github.com/xiangze/particlefilter_dynamical

実際の値とparticleの平均値との差 particleの分散

収束している

Page 38: Data assim r

2012/9/8 38

パーティクルフィルタの実施例

時系列、分布(N=100,r=28,ストレンジアトラクタ)

https://github.com/xiangze/particlefilter_dynamical

実験データ取得用のシミュレーション データ同化用シミュレーション

Yt

収束している???

Page 39: Data assim r

2012/9/8 39

パーティクルフィルタの実施例

時系列、分布(N=100,r=28,ストレンジアトラクタ)

実際の値とparticleの平均値との差 particleの分散時折particleが大きくばらける場合がある。絶対値が大きい

パーティクルフィルタの性能を高める方法に関しては「データ同化入門」の7章 融合粒子フィルタも参照

Page 40: Data assim r

2012/9/8 40

まとめと課題

データ同化の概念とその応用範囲を紹介した。 逐次データ同化の手法としてカルマンフィルタ、パーティクルフィルタを紹介した。

– カルマンフィルタは複数のパッケージで利用できる。– RではパーティクルフィルタをRcppSMCで利用することが

可能

– 非線形モデルにおけるパーティクルフィルタを実装し動作の確認を試みた。

– 平滑化の実装が課題

Page 41: Data assim r

2012/9/8 41

Reference

ブログ

– http://d.hatena.ne.jp/teramonagi/20120411/1334153387 スライド

– http://www.slideshare.net/horihorio/howtousetimeseries

– http://www.slideshare.net/hamadakoichi/r-3836773 論文

– http://stat-www.berkeley.edu/~brill/Stat248/kalmanfiltering.pdf

– データ同化入門

– 予測に生かす統計モデリングの基本

今回使用したコード

• https://github.com/xiangze/particlefilter_dynamical