Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

状態空間モデル

概要

時点ttの観測値YtY_tの系列と、潜在変数である状態StS_tの系列を考える。

  • 状態は状態方程式 St=f(St1,ut)S_t = f(S_{t-1}, u_t) で1期前の状態とノイズutu_tから決まる(ffは任意の関数)

  • 観測値は観測方程式 Yt=g(St,vt)Y_t = g(S_t, v_t) で状態とノイズvtv_tで決まる(ggは任意の関数)

状態空間モデルは状態方程式と観測方程式で構成される

{St=f(St1,ut)Yt=g(St,vt)\begin{cases} S_t = f(S_{t-1}, u_t)\\ Y_t = g(S_t, v_t) \end{cases}

関数f,gf,gが非線形だったりノイズut,vtu_t,v_tが非ガウス分布の状態空間モデルは 一般化状態空間モデル と呼ばれる。

  • 線形ガウス状態空間モデル(動的線形モデル dynamic linear models: DLM) は 計算量が低く、statsmodelsなどのパッケージで容易に計算できる。

  • 一般化状態空間モデルはカルマンフィルタなど「〇〇フィルタ」系の手法やMCMCなどで計算することになり学習には多くの時間を要する

状態について

例えばダイエットしてる人が日々の「体重」YtY_tを測って推移を追っているとする。
体重には体重計の測定誤差vtv_tが関わる。
また「実際の脂肪の量」という状態StS_tもある。こちらは基本的に目には見えない状態

(参考:Stanで体重の推移をみつめてみた(状態空間モデル) – Kosugitti’s BLOG

線形ガウス状態空間モデル

{st=Ttst1+Rtut,utN(0,Qt)yt=Ztst+vt,vtN(0,Ht)\begin{cases} s_t = T_t s_{t-1} + R_t u_t, \quad &u_t \sim N(0, Q_t)\\ y_t = Z_t s_t + v_t, \quad &v_t \sim N(0, H_t) \end{cases}
例:自己回帰モデル

1次の自己回帰モデル

yt=c+ϕ1yt1+wt,wt N(0,σw2)y_t=\mathrm{c}+\phi_1 y_{t-1}+w_t, \quad w_t \sim \mathrm{~N}\left(0, \sigma_w^2\right)

を状態方程式・観測方程式で表すと

st=c+ϕ1st1+wt,wt N(0,σw2)yt=st\begin{aligned} & s_t=\mathrm{c}+\phi_1 s_{t-1}+w_t, \quad w_t \sim \mathrm{~N}\left(0, \sigma_w^2\right) \\ & y_t=s_t \end{aligned}
例:ローカルレベルモデル

ローカルレベルは過程誤差(状態方程式の誤差)と観測誤差をもつシンプルな状態空間モデル

μt=μt1+wt,wtN(0,σw2)yt=μt+vt,vtN(0,σv2)\begin{aligned} \mu_t & =\mu_{t-1} + w_t, & w_t \sim N(0, \sigma_w^2) \\ y_t & =\mu_t+v_t, & v_t \sim N(0, \sigma_v^2) \end{aligned}

状態はホワイトノイズの累積和でありランダム・ウォーク過程。ここに観測誤差を入れているので、別名 ランダムウォーク・プラス・ノイズモデル とも呼ばれる。

statsmodels

Time Series Analysis by State Space Methods statespace - statsmodels

statsmodels.tsa.statespace モジュールにSARIMAXなどが入っている

ディープラーニングベースの状態空間モデル(Deep SSMs)

[2404.09516] State Space Model for New-Generation Network Alternative to Transformers: A Survey

State Space Models

SSMsのうち、DeepSSMsの論文で見かける式

1次元のinput signal x(t)x(t) を N次元のlatent space h(t)h(t)にしたあとに1次元のoutput signal y(y)y(y)に射影する。

h(t)=Ah(t)+Bx(t)y(t)=Ch(t)+Dx(t)h'(t) = A h(t) + B x(t)\\ y(t) =C h(t) + D x(t)

ここでA,B,C,DA,B,C,Dはパラメータであり勾配降下法で学習される。D=0D=0とおいてy(t)=Ch(t)y(t) =C h(t)とするモデルもある。

構造化状態空間モデル(S4)

[2111.00396] Efficiently Modeling Long Sequences with Structured State Spaces

Structured State Space sequence model で S4と呼ばれる

S4は状態空間モデル(SSMs)をRNNとCNNの組み合わせとして扱う

S4の解説