递推最小二乘RLS推导
批次的最小二乘是给定一批数据比如 {yi∈R,xi∈Rn,i=1,...,N}\{y_i\in\mathbb{R},x_i\in \mathbb{R}^n,i=1,...,N\}{yi∈R,xi∈Rn,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}^NYN∈RN,XNX_NXN 是个 N×nN\times nN×n 的矩阵,每一行对应一个 xiTx_i^TxiT
估计的参数 θ^\hat{\theta}θ^ 越准,则模型的预测值 XNθ^X_N\hat{\theta}XNθ^ 的结果越接近 YNY_NYN,因此我们的目标是最小化估计的误差minimize∣∣YN−XNθ^∣∣2minimize ||Y_N - X_N\hat{\theta}||_2 minimize∣∣YN−XNθ^∣∣2对 θ^\hat{\theta}θ^ 求导XNT(YN−XNθ^)=0XNTYN−XNTXNθ^=0X_N^T(Y_N-X_N\hat{\theta})=0\\ X_N^TY_N-X_N^TX_N\hat{\theta}=0XNT(YN−XNθ^)=0XNTYN−XNTXNθ^=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=θ^t−1+修正量f(yt,xt) 观察公式 (1)(1)(1),需要建立相邻两个时刻之间的关系,首先定义变量 PN−1=(XNTXN)P_N^{-1} = (X_N^TX_N)PN−1=(XNTXN),即(2)PN−1=[x1,x2,...,xN][x1T;x2T;...;xNT]=∑i=1N−1xixiT+xNxNT=PN−1−1+xNxNTP_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)XNTYN=XN−1TYN−1+xNyNX_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=PN(XN−1TYN−1+xNyN)\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=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}θ^t−1=PN−1XN−1TYN−1PN−1−1θ^t−1=XN−1TYN−1(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(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) 可得 PN=(PN−1−1+xNxNT)−1P_N=(P_{N-1}^{-1}+x_Nx_N^T)^{-1}PN=(PN−1−1+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=A−1−A−1B[C−1+DA−1B]−1DA−1
(7)PN=PN−1−PN−1xN[I+xNTPN−1xN]−1xNTPN−1P_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的求解为
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=PN−1−PN−1xN[I+xNTPN−1xN]−1xNTPN−1θ^t=θ^t−1+PNxN(yN−xNTθ^t−1)其中,(yN−xNTθ^t−1)(y_N-x_N^T\hat{\theta}_{t-1})(yN−xNTθ^t−1) 相当于 t−1t-1t−1 时刻的参数用于 ttt 时刻预测时带来的偏差,PNxNP_Nx_NPNxN 相当于修正系数
递推最小二乘RLS推导相关推荐
- 递推最小二乘法RLS公式详细推导
递推最小二乘法RLS公式详细推导 整理递推最小二乘法推导过程自我整理. 递推最小二乘估计(RLS)作为一种估计方式是在最小二乘法(LS)的基础上发展来的. 最小二乘法可以解决的问题是不需要知道先验的概 ...
- 递推最小二乘法RLS:推导
递推最小二乘法RLS:推导 I use RLS as a method for parameter identification. Reference: https://blog.csdn.net/w ...
- 递推最小二乘法RLS的轮胎侧偏刚度估计(原书缺失代码已补全)
目录 1 参数辨识 1.1 最小二乘法 1.2 递推最小二乘法 RLS 1.3 具有遗忘因子 λ 的递推最小二乘法 2 轮胎线性侧偏刚度估计 2.1 RLS 算法分析 2.2 联合仿真平台的设计 ca ...
- VINS-Mono之后端非线性优化 (目标函数中视觉残差和IMU残差,及其对状态量的雅克比矩阵、协方差递推方程的推导)
文章目录 1. 前言 2. 非线性最小二乘 2.1 Guass-Newton 和 Levenberg-Marquardt 2.2 鲁棒核函数下状态量增量方程的构建 3. 局部Bundle Adjust ...
- 递推最小二乘估计Matlab仿真
递推最小二乘估计Matlab仿真 递推最小二乘估计理论 仿真背景 Matlab程序 仿真动图 递推最小二乘估计理论 递推最小二乘是卡尔曼滤波的重要基础,关于最小二乘理论可以参见之前的文章( 最小二乘估 ...
- 递推最小二乘法的推导和理解
递推最小二乘法的推导和理解 最小二乘法 快速回顾最小二乘法的推导 建立误差平方 将其最小化 一种对最小二乘法理解的视角 递推最小二乘法 在线实时预测问题 推导思路与详细过程 将k时刻的表达式写成k-1 ...
- 序贯最小二乘平差 / 递推最小二乘平差 公式推导
文章目录 Part.I 预备知识 Chap.I 基础概念 Chap.II 符号含义 Part.II 递推最小二乘平差原理 Chap.I 递推公式 Chap.II 递推公式推导 Chap.III 一图流 ...
- 基本最小二乘到递推最小二乘
基本最小二乘到递推最小二乘 基本最小二乘(LS) 先导知识: 从函数出发 残差 梳理 推导 基本思想: 开始推导 递推最小二乘法 背景 前N个输入输出数据 开始递推 递推优化 结论 Matlab 示例 ...
- matlab偏差补偿最小二乘,基于偏差补偿递推最小二乘的Hammerstein-Wiener模型辨识
自动化学报 2010年 第1期 第36卷第1期2010年1月 自动化学报 ACTAAUTOMATICASINICA Vol.36,No.1January,2010 基于偏差补偿递推最小二乘的Hamme ...
最新文章
- 《评人工智能如何走向新阶段》后记(再续10)
- Confluence 6 如何配置快速导航的同时查找数量
- 我的一些小想法(聊以一笑……)
- 【Centos】更新为北京时间
- plc模拟器软件_关于PLC虚拟化的思考当下及未来
- 力扣刷题流程-参考别人的经验觉得很有道理的
- 真实的linux系统是怎样的,只使用Linux系统是怎样一种体验?_科技数码通
- ROS机器人程序设计(原书第2版)3.4 设置动态参数
- 使用JavaFX构建反应系统
- 反向传播和梯度下降的区分
- php word 生成图片,使用PHPWord生成word文档
- 团队项目——测试心得
- 微信小游戏飞机大战Cocos Creator+TypeScript
- 解决卡米,安心卸载MIUI预装软件。
- matlab fisher检验,模式识别中Fisher分类器的Matlab实现及测试
- 综合布线施工的技术交底
- Numpy 学习专题(十)—— 大作业
- 入库订单(组合关系、主从表)模型
- 如何计算CRC校验码(循环冗余检验码)
- 治服FME之clipper转换器幺蛾子(出现丢失、多余裁剪结果)
热门文章
- microbit c语言编程软件,Micro:bit系列教程25:自定义Micro:bit软件包
- Tomcat 2022-7-27
- 小明一家过桥,过桥时是黑夜_过桥:如何过渡到软件开发的职业
- Google Deepmind的自杀开关研究或缓解人工智能恐慌
- html文本框后面加一个按钮怎么对齐,怎样对齐文本框和图像(image)按钮实现三点一线...
- sqlmap中的columns哪里看_ROC,AUC 还是看我的吧,别人都千篇一律
- python Word 文档
- linux wifi 源代码,MTK MT7601 WIFI AP linux driver source code - 源码下载|嵌入式/单片机编程|嵌入式Linux|源代码 - 源码中国...
- MySQL的基础学习(四)
- 基于java斗地主设计报告_基于java实现斗地主代码实例解析