递推最小二乘法RLS公式详细推导
整理递推最小二乘法推导过程自我整理。
递推最小二乘估计(RLS)作为一种估计方式是在最小二乘法(LS)的基础上发展来的。
最小二乘法可以解决的问题是不需要知道先验的概率知识以及观察值的自相关和观察值与估计值之间的互相关等先验条件。
如果各次观察值反映了待估参数的线性组合,即表示成:
y
=
[
x
1
…
x
k
]
[
θ
1
⋮
θ
k
]
y=\left[\begin{array}{lll}x_{1} & \dots & x_{k}\end{array}\right]\left[\begin{array}{l}\theta_{1} \\ \vdots \\ \theta_{k}\end{array}\right]
y=[x1…xk]⎣⎢⎡θ1⋮θk⎦⎥⎤
已知k组观测值y和k组系数x矩阵的分布,来求
θ
\theta
θ的估计。用矩阵的形式来表达为:
[
y
1
⋮
y
k
]
=
[
ϕ
1
T
⋮
ϕ
k
T
]
\left[\begin{array}{c}y_{1} \\ \vdots \\ y_{k}\end{array}\right]=\left[\begin{array}{c}\phi_{1}^{T} \\ \vdots \\ \phi_{k}^{T}\end{array}\right]
⎣⎢⎡y1⋮yk⎦⎥⎤=⎣⎢⎡ϕ1T⋮ϕkT⎦⎥⎤
Φ
k
=
[
ϕ
1
T
⋮
ϕ
k
T
]
∈
R
k
N
n
\Phi_{k}=\left[\begin{array}{c}\phi_{1}^{T} \\ \vdots \\ \phi_{k}^{T}\end{array}\right] \in \mathbb{R}^{k_{N n}}
Φk=⎣⎢⎡ϕ1T⋮ϕkT⎦⎥⎤∈RkNn
Θ
=
[
θ
1
⋮
θ
n
]
∈
R
n
×
1
\Theta=\left[\begin{array}{c}\theta_{1} \\ \vdots \\ \theta_{n}\end{array}\right] \in \mathbb{R}^{n \times 1}
Θ=⎣⎢⎡θ1⋮θn⎦⎥⎤∈Rn×1
令
Φ
k
=
[
ϕ
1
T
⋮
ϕ
k
T
]
∈
R
k
×
n
\Phi_{k}=\left[\begin{array}{c}\phi_{1}^{T} \\ \vdots \\ \phi_{k}^{T}\end{array}\right] \in \mathbb{R}^{k\times\ n}
Φk=⎣⎢⎡ϕ1T⋮ϕkT⎦⎥⎤∈Rk× n
则最小二乘法观测值
Θ
\Theta
Θ的解为
Θ
^
k
=
(
Φ
k
T
Φ
k
)
−
1
Φ
k
T
Y
k
\hat{\Theta}_{k}=\left(\Phi_{k}^{T} \Phi_{k}\right)^{-1} \Phi_{k}^{T} Y_{k}
Θ^k=(ΦkTΦk)−1ΦkTYk
下面推导递推的形式:
令
P
k
−
1
=
Φ
k
T
Φ
k
P_{k}^{-1}=\Phi_{k}^{T} \Phi_{k}
Pk−1=ΦkTΦk
现在讨论
Θ
\Theta
Θ的解的项中的因子
则
P
k
−
1
=
Φ
k
T
Φ
k
=
[
ϕ
1
ϕ
2
⋯
ϕ
k
]
[
ϕ
1
T
ϕ
2
I
⋮
ϕ
k
T
]
=
∑
i
=
1
n
ϕ
i
ϕ
i
T
=
∑
i
=
1
n
−
1
ϕ
i
ϕ
i
T
+
ϕ
k
ϕ
k
T
=
P
k
−
1
−
1
+
ϕ
k
ϕ
k
T
P_{k}^{-1}=\Phi_{k}^{T} \Phi_{k}=\left[\begin{array}{llll}\phi_{1} & \phi_{2} & \cdots & \phi_{k}\end{array}\right]\left[\begin{array}{c}\phi_{1}^{T} \\ \phi_{2}^{I} \\ \vdots \\ \phi_{k}^{T}\end{array}\right]=\sum_{i=1}^{n} \phi_{i} \phi_{i}^{T}=\sum_{i=1}^{n-1} \phi_{i} \phi_{i}^{T}+\phi_{k} \phi_{k}^{T}=P_{k-1}^{-1}+\phi_{k} \phi_{k}^{T}
Pk−1=ΦkTΦk=[ϕ1ϕ2⋯ϕk]⎣⎢⎢⎢⎡ϕ1Tϕ2I⋮ϕkT⎦⎥⎥⎥⎤=∑i=1nϕiϕiT=∑i=1n−1ϕiϕiT+ϕkϕkT=Pk−1−1+ϕkϕkT
Φ
k
T
y
k
=
[
ϕ
1
ϕ
2
⋯
ϕ
k
]
[
y
1
y
2
⋮
y
k
]
=
∑
i
=
1
n
ϕ
i
y
i
=
∑
i
=
1
n
−
1
ϕ
i
y
i
+
ϕ
k
y
k
=
Φ
k
−
1
T
y
k
−
1
+
ϕ
k
y
k
\Phi_{k}^{T} \mathbf{y}_{k}=\left[\begin{array}{llll}\phi_{1} & \phi_{2} & \cdots & \phi_{k}\end{array}\right]\left[\begin{array}{c}y_{1} \\ y_{2} \\ \vdots \\ y_{k}\end{array}\right]=\sum_{i=1}^{n} \phi_{i} y_{i}=\sum_{i=1}^{n-1} \phi_{i} y_{i}+\phi_{k} y_{k}=\Phi_{k-1}^{T} \mathbf{y}_{k-1}+\phi_{k} y_{k}
ΦkTyk=[ϕ1ϕ2⋯ϕk]⎣⎢⎢⎢⎡y1y2⋮yk⎦⎥⎥⎥⎤=∑i=1nϕiyi=∑i=1n−1ϕiyi+ϕkyk=Φk−1Tyk−1+ϕkyk
由以上两式得到:
P
k
−
1
=
P
k
−
1
−
1
+
ϕ
k
ϕ
k
T
P_{k}^{-1}=P_{k-1}^{-1}+\phi_{k} \phi_{k}^{T}
Pk−1=Pk−1−1+ϕkϕkT (1)
Φ
k
r
y
k
=
Φ
k
−
1
T
y
k
−
1
+
ϕ
k
y
k
\Phi_{k}^{r} \mathbf{y}_{k}=\Phi_{k-1}^{T} \mathbf{y}_{k-1}+\phi_{k} y_{k}
Φkryk=Φk−1Tyk−1+ϕkyk (2)
θ
^
k
=
(
Φ
T
Φ
k
)
−
1
Φ
k
T
y
k
=
P
k
Φ
k
T
y
k
=
P
k
(
Φ
k
−
1
T
y
k
−
1
+
ϕ
k
y
k
)
\hat{\theta}_{k}=\left(\Phi^{T} \Phi_{k}\right)^{-1} \Phi_{k}^{T} y_{k}=P_{k} \Phi_{k}^{T} y_{k}=P_{k}\left(\Phi_{k-1}^{T} y_{k-1}+\phi_{k} y_{k}\right)
θ^k=(ΦTΦk)−1ΦkTyk=PkΦkTyk=Pk(Φk−1Tyk−1+ϕkyk) (3)
因为
θ
^
k
−
1
=
P
k
−
1
(
Φ
k
−
1
T
y
k
−
1
)
\hat{\theta}_{k-1}=P_{k-1}\left(\Phi_{k-1}^{T} y_{k-1}\right)
θ^k−1=Pk−1(Φk−1Tyk−1)
所以有
P
k
−
1
θ
^
k
=
Φ
k
T
y
k
P_{k}^{-1} \hat{\theta}_{k}=\Phi_{k}^{\mathrm{T}} \mathbf{y}_{k}
Pk−1θ^k=ΦkTyk(4)
θ
^
k
⟶
3
P
k
(
Φ
k
−
1
T
y
k
−
1
+
ϕ
k
y
k
)
⟶
4
P
k
(
P
k
−
1
−
1
θ
^
k
−
1
+
ϕ
k
y
k
)
\hat{\boldsymbol{\theta}}_{k} \stackrel{3}{\longrightarrow} P_{k}\left(\Phi_{k-1}^{T} y_{k-1}+\phi_{k} y_{k}\right) \stackrel{4}{\longrightarrow} P_{k}\left(P_{k-1}^{-1} \hat{\theta}_{k-1}+\phi_{k} y_{k}\right)
θ^k⟶3Pk(Φk−1Tyk−1+ϕkyk)⟶4Pk(Pk−1−1θ^k−1+ϕkyk)
⟶
1
P
k
(
P
k
−
1
θ
^
k
−
1
−
ϕ
k
ϕ
k
T
θ
^
k
−
1
+
ϕ
k
y
k
)
\stackrel{1}{\longrightarrow} P_{k}\left(P_{k}^{-1} \hat{\theta}_{k-1}-\phi_{k} \phi_{k}^{T} \hat{\theta}_{k-1}+\phi_{k} y_{k}\right)
⟶1Pk(Pk−1θ^k−1−ϕkϕkTθ^k−1+ϕkyk)
=
θ
^
k
−
1
+
P
k
ϕ
k
(
y
k
−
ϕ
k
T
θ
^
k
−
1
)
=
θ
^
k
−
1
+
K
k
ε
=\hat{\theta}_{k-1}+P_{k} \phi_{k}\left(y_{k}-\phi_{k}^{T} \hat{\theta}_{k-1}\right)=\hat{\theta}_{k-1}+K_{k} \varepsilon
=θ^k−1+Pkϕk(yk−ϕkTθ^k−1)=θ^k−1+Kkε
至此可以得到关于估计量
Θ
\Theta
Θ的递推公式:
ε
k
=
y
k
−
ϕ
k
T
θ
^
k
−
1
\varepsilon_{k}=y_{k}-\phi_{k}^{T} \hat{\theta}_{k-1}
εk=yk−ϕkTθ^k−1
θ
^
k
=
θ
^
k
−
1
+
K
k
ε
k
\hat{\theta}_{k}=\hat{\theta}_{k-1}+K_{k} \varepsilon_{k}
θ^k=θ^k−1+Kkεk
K
k
=
P
k
ϕ
k
K_{k}=P_{k} \phi_{k}
Kk=Pkϕk
P
k
=
(
P
k
−
1
−
1
+
ϕ
k
ϕ
k
T
)
−
1
P_{k}=\left(P_{k-1}^{-1}+\phi_{k} \phi_{k}^{T}\right)^{-1}
Pk=(Pk−1−1+ϕkϕkT)−1
此时已经基本得到递推公式了,但最后一个矩阵还需要计算逆矩阵,计算量仍然很大,现在继续做简化
根据化简公式:
[
A
+
B
C
D
]
−
1
=
A
−
1
−
A
−
1
B
[
C
−
1
+
D
A
−
1
R
]
−
1
D
A
−
1
[A+B C D]^{-1}=A^{-1}-A^{-1} B\left[C^{-1}+D A^{-1} R\right]^{-1} D A^{-1}
[A+BCD]−1=A−1−A−1B[C−1+DA−1R]−1DA−1
对于
P
k
=
(
P
k
−
1
−
1
+
ϕ
k
ϕ
k
T
)
−
1
P_{k}=\left(P_{k-1}^{-1}+\phi_{k} \phi_{k}^{T}\right)^{-1}
Pk=(Pk−1−1+ϕkϕkT)−1
A
=
P
k
−
1
−
1
A=P_{k-1}^{-1}
A=Pk−1−1、
B
=
ϕ
k
B=\phi_{k}
B=ϕk、
C
=
1
C=1
C=1、
D
=
ϕ
k
T
D=\phi_{k}^{T}
D=ϕkT代换
得到
P
k
=
(
P
k
−
1
−
1
+
ϕ
k
ϕ
k
T
)
−
1
=
A
−
1
−
A
−
1
B
[
C
−
1
+
D
A
−
1
B
]
−
1
D
A
−
1
P_{k}=\left(P_{k-1}^{-1}+\phi_{k} \phi_{k}^{T}\right)^{-1}=A^{-1}-A^{-1} B\left[C^{-1}+D A^{-1} B\right]^{-1} D A^{-1}
Pk=(Pk−1−1+ϕkϕkT)−1=A−1−A−1B[C−1+DA−1B]−1DA−1
=
P
k
−
1
−
P
k
−
1
ϕ
k
[
1
+
ϕ
k
T
P
k
−
1
ϕ
k
]
−
1
ϕ
k
T
P
k
−
1
=P_{k-1}-P_{k-1} \phi_{k}\left[1+\phi_{k}^{T} P_{k-1} \phi_{k}\right]^{-1} \phi_{k}^{T} P_{k-1}
=Pk−1−Pk−1ϕk[1+ϕkTPk−1ϕk]−1ϕkTPk−1
=
P
k
−
1
−
P
k
−
1
ϕ
k
ϕ
k
T
P
k
−
1
1
+
ϕ
k
T
P
k
−
1
ϕ
k
=P_{k-1}-\frac{P_{k-1} \phi_{k} \phi_{k}^{T} P_{k-1}}{1+\phi_{k}^{T} P_{k-1} \phi_{k}}
=Pk−1−1+ϕkTPk−1ϕkPk−1ϕkϕkTPk−1
参考:
知乎-递推最小二乘推导(RLS)