批次的最小二乘是给定一批数据比如
{
y
i
∈
R
,
x
i
∈
R
n
,
i
=
1
,
.
.
.
,
N
}
\{y_i\in\mathbb{R},x_i\in \mathbb{R}^n,i=1,...,N\}
{yi∈R,xi∈Rn,i=1,...,N},满足
y
i
=
x
i
T
θ
y_i = x_i^T\theta
yi=xiTθ 从而辨识
n
×
1
n \times 1
n×1维参数向量
θ
=
[
θ
1
,
.
.
.
,
θ
n
]
\theta = [\theta_1,...,\theta_n]
θ=[θ1,...,θn]
写成紧凑的形式为
Y
N
=
X
N
θ
Y_N = X_N \theta
YN=XNθ 其中
Y
N
∈
R
N
Y_N\in \mathbb{R}^N
YN∈RN,
X
N
X_N
XN 是个
N
×
n
N\times n
N×n 的矩阵,每一行对应一个
x
i
T
x_i^T
xiT
估计的参数
θ
^
\hat{\theta}
θ^ 越准,则模型的预测值
X
N
θ
^
X_N\hat{\theta}
XNθ^ 的结果越接近
Y
N
Y_N
YN,因此我们的目标是最小化估计的误差
m
i
n
i
m
i
z
e
∣
∣
Y
N
−
X
N
θ
^
∣
∣
2
minimize ||Y_N - X_N\hat{\theta}||_2
minimize∣∣YN−XNθ^∣∣2对
θ
^
\hat{\theta}
θ^ 求导
X
N
T
(
Y
N
−
X
N
θ
^
)
=
0
X
N
T
Y
N
−
X
N
T
X
N
θ
^
=
0
X_N^T(Y_N-X_N\hat{\theta})=0\\ X_N^TY_N-X_N^TX_N\hat{\theta}=0
XNT(YN−XNθ^)=0XNTYN−XNTXNθ^=0 得到
(1)
θ
^
=
(
X
N
T
X
N
)
−
1
X
N
T
Y
N
\hat{\theta} = (X_N^TX_N)^{-1}X_N^TY_N \tag{1}
θ^=(XNTXN)−1XNTYN(1) 也就是说如果在
t
t
t 时刻有了
N
N
N 组数据,我们就可以用
(
1
)
(1)
(1) 来辨识模型参数
θ
^
t
\hat{\theta}_t
θ^t。
那么问题来了,每个时刻会有新的数据进来,都这么一搞也太折腾了,于是有了递推最小二乘,目的在于每步更新模型参数是基于上一时刻的模型参数以及这一时刻的数据进行修正,即
θ
^
t
=
θ
^
t
−
1
+
修
正
量
f
(
y
t
,
x
t
)
\hat{\theta}_t = \hat{\theta}_{t-1} + 修正量f(y_t,x_t)
θ^t=θ^t−1+修正量f(yt,xt) 观察公式
(
1
)
(1)
(1),需要建立相邻两个时刻之间的关系,首先定义变量
P
N
−
1
=
(
X
N
T
X
N
)
P_N^{-1} = (X_N^TX_N)
PN−1=(XNTXN),即
(2)
P
N
−
1
=
[
x
1
,
x
2
,
.
.
.
,
x
N
]
[
x
1
T
;
x
2
T
;
.
.
.
;
x
N
T
]
=
∑
i
=
1
N
−
1
x
i
x
i
T
+
x
N
x
N
T
=
P
N
−
1
−
1
+
x
N
x
N
T
P_N^{-1} = [x_1,x_2,...,x_N][x_1^T;x_2^T;...;x_N^T]\\ =\sum_{i=1}^{N-1}x_ix_i^T+x_Nx_N^T\\ =P_{N-1}^{-1}+x_Nx_N^T\tag{2}
PN−1=[x1,x2,...,xN][x1T;x2T;...;xNT]=i=1∑N−1xixiT+xNxNT=PN−1−1+xNxNT(2)同理
(3)
X
N
T
Y
N
=
X
N
−
1
T
Y
N
−
1
+
x
N
y
N
X_N^TY_N=X_{N-1}^TY_{N-1}+x_Ny_N \tag{3}
XNTYN=XN−1TYN−1+xNyN(3) 利用公式
(
2
)
(
3
)
(2)(3)
(2)(3) 重新梳理公式
(
1
)
(1)
(1)
(4)
θ
^
t
=
P
N
(
X
N
−
1
T
Y
N
−
1
+
x
N
y
N
)
\hat{\theta}_t = P_N(X_{N-1}^TY_{N-1}+x_Ny_N) \tag{4}
θ^t=PN(XN−1TYN−1+xNyN)(4) 利用
(5)
θ
^
t
−
1
=
P
N
−
1
X
N
−
1
T
Y
N
−
1
P
N
−
1
−
1
θ
^
t
−
1
=
X
N
−
1
T
Y
N
−
1
\hat{\theta}_{t-1} = P_{N-1} X_{N-1}^TY_{N-1}\\ P_{N-1}^{-1} \hat{\theta}_{t-1} = X_{N-1}^TY_{N-1} \tag{5}
θ^t−1=PN−1XN−1TYN−1PN−1−1θ^t−1=XN−1TYN−1(5) 将
(
5
)
(5)
(5) 带入
(
4
)
(4)
(4)
(6)
θ
^
t
=
P
N
(
P
N
−
1
−
1
θ
^
t
−
1
+
x
N
y
N
)
=
P
N
(
P
N
−
1
−
x
N
x
N
T
)
θ
^
t
−
1
+
P
N
x
N
y
N
=
θ
^
t
−
1
+
P
N
x
N
y
N
−
P
N
x
N
x
N
T
θ
^
t
−
1
=
θ
^
t
−
1
+
P
N
(
x
N
y
N
−
x
N
x
N
T
θ
^
t
−
1
)
\hat{\theta}_t = P_N(P_{N-1}^{-1} \hat{\theta}_{t-1}+x_Ny_N)\\ =P_N(P_N^{-1}-x_Nx_N^T)\hat{\theta}_{t-1} + P_Nx_Ny_N\\ =\hat{\theta}_{t-1} + P_Nx_Ny_N-P_Nx_Nx_N^T\hat{\theta}_{t-1}\\ =\hat{\theta}_{t-1} + P_N(x_Ny_N-x_Nx_N^T\hat{\theta}_{t-1}) \tag{6}
θ^t=PN(PN−1−1θ^t−1+xNyN)=PN(PN−1−xNxNT)θ^t−1+PNxNyN=θ^t−1+PNxNyN−PNxNxNTθ^t−1=θ^t−1+PN(xNyN−xNxNTθ^t−1)(6)由
(
2
)
(2)
(2) 可得
P
N
=
(
P
N
−
1
−
1
+
x
N
x
N
T
)
−
1
P_N=(P_{N-1}^{-1}+x_Nx_N^T)^{-1}
PN=(PN−1−1+xNxNT)−1根据
矩阵逆引理:
[ A + B C D ] − 1 = A − 1 − A − 1 B [ C − 1 + D A − 1 B ] − 1 D A − 1 [A+BCD]^{-1}=A^{-1}-A^{-1}B[C^{-1}+DA^{-1}B]^{-1}DA^{-1} [A+BCD]−1=A−1−A−1B[C−1+DA−1B]−1DA−1
(7)
P
N
=
P
N
−
1
−
P
N
−
1
x
N
[
I
+
x
N
T
P
N
−
1
x
N
]
−
1
x
N
T
P
N
−
1
P_N=P_{N-1}-P_{N-1}x_N[I+x_N^TP_{N-1}x_N]^{-1}x_N^TP_{N-1} \tag{7}
PN=PN−1−PN−1xN[I+xNTPN−1xN]−1xNTPN−1(7)因此RLS的求解为
P
N
=
P
N
−
1
−
P
N
−
1
x
N
[
I
+
x
N
T
P
N
−
1
x
N
]
−
1
x
N
T
P
N
−
1
θ
^
t
=
θ
^
t
−
1
+
P
N
x
N
(
y
N
−
x
N
T
θ
^
t
−
1
)
P_N=P_{N-1}-P_{N-1}x_N[I+x_N^TP_{N-1}x_N]^{-1}x_N^TP_{N-1}\\ \hat{\theta}_t=\hat{\theta}_{t-1} + P_Nx_N(y_N-x_N^T\hat{\theta}_{t-1})
PN=PN−1−PN−1xN[I+xNTPN−1xN]−1xNTPN−1θ^t=θ^t−1+PNxN(yN−xNTθ^t−1)其中,
(
y
N
−
x
N
T
θ
^
t
−
1
)
(y_N-x_N^T\hat{\theta}_{t-1})
(yN−xNTθ^t−1) 相当于
t
−
1
t-1
t−1 时刻的参数用于
t
t
t 时刻预测时带来的偏差,
P
N
x
N
P_Nx_N
PNxN 相当于修正系数