一括最小二乗法では用意したデータセットに対してパラメータ推定を行ったが,これを逐次的に実行することができる。
また,忘却係数を導入すれば,古いデータへの適応を防ぎ,状況に合わせたフィッティングが可能となる。
目的変数,説明変数,パラメータをそれぞれ
y∈R, ϕ∈Rn, θ∈Rnとし,目的変数の決定に関して以下の線形回帰モデルを仮定する。
y^=θTϕ
ただし,上添字
^ は推定値であることを表す。
目的変数と説明変数が
N セット取得できたとして,最小二乗法の評価関数を
θ の関数として次のように定める。逐次最小二乗法を行うことを前提として,多重共線性を緩和するために正規化項を導入した (リッジ回帰)。
JN(θ)=N1 k=1∑N(y[k]−θTϕ[k])2+αθ2
与えられたデータセット数が
N の場合の推定パラメータを
θ^[N] とすると,次のように求められる。
θ^[N]=θargminJN(θ)=( k=1∑Nϕ[k]ϕT[k]+αI)−1 k=1∑Nϕ[k]y[k]
これを簡潔に表記するために,以下の表現を導入する。
θ^[N]P[N]γ[N]=P[N]γ[N]=( k=1∑Nϕ[k]ϕT[k]+αI)−1= k=1∑Nϕ[k]y[k]
ここで,データセットが1つ追加されたとすると,推定パラメータは次のように遷移する。
θ^[N+1]P[N+1]γ[N+1]=P[N+1]γ[N+1]=(P−1[N]+ϕ[N+1]ϕT[N+1])−1=γ[N]+ϕ[k+1]y[N+1]=P−1[N]θ^[N]+ϕ[k+1]y[N+1]=(P−1[N+1]−ϕ[N+1]ϕT[N+1])θ^[N]+ϕ[k+1]y[N+1]=P−1[N+1]θ^[N]+ϕ[N+1](y[N+1]−ϕT[N+1]θ^[N])
P について,逆行列補題を用いることで以下のように変形できる。
P[N+1]=P[N]−P[N]ϕ[N+1](1+ϕT[N+1]P[N]ϕ[N+1])−1ϕT[N+1]P[N]
γ について,前回までのデータセットから得た推定パラメータと現時点での説明変数を使用して予測した際の予測誤差
ε 導入し,整理する。
y^[N+1]ε[N+1]γ[N+1]=θ^T[N]ϕ[N+1]=ϕT[N+1]θ^[N]≡y[N+1]−y^[N+1]=y[N+1]−ϕT[N+1]θ^[N]=P−1[N+1]θ^[N]+ϕ[N+1]ε[N+1]
これを整理すると,以下のようになる。
θ^[N+1]=P[N+1](P−1[N+1]θ^[N]+ϕ[N+1]ε[N+1])=θ^[N]+P[N+1]ϕ[N+1]ε[N+1]=θ^[N]+K[N+1]ε[N+1]
ただし,
K は更新ゲインを表し,次のように計算される。
K[N+1]≡P[N+1]ϕ[N+1]=P[N]ϕ[N+1](1−(1+ϕT[N+1]P[N]ϕ[N+1])−1ϕT[N+1]P[N]ϕ[N+1])=P[N]ϕ[N+1](1+ϕT[N+1]P[N]ϕ[N+1])−1
以上より,サンプル毎に推定に必要な処理は以下のようになる。
- 説明変数ベクトル ϕ を構築する。
- 予測誤差 ε と 更新ゲイン K を計算する。
- 推定パラメータ θ^ と共分散行列の逆行列 Pを更新する。
過去のデータへの適応を防ぐため,評価関数に忘却係数
λ∈(0,1) を導入する。
JN(θ)=N1 k=1∑NλN−k(y[k]−θTϕ[k])2+αλθ2
この評価関数を最小化するパラメータは以下のように求められる。
θ^[N]P[N]γ[N]=θargminJN(θ)=P[N]γ[N]=( k=1∑NλN−kϕ[k]ϕT[k]+αλI)−1= k=1∑NλN−kϕ[k]y[k]
ここで,データセットが1つ追加されたとすると各パラメータは次のように遷移する。
P[N+1]γ[N+1]=(λP−1[N]+ϕ[N+1]ϕT[N+1])−1=λ−1P[N]−λ−1P[N]ϕ[N+1](1+ϕT[N+1]λ−1P[N]ϕ[N+1])−1ϕT[N+1]λ−1P[N]=λ−1{P[N]−P[N]ϕ[N+1](λ+ϕT[N+1]P[N]ϕ[N+1])−1ϕT[N+1]P[N]}=λγ[N]+ϕ[k+1]y[N+1]=λP−1[N]θ^[N]+ϕ[k+1]y[N+1]=λ{λ1(P−1[N+1]−ϕ[N+1]ϕT[N+1])}θ^[N]+ϕ[k+1]y[N+1]=P−1[N+1]θ^[N]+ϕ[N+1](y[N+1]−ϕT[N+1]θ^[N])=P−1[N+1]θ^[N]+ϕ[N+1]ε[N+1]
また,推定パラメータの更新は次のようになる。
θ^[N+1]=P[N+1](P−1[N+1]θ^[N]+ϕ[N+1]ε[N+1])=θ^[N]+P[N+1]ϕ[N+1]ε[N+1]=θ^[N]+K[N+1]ε[N+1]
ただし,更新ゲイン
K は次のように計算される。
K[N+1]≡P[N+1]ϕ[N+1]=λ−1P[N]ϕ[N+1](1−(λ+ϕT[N+1]P[N]ϕ[N+1])−1ϕT[N+1]P[N]ϕ[N+1])=λ−1P[N]ϕ[N+1](λ+ϕT[N+1]P[N]ϕ[N+1])−1λ=P[N]ϕ[N+1](λ+ϕT[N+1]P[N]ϕ[N+1])−1