递推最小二乘RLS推导

博客介绍了批次最小二乘,通过给定一批数据辨识参数向量,目标是最小化估计误差。但每个时刻有新数据时,批次最小二乘较繁琐,于是引出递推最小二乘,其目的是基于上一时刻模型参数和当前时刻数据修正参数,并给出了递推最小二乘的求解公式。

批次的最小二乘是给定一批数据比如 {yi∈R,xi∈Rn,i=1,...,N}\{y_i\in\mathbb{R},x_i\in \mathbb{R}^n,i=1,...,N\}{yiR,xiRn,i=1,...,N},满足yi=xiTθ y_i = x_i^T\theta yi=xiTθ 从而辨识 n×1n \times 1n×1维参数向量 θ=[θ1,...,θn]\theta = [\theta_1,...,\theta_n]θ=[θ1,...,θn]
写成紧凑的形式为YN=XNθ Y_N = X_N \theta YN=XNθ 其中 YN∈RNY_N\in \mathbb{R}^NYNRNXNX_NXN 是个 N×nN\times nN×n 的矩阵,每一行对应一个 xiTx_i^TxiT
估计的参数 θ^\hat{\theta}θ^ 越准,则模型的预测值 XNθ^X_N\hat{\theta}XNθ^ 的结果越接近 YNY_NYN,因此我们的目标是最小化估计的误差minimize∣∣YN−XNθ^∣∣2 minimize ||Y_N - X_N\hat{\theta}||_2 minimizeYNXNθ^2θ^\hat{\theta}θ^ 求导XNT(YN−XNθ^)=0XNTYN−XNTXNθ^=0 X_N^T(Y_N-X_N\hat{\theta})=0\\ X_N^TY_N-X_N^TX_N\hat{\theta}=0XNT(YNXNθ^)=0XNTYNXNTXNθ^=0 得到 (1)θ^=(XNTXN)−1XNTYN \hat{\theta} = (X_N^TX_N)^{-1}X_N^TY_N \tag{1}θ^=(XNTXN)1XNTYN(1) 也就是说如果在 ttt 时刻有了 NNN 组数据,我们就可以用 (1)(1)(1) 来辨识模型参数 θ^t\hat{\theta}_tθ^t
那么问题来了,每个时刻会有新的数据进来,都这么一搞也太折腾了,于是有了递推最小二乘,目的在于每步更新模型参数是基于上一时刻的模型参数以及这一时刻的数据进行修正,即
θ^t=θ^t−1+修正量f(yt,xt) \hat{\theta}_t = \hat{\theta}_{t-1} + 修正量f(y_t,x_t) θ^t=θ^t1+f(yt,xt) 观察公式 (1)(1)(1),需要建立相邻两个时刻之间的关系,首先定义变量 PN−1=(XNTXN)P_N^{-1} = (X_N^TX_N)PN1=(XNTXN),即(2)PN−1=[x1,x2,...,xN][x1T;x2T;...;xNT]=∑i=1N−1xixiT+xNxNT=PN−1−1+xNxNT 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)XNTYN=XN−1TYN−1+xNyN 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=PN(XN−1TYN−1+xNyN) \hat{\theta}_t = P_N(X_{N-1}^TY_{N-1}+x_Ny_N) \tag{4} θ^t=PN(XN1TYN1+xNyN)(4) 利用 (5)θ^t−1=PN−1XN−1TYN−1PN−1−1θ^t−1=XN−1TYN−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=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) \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) 可得 PN=(PN−1−1+xNxNT)−1 P_N=(P_{N-1}^{-1}+x_Nx_N^T)^{-1}PN=(PN11+xNxNT)1根据

矩阵逆引理:
[A+BCD]−1=A−1−A−1B[C−1+DA−1B]−1DA−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)PN=PN−1−PN−1xN[I+xNTPN−1xN]−1xNTPN−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的求解为
PN=PN−1−PN−1xN[I+xNTPN−1xN]−1xNTPN−1θ^t=θ^t−1+PNxN(yN−xNTθ^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)其中,(yN−xNTθ^t−1)(y_N-x_N^T\hat{\theta}_{t-1})(yNxNTθ^t1) 相当于 t−1t-1t1 时刻的参数用于 ttt 时刻预测时带来的偏差,PNxNP_Nx_NPNxN 相当于修正系数

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值