Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
recursiveleastsquares
Search
yuki
December 27, 2020
0
16k
recursiveleastsquares
yuki
December 27, 2020
Tweet
Share
More Decks by yuki
See All by yuki
240315_発表資料_清水.pdf
yuyumoyuyu
2
560
230315_symposium
yuyumoyuyu
1
410
220305_kenkyukai
yuyumoyuyu
2
63
221124_kenkyukai
yuyumoyuyu
0
300
voltageequation5
yuyumoyuyu
0
8.2k
210910_kenkyukai
yuyumoyuyu
0
210
210826_bumontaikai
yuyumoyuyu
0
84
voltageequation4
yuyumoyuyu
9
10k
210518_iemdc
yuyumoyuyu
0
78
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
32
1.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
How GitHub (no longer) Works
holman
310
140k
Navigating Team Friction
lara
183
14k
GitHub's CSS Performance
jonrohan
1030
460k
Fireside Chat
paigeccino
34
3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Faster Mobile Websites
deanohume
305
30k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Transcript
逐次最小二乗法 Recursive Least Squares 大阪府立大学 工学研究科 清水 悠生
2 (復習)最小二乗法で扱う誤差関数 ✓ 誤差関数を誤差の2乗の和とし,誤差関数が最小となる ような係数a, bを計算する方法が最小二乗法 最小二乗法で扱う誤差関数E(a,b) , =
=1 1 2 () − () + 2 aとbの 2変数関数 誤差の2乗 x y i番目のデータ(x(i),y(i)) x(i) y(i) ax(i)+b 回帰直線 y=ax+b 誤差 (残差) n個のデータを仮定
3 時系列データの場合は? ✓ 例えば,ある時刻 t において モータに電圧 v(t) をかけたとき電流 i(t)
が流れたとする ✓ ある一定時間(e.g. t=0,…,n)の電圧と電流の関係から モータの抵抗値やインダクタンスなどを同定したい! ⇒逐次最小二乗法が有効! モータ 電圧 v(t) 電流 i(t) ノイズ
4 時系列データの場合の問題設定 ✓ 時刻 t=i (i=0,1,…)における入出力データ(x(i),y(i))が 得られた場合を仮定する ✓ xとyの関係は比例係数 θ
の比例関係であると仮定 (ただし出力データyにはノイズがのっている) ✓ この θ を最小二乗法で同定する! x y 時刻t=iにおける データ (x(i),y(i)) x(i) y(i) θx(i) 回帰直線 y=θx 誤差e(i) 時刻t=iにおける回帰誤差e(i) () = () − ()
5 時系列データの場合の2つ問題点 ✓ 時系列データを扱う際には下記の2つの問題に注意 ① 求めたい回帰係数(パラメータ)の時刻による変動 ② メモリ(記憶領域)の限界
6 問題①:パラメータの変動 ✓ 求めたい回帰係数(パラメータ)は変動する場合がある ex)抵抗値の温度変化,インダクタンスの磁気飽和etc ✓ パラメータの時間変動にすばやく追従する必要がある! 時刻t 1 までの
データ群 x y 時刻t 1 以降の データ群 回帰直線 y=θx x y 回帰直線 y=θ 1 x 回帰直線 y=θ 2 x 回帰誤差が大きい…? 係数が変化したと 考えると自然!
7 過去のデータをどんどん忘れるように工夫! ✓ 忘却係数λを誤差関数に導入し, 過去のデータの影響を小さくしていく⇒逐次最小二乗法 時刻t=iにおける回帰誤差e(i) () = () −
() 通常の最小二乗法で扱う時刻t=nでの誤差関数E[n] = =0 1 2 2 = 1 2 2 + 1 2 −1 2 + ⋯ + 1 2 0 2 逐次最小二乗法で扱う時刻t=nでの誤差関数E[n] = =0 1 2 − 2 = 1 2 0 2 + 1 2 1 −1 2 + ⋯ + 1 2 0 2 : 忘却係数 (0<<1) 過去のデータになればなるほど 忘却係数の次数が大きくなる (値が小さくなる)
8 問題②:メモリの限界 ✓ 時系列データはシステムが動作している間はずっと 増え続けるため,その全てを記憶することは不可能 時刻t=nでの誤差関数E[n] = =0 1
2 − 2 nが大きくなればなるほど 記憶しておくデータ数が膨大に! ✓ 直近のデータのみを使用して パラメータを計算できることが理想
9 まとめると… ✓ 誤差関数E[n]から求まるパラメータθ[n]に関して 漸化式を作ればよい! = =0 1 2
− 2 の最小化 ⇒ が求められるが, メモリの限界があるためこれは計算できない ⇒ と − 1 の関係を数式化できれば(漸化式を作れば) 直近のデータの計算だけでパラメータが求まる! ✓ この漸化式を導出していきます
10 まずは普通に誤差関数を解いてみる ✓ 誤差関数の最小化により 時刻 t=n におけるパラメータの最適解 θ[n] を求める min
= =0 1 2 − 2 = =0 1 2 − () − () 2 ⇒ = =0 () − []() − −() = − [][] T − = − T + [] T = 0 ⇔ [] = T −1 T ただし,時刻 t=n における各ベクトル・行列は次式のように定義 = (0) ⋮ () , = (0) ⋮ () , = 0 ⋱ (n×n行列) 微分して0 行列で表現 展開 逆行列を左から かける(正則と仮定)
11 目標の再確認 ✓ 時刻 t=n におけるパラメータの最適解 θ[n] と 時刻 t=n-1
におけるパラメータの最適解 θ[n-1] との 関係を表す漸化式を導出することが最終目標 [] = T −1 T [ − 1] = − 1 T − 1 − 1 −1 − 1 T − 1 − 1 両者の関係を数式化する!
12 漸化式の導出(1/3) ✓ θ[n]を変形する = T −1 T = [](スカラ)とおく
= T −1 = =0 − () 2 −1 = =0 −1 − () 2 + 0 () 2 −1 = =0 −1 (−1)− () 2 + () 2 −1 = − 1 −1 + () 2 −1 = − 1 + − 1 () 2 要素の和に変形 t=nの要素を 外に出す 第1項目を n-1で表現
13 漸化式の導出(2/3) ✓ つづき = T −1 T = [](スカラ)とおく
= T = =0 ()−() = =0 −1 ()−() + ()0() = =0 −1 ()(−1)−() + ()() = − 1 + ()() 要素の和に変形 t=nの要素を 外に出す 第1項目を n-1で表現
14 漸化式の導出(3/3) ✓ ついに漸化式が求まる! = T −1 T = =
− 1 + − 1 () 2 − 1 + ()() = − 1 − 1 + − 1 ()() + − 1 () 2 = − 1 + − 1 ()() + − 1 () 2 = − 1 + − 1 () + − 1 () 2 () − − 1 () 前ページの 結果を代入 展開 θ[n-1]を作る 一つ前のパラメータθ[n-1]とt=nのデータだけで θ[n]が導出可能に! ただし,p[n-1]も漸化式から計算しておく必要あり
15 導出した漸化式の解釈 ✓ 完成した漸化式はフィードバック制御のように解釈可能 = − 1 + − 1
() + − 1 () 2 () − − 1 () λで決まるゲイン (誤差をどれだけ 反映するか) 1つ前のパラメータ による予測誤差 1つ前の パラメータ x y t=nのデータ(x(n),y(n)) x(n) y(n) θ[n-1]x(n) 回帰直線 y= θ[n-1]x 予測誤差
16 単回帰から重回帰への拡張 ✓ 複数パラメータ θ 1, θ 2 を同時に同定する場合を考える ✓
回帰誤差は下記の通り 時刻t=iにおける回帰誤差e(i) () = () − 1 1 () − 2 2 () 回帰平面 y=θ 1 x 1 +θ 2 x 2 誤差e(i) 時刻t=iにおけるデータ (x 1 (i), x 2 (i), y(i)) x 1 y x 2 θ 1 x 1 (i)+θ 2 x 2 (i) y(i)
17 まずは誤差関数の最小化 ✓ パラメータ最適解 θ 1 [n],θ 2 [n] を求めると
単回帰の時と同じ解が得られる min = 1 2 − [] T − [] ⇒ = − T − [] = − T + T = ⇔ [] = T −1 T ただし,時刻 t=n における各行列は次式のように定義 = (0) ⋮ () (n×1) , = 1 (0) ⋮ 1 () 2 (0) ⋮ 2 () (n×2) = 1 [] 2 [] (2×1) , = 0 ⋱ (n×n) 微分して0 展開 逆行列を左から かける(正則と仮定)
18 漸化式の導出(1/4) ✓ Θ[n]を変形する [] = T −1 T =
[](2×2)とおく = T −1 = =0 −()T () −1 = =0 −1 (−1)−()T () + 0()T () −1 = − 1 −1 + ()T () −1 () = 1 () 2 () 要素の和に変形 t=nの要素を 外に出す 第1項目を n-1で表現
19 漸化式の導出(2/4) ✓ P[n]のつづき −1 + T −1 = −
T 1 + T = − 1 −1 + ()T () −1 = 1 − 1 − 1 − 1 ()T () 1 − 1 1 + () 1 − 1 ()T = 1 − 1 − − 1 ()T () − 1 + () − 1 ()T = − 1 + () − 1 ()T 公式を適用 : M×Mの正定値行列 : M×1行列 下記の公式を用いる(ひたすら要素計算すると証明できます) 公式に代入して 1/λでくくる 一つにまとめる − 1 () − 1 ()T = − 1 ()T () − 1 最後の変形では下記の関係を用いた(これもひたすら計算です)
20 漸化式の導出(3/4) ✓ つづき = T −1 T = [](2×1行列)とおく
= T = =0 −()T () = =0 −1 (−1)−()T () + 0()T () = − 1 + ()T () 要素の和に変形 t=nの要素を 外に出す 第1項目をn-1で表現
21 漸化式の導出(4/4) ✓ 単回帰と同じ形式の漸化式が導出できる = T −1 T = =
− 1 + () − 1 ()T − 1 + ()T () = − 1 − 1 + − 1 ()T () + () − 1 ()T = − 1 + − 1 ()T () + () − 1 ()T = − 1 + − 1 ()T + () − 1 ()T () − − 1 前ページの 結果を代入 展開 Θ[n-1]を作る λで決まるゲイン 1つ前のパラメータ による予測誤差 1つ前の パラメータ
22 逐次最小二乗法の活用例 ✓ 電圧方程式からIPMSMのインダクタンス等のパラメータを オンラインで同定することが可能 = + − = −
[1] Morimoto et al., “Mechanical Sensorless Drives of IPMSM With Online Parameter Identification,” IEEE Trans. Ind. Appl., vol. 42, no. 5, pp. 1241-1248, 2006 定常状態の電圧方程式(d軸) パラメータΘ X Y