線形制御系設計

    線形システムの表現
    線形システムの特性解析
    制御器設計
    観測器設計
    離散時間システム

    モーションコントロール

    加速度制御
    剛体の姿勢制御

    モータドライブ

    駆動制御法
    磁極位置推定法

    システム同定

    ホワイトボックスモデル
    パラメトリックモデル

逐次最小二乗法によるパラメータ同定

一括最小二乗法では用意したデータセットに対してパラメータ推定を行ったが,これを逐次的に実行することができる。 また,忘却係数を導入すれば,古いデータへの適応を防ぎ,状況に合わせたフィッティングが可能となる。

問題定義

目的変数,説明変数,パラメータをそれぞれ yR, ϕRn, θRny\in\mathbb{R},\ \bm{\phi}\in\mathbb{R}^{\rm n},\ \bm{\theta}\in\mathbb{R}^{\rm n}とし,目的変数の決定に関して以下の線形回帰モデルを仮定する。
y^=θTϕ\begin{align} \hat{y} &= \bm{\theta}^{\mathrm T}\bm{\phi} \end{align}
ただし,上添字 ^\hat{} は推定値であることを表す。

逐次最小二乗法

目的変数と説明変数が N\rm N セット取得できたとして,最小二乗法の評価関数を θ\bm{\theta} の関数として次のように定める。逐次最小二乗法を行うことを前提として,多重共線性を緩和するために正規化項を導入した (リッジ回帰)。
JN(θ)=1N k=1N(y[k]θTϕ[k])2+αθ2\begin{align} J_{\rm N}(\bm{\theta}) &= \frac{1}{\rm N}\sum^{\rm N}_{\ k= 1} \left(y[{\rm k}] - \bm{\theta}^{\mathrm T}\bm{\phi}[{\rm k}] \right)^2 + \alpha\bm{\theta}^2 \end{align}
与えられたデータセット数が N\rm N の場合の推定パラメータを θ^[N]\hat{\bm{\theta}}[{\rm N}] とすると,次のように求められる。
θ^[N]=arg minθJN(θ)=( k=1Nϕ[k]ϕT[k]+αI)1 k=1Nϕ[k]y[k]\begin{align} \hat{\bm{\theta}}[{\rm N}] &= \argmin_{\bm{\theta}} J_{\rm N}(\bm{\theta})\\ &= \left(\sum^{\rm N}_{\ k= 1}\bm{\phi}[{\rm k}]\bm{\phi}^{\mathrm T}[{\rm k}] + \alpha\bm{I} \right)^{-1}\sum^{\rm N}_{\ k= 1}\bm{\phi}[{\rm k}]y[{\rm k}] \end{align}
これを簡潔に表記するために,以下の表現を導入する。
θ^[N]=P[N]γ[N]P[N]=( k=1Nϕ[k]ϕT[k]+αI)1γ[N]= k=1Nϕ[k]y[k]\begin{align} \hat{\bm{\theta}}[{\rm N}] &= \bm{P}[{\rm N}]\bm{\gamma}[{\rm N}]\\ \bm{P}[{\rm N}] &= \left(\sum^{\rm N}_{\ k= 1}\bm{\phi}[{\rm k}]\bm{\phi}^{\mathrm T}[{\rm k}] + \alpha\bm{I}\right)^{-1}\\ \bm{\gamma}[{\rm N}] &= \sum^{\rm N}_{\ k= 1}\bm{\phi}[{\rm k}]y[{\rm k}] \end{align}
ここで,データセットが1つ追加されたとすると,推定パラメータは次のように遷移する。
θ^[N+1]=P[N+1]γ[N+1]P[N+1]=(P1[N]+ϕ[N+1]ϕT[N+1])1γ[N+1]=γ[N]+ϕ[k+1]y[N+1]=P1[N]θ^[N]+ϕ[k+1]y[N+1]=(P1[N+1]ϕ[N+1]ϕT[N+1])θ^[N]+ϕ[k+1]y[N+1]=P1[N+1]θ^[N]+ϕ[N+1](y[N+1]ϕT[N+1]θ^[N])\begin{align} \hat{\bm{\theta}}[{\rm N}+1] &= \bm{P}[{\rm N}+1]\bm{\gamma}[{\rm N}+1]\\ \bm{P}[{\rm N}+1] &= \left(\bm{P}^{-1}[{\rm N}] + \bm{\phi}[{\rm N}+1]\bm{\phi}^{\mathrm T}[{\rm N}+1] \right)^{-1}\\ \bm{\gamma}[{\rm N}+1] &= \bm{\gamma}[{\rm N}] + \bm{\phi}[{\rm k}+1]y[{\rm N}+1] \\ &= \bm{P}^{-1}[{\rm N}]\hat{\bm{\theta}}[{\rm N}] + \bm{\phi}[{\rm k}+1]y[{\rm N}+1] \\ &= \left(\bm{P}^{-1}[{\rm N}+1]-\bm{\phi}[{\rm N}+1]\bm{\phi}^{\mathrm T}[{\rm N}+1]\right)\hat{\bm{\theta}}[{\rm N}] + \bm{\phi}[{\rm k}+1]y[{\rm N}+1]\\ &= \bm{P}^{-1}[{\rm N}+1]\hat{\bm{\theta}}[{\rm N}] + \bm{\phi}[{\rm N}+1]\left(y[{\rm N}+1]-\bm{\phi}^{\mathrm T}[{\rm N}+1]\hat{\bm{\theta}}[{\rm N}]\right) \end{align}
P\bm{P} について,逆行列補題を用いることで以下のように変形できる。
P[N+1]=P[N]P[N]ϕ[N+1](1+ϕT[N+1]P[N]ϕ[N+1])1ϕT[N+1]P[N]\begin{align} \bm{P}[{\rm N}+1] &= \bm{P}[{\rm N}] - \bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\left(1 + \bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\right)^{-1}\bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}] \\ \end{align}
γ\bm{\gamma} について,前回までのデータセットから得た推定パラメータと現時点での説明変数を使用して予測した際の予測誤差 ε\varepsilon 導入し,整理する。
y^[N+1]=θ^T[N]ϕ[N+1]=ϕT[N+1]θ^[N]ε[N+1]y[N+1]y^[N+1]=y[N+1]ϕT[N+1]θ^[N]γ[N+1]=P1[N+1]θ^[N]+ϕ[N+1]ε[N+1]\begin{align} \hat{y}[{\rm N}+1] &= \hat{\bm{\theta}}^{\mathrm T}[{\rm N}]\bm{\phi}[{\rm N}+1] = \bm{\phi}^{\mathrm T}[{\rm N}+1]\hat{\bm{\theta}}[{\rm N}]\\ \varepsilon[{\rm N}+1] &\equiv y[{\rm N}+1]-\hat{y}[{\rm N}+1]\\ &= y[{\rm N}+1]-\bm{\phi}^{\mathrm T}[{\rm N}+1]\hat{\bm{\theta}}[{\rm N}] \\ \bm{\gamma}[{\rm N}+1] &= \bm{P}^{-1}[{\rm N}+1]\hat{\bm{\theta}}[{\rm N}] + \bm{\phi}[{\rm N}+1]\varepsilon[{\rm N}+1] \end{align}
これを整理すると,以下のようになる。
θ^[N+1]=P[N+1](P1[N+1]θ^[N]+ϕ[N+1]ε[N+1])=θ^[N]+P[N+1]ϕ[N+1]ε[N+1]=θ^[N]+K[N+1]ε[N+1]\begin{align} \hat{\bm{\theta}}[{\rm N}+1] &= \bm{P}[{\rm N}+1]\left( \bm{P}^{-1}[{\rm N}+1]\hat{\bm{\theta}}[{\rm N}] + \bm{\phi}[{\rm N}+1]\varepsilon[{\rm N}+1] \right)\\ &=\hat{\bm{\theta}}[{\rm N}] + \bm{P}[{\rm N}+1]\bm{\phi}[{\rm N}+1]\varepsilon[{\rm N}+1]\\ &= \hat{\bm{\theta}}[{\rm N}] +\bm{K}[{\rm N}+1]\varepsilon[{\rm N}+1] \end{align}
ただし,K\bm{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\begin{align} \bm{K}[{\rm N}+1]&\equiv\bm{P}[{\rm N}+1]\bm{\phi}[{\rm N}+1] \\ &=\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\left(1 - \left(1 + \bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\right)^{-1}\bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\right) \\ &=\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\left(1 + \bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\right)^{-1} \end{align}
以上より,サンプル毎に推定に必要な処理は以下のようになる。
  1. 説明変数ベクトル ϕ\bm{\phi} を構築する。
  2. 予測誤差 ε\varepsilon と 更新ゲイン K\bm{K} を計算する。
  3. 推定パラメータ θ^\hat{\bm{\theta}} と共分散行列の逆行列 P\bm{P}を更新する。

忘却機能付き逐次最小二乗法

過去のデータへの適応を防ぐため,評価関数に忘却係数 λ(0,1)\lambda\in(0, 1) を導入する。
JN(θ)=1N k=1NλNk(y[k]θTϕ[k])2+αλθ2\begin{align} J_{\rm N}(\bm{\theta}) &= \frac{1}{\rm N}\sum^{\rm N}_{\ k= 1} \lambda^{{\rm N}-k}\left(y[{\rm k}] - \bm{\theta}^{\mathrm T}\bm{\phi}[{\rm k}] \right)^2 + \alpha\lambda\bm{\theta}^2 \end{align}
この評価関数を最小化するパラメータは以下のように求められる。
θ^[N]=arg minθJN(θ)=P[N]γ[N]P[N]=( k=1NλNkϕ[k]ϕT[k]+αλI)1γ[N]= k=1NλNkϕ[k]y[k]\begin{align} \hat{\bm{\theta}}[{\rm N}] &= \argmin_{\bm{\theta}} J_{\rm N}(\bm{\theta}) = \bm{P}[{\rm N}]\bm{\gamma}[{\rm N}]\\ \bm{P}[{\rm N}] &= \left(\sum^{\rm N}_{\ k= 1}\lambda^{{\rm N}-k}\bm{\phi}[{\rm k}]\bm{\phi}^{\mathrm T}[{\rm k}] + \alpha\lambda\bm{I}\right)^{-1}\\ \bm{\gamma}[{\rm N}] &= \sum^{\rm N}_{\ k= 1}\lambda^{{\rm N}-k}\bm{\phi}[{\rm k}]y[{\rm k}] \end{align}
ここで,データセットが1つ追加されたとすると各パラメータは次のように遷移する。
P[N+1]=(λP1[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+1]=λγ[N]+ϕ[k+1]y[N+1]=λP1[N]θ^[N]+ϕ[k+1]y[N+1]=λ{1λ(P1[N+1]ϕ[N+1]ϕT[N+1])}θ^[N]+ϕ[k+1]y[N+1]=P1[N+1]θ^[N]+ϕ[N+1](y[N+1]ϕT[N+1]θ^[N])=P1[N+1]θ^[N]+ϕ[N+1]ε[N+1]\begin{align} \bm{P}[{\rm N}+1] &= \left(\lambda\bm{P}^{-1}[{\rm N}] + \bm{\phi}[{\rm N}+1]\bm{\phi}^{\mathrm T}[{\rm N}+1] \right)^{-1}\\ &=\lambda^{-1}\bm{P}[{\rm N}] - \lambda^{-1}\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\left(1 + \bm{\phi}^{\mathrm T}[{\rm N}+1]\lambda^{-1}\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\right)^{-1}\bm{\phi}^{\mathrm T}[{\rm N}+1]\lambda^{-1}\bm{P}[{\rm N}] \\ &=\lambda^{-1}\left\{\bm{P}[{\rm N}] - \bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\left(\lambda + \bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\right)^{-1}\bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}]\right\} \\ \bm{\gamma}[{\rm N}+1] &= \lambda\bm{\gamma}[{\rm N}] + \bm{\phi}[{\rm k}+1]y[{\rm N}+1] \\ &=\lambda\bm{P}^{-1}[{\rm N}]\hat{\bm{\theta}}[{\rm N}] + \bm{\phi}[{\rm k}+1]y[{\rm N}+1] \\ &=\lambda\left\{\frac{1}{\lambda}\left(\bm{P}^{-1}[{\rm N}+1]-\bm{\phi}[{\rm N}+1]\bm{\phi}^{\mathrm T}[{\rm N}+1]\right)\right\}\hat{\bm{\theta}}[{\rm N}] + \bm{\phi}[{\rm k}+1]y[{\rm N}+1]\\ &=\bm{P}^{-1}[{\rm N}+1]\hat{\bm{\theta}}[{\rm N}] + \bm{\phi}[{\rm N}+1]\left(y[{\rm N}+1]-\bm{\phi}^{\mathrm T}[{\rm N}+1]\hat{\bm{\theta}}[{\rm N}]\right)\\ &=\bm{P}^{-1}[{\rm N}+1]\hat{\bm{\theta}}[{\rm N}] + \bm{\phi}[{\rm N}+1]\varepsilon[{\rm N}+1] \end{align}
また,推定パラメータの更新は次のようになる。
θ^[N+1]=P[N+1](P1[N+1]θ^[N]+ϕ[N+1]ε[N+1])=θ^[N]+P[N+1]ϕ[N+1]ε[N+1]=θ^[N]+K[N+1]ε[N+1]\begin{align} \hat{\bm{\theta}}[{\rm N}+1] &= \bm{P}[{\rm N}+1]\left( \bm{P}^{-1}[{\rm N}+1]\hat{\bm{\theta}}[{\rm N}] + \bm{\phi}[{\rm N}+1]\varepsilon[{\rm N}+1] \right)\\ &=\hat{\bm{\theta}}[{\rm N}] + \bm{P}[{\rm N}+1]\bm{\phi}[{\rm N}+1]\varepsilon[{\rm N}+1]\\ &= \hat{\bm{\theta}}[{\rm N}] +\bm{K}[{\rm N}+1]\varepsilon[{\rm N}+1] \end{align}
ただし,更新ゲイン K\bm{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\begin{align} \bm{K}[{\rm N}+1] &\equiv \bm{P}[{\rm N}+1]\bm{\phi}[{\rm N}+1] \\ &=\lambda^{-1}\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\left(1 - \left(\lambda + \bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\right)^{-1}\bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\right) \\ &=\lambda^{-1}\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\left(\lambda + \bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\right)^{-1}\lambda \\ &=\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\left(\lambda + \bm{\phi}^{\mathrm T}[{\rm N}+1]\bm{P}[{\rm N}]\bm{\phi}[{\rm N}+1]\right)^{-1} \end{align}