递推最小二乘RLS推导

批次的最小二乘是给定一批数据比如 { y i ∈ R , x i ∈ R n , i = 1 , . . . , N } \{y_i\in\mathbb{R},x_i\in \mathbb{R}^n,i=1,...,N\} {yiR,xiRn,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 YNRN 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 minimizeYNXNθ^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(YNXNθ^)=0XNTYNXNTXNθ^=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=θ^t1+f(yt,xt) 观察公式 ( 1 ) (1) (1),需要建立相邻两个时刻之间的关系,首先定义变量 P N − 1 = ( X N T X N ) P_N^{-1} = (X_N^TX_N) PN1=(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} PN1=[x1,x2,...,xN][x1T;x2T;...;xNT]=i=1N1xixiT+xNxNT=PN11+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=XN1TYN1+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(XN1TYN1+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} θ^t1=PN1XN1TYN1PN11θ^t1=XN1TYN1(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(PN11θ^t1+xNyN)=PN(PN1xNxNT)θ^t1+PNxNyN=θ^t1+PNxNyNPNxNxNTθ^t1=θ^t1+PN(xNyNxNxNTθ^t1)(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=(PN11+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=A1A1B[C1+DA1B]1DA1

(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=PN1PN1xN[I+xNTPN1xN]1xNTPN1(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=PN1PN1xN[I+xNTPN1xN]1xNTPN1θ^t=θ^t1+PNxN(yNxNTθ^t1)其中, ( y N − x N T θ ^ t − 1 ) (y_N-x_N^T\hat{\theta}_{t-1}) (yNxNTθ^t1) 相当于 t − 1 t-1 t1 时刻的参数用于 t t t 时刻预测时带来的偏差, P N x N P_Nx_N PNxN 相当于修正系数

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值