RLS递归最小二乘法(Recursive Least Squares)

RLS递归最小二乘法(Recursive Least Squares)

感谢B站Up 凩子白讲解视频, 大多数的RLS算法介绍都是从各种专业领域角度讲解的(比如滤波器等角度), 对于缺乏专业背景的同学入门较难, 本文主要是以上提到的视频的文字化, 加入了自己的一些理解, 也许有一些地方不是那么严谨, 不过希望能帮助其他同学快速了解一下RLS算法的思想。

PRELIMINARIES

最小二乘法

对于样本数据对儿RLS递归最小二乘法(Recursive Least Squares), 其中输入数据向量RLS递归最小二乘法(Recursive Least Squares), 输出样本为RLS递归最小二乘法(Recursive Least Squares); 使用参数为RLS递归最小二乘法(Recursive Least Squares) 的模型来拟合数据RLS递归最小二乘法(Recursive Least Squares)之间的真实映射关系; 认为模型RLS递归最小二乘法(Recursive Least Squares)的输出为RLS递归最小二乘法(Recursive Least Squares)的估计值RLS递归最小二乘法(Recursive Least Squares), 满足RLS递归最小二乘法(Recursive Least Squares), 拟合模型满足如下形式
RLS递归最小二乘法(Recursive Least Squares)
最小二乘法的思路, 就是希望近似模型参数RLS递归最小二乘法(Recursive Least Squares)在这RLS递归最小二乘法(Recursive Least Squares)个样本输入数据RLS递归最小二乘法(Recursive Least Squares) (以后简记为RLS递归最小二乘法(Recursive Least Squares))上得出的估计值RLS递归最小二乘法(Recursive Least Squares) 与ground truth 输出样本数据RLS递归最小二乘法(Recursive Least Squares) 之间的差值平方和最小,即
RLS递归最小二乘法(Recursive Least Squares)
误差RLS递归最小二乘法(Recursive Least Squares)对参数RLS递归最小二乘法(Recursive Least Squares) 求梯度,
RLS递归最小二乘法(Recursive Least Squares)
RLS递归最小二乘法(Recursive Least Squares), 即可求出
RLS递归最小二乘法(Recursive Least Squares)
注意, 公式RLS递归最小二乘法(Recursive Least Squares)中的RLS递归最小二乘法(Recursive Least Squares)是样本数据, 将RLS递归最小二乘法(Recursive Least Squares)表述为RLS递归最小二乘法(Recursive Least Squares)的原因是矩阵RLS递归最小二乘法(Recursive Least Squares)不一定是RLS递归最小二乘法(Recursive Least Squares)形状,因此不一定有逆矩阵, 而RLS递归最小二乘法(Recursive Least Squares)的逆是存在的?

当一次性给出所有样本集合RLS递归最小二乘法(Recursive Least Squares)时, 可以通过公式RLS递归最小二乘法(Recursive Least Squares)来直接计算出最优的拟合模型参数RLS递归最小二乘法(Recursive Least Squares) , 然而, 在实际应用中, 这种直接计算法并不常见, 主要是因为公式中求逆部分RLS递归最小二乘法(Recursive Least Squares) 的计算量大, 在样本数据量大时计算量更是明显增大; 另外, 现实生活中,往往出现样本数据可能也并不是一次性给出, 而是不断给出新的样本数据, 以一种数据流的形式给出样本数据, 例如传感器随时间不断读取信号等, 这种情况下利用公式RLS递归最小二乘法(Recursive Least Squares)直接计算最优模型参数RLS递归最小二乘法(Recursive Least Squares) 就需要每次进行直接计算, 也是不现实的.

因此, 为了利用最小误差平方和原则, 求解在大样本量, 或者数据流情况下的最优模型参数RLS递归最小二乘法(Recursive Least Squares), 一种方法可以将大样本分成多批次(batch), 计算旧模型在新批次样本上的梯度, 不断进行梯度下降来进行迭代求解(也可以将数据流当做一个个batch来梯度更新); 另一种则是解析的方法, 就是这里提到的递归最小二乘解法(RLS).

本质上, 递归最小二乘法RLS和梯度下降、直接计算法一样, 都是为了求解满足最小误差平方和原则的最优模型参数RLS递归最小二乘法(Recursive Least Squares), 只是在实现方式上有所不同.

递归最小二乘法

如之前提到的, RLS的主要应用场景, 是假设输入样本数据RLS递归最小二乘法(Recursive Least Squares)在不断添加新数据, 例如RLS递归最小二乘法(Recursive Least Squares), RLS递归最小二乘法(Recursive Least Squares), 即, 以一种数据流的形式给定样本; 这种情况下最优模型参数也将发生变化RLS递归最小二乘法(Recursive Least Squares), 那么如果使用公式RLS递归最小二乘法(Recursive Least Squares) 就必须不断一次次计算逆矩阵RLS递归最小二乘法(Recursive Least Squares), 由于计算逆矩阵非常耗时, 上述的计算方法显然是不实用的, 因此希望找到一种以公式RLS递归最小二乘法(Recursive Least Squares)为基础的递归求解新参数RLS递归最小二乘法(Recursive Least Squares)的方法, 使得求解出的新模型RLS递归最小二乘法(Recursive Least Squares)在当前最新的样本集RLS递归最小二乘法(Recursive Least Squares)上仍然满足误差平方和最小原则.

递归最小二乘具体解法

假设, 我们手头已经有了一个在已有样本RLS递归最小二乘法(Recursive Least Squares) 上满足最小误差平方和的模型参数RLS递归最小二乘法(Recursive Least Squares) (至于最初的模型参数的获取见下文), 我们希望找到一种递推公式, 能够得到更新数据前后的参数RLS递归最小二乘法(Recursive Least Squares)之间的关系, 避免一次次重新计算逆矩阵RLS递归最小二乘法(Recursive Least Squares), 就是RLS算法的主要动机.

对公式RLS递归最小二乘法(Recursive Least Squares) 进行分析, 定义RLS递归最小二乘法(Recursive Least Squares) ,则公式RLS递归最小二乘法(Recursive Least Squares)可改写为
RLS递归最小二乘法(Recursive Least Squares)
在发生数据更新后, 新的权重矩阵记为RLS递归最小二乘法(Recursive Least Squares) , 新数据矩阵为RLS递归最小二乘法(Recursive Least Squares) 新矩阵RLS递归最小二乘法(Recursive Least Squares) 公式RLS递归最小二乘法(Recursive Least Squares)可更新为
RLS递归最小二乘法(Recursive Least Squares)

递推求解矩阵RLS递归最小二乘法(Recursive Least Squares)

在更新数据之后, 公式RLS递归最小二乘法(Recursive Least Squares)求解新权重矩阵RLS递归最小二乘法(Recursive Least Squares)的主要计算量在于求逆部分RLS递归最小二乘法(Recursive Least Squares), 因此先对矩阵RLS递归最小二乘法(Recursive Least Squares)进行计算处理, 根据分块矩阵计算,可以得到更新后矩阵RLS递归最小二乘法(Recursive Least Squares) 与更新前矩阵RLS递归最小二乘法(Recursive Least Squares) 之间的递推公式
RLS递归最小二乘法(Recursive Least Squares)
在现实中, 新的数据往往比旧数据更有价值, 因此一般为公式RLS递归最小二乘法(Recursive Least Squares)添加遗忘因子RLS递归最小二乘法(Recursive Least Squares), 这样越旧的数据在迭代过程中比重就越小, 即
RLS递归最小二乘法(Recursive Least Squares)

递推求解逆矩阵RLS递归最小二乘法(Recursive Least Squares)

公式RLS递归最小二乘法(Recursive Least Squares)表明了矩阵RLS递归最小二乘法(Recursive Least Squares)RLS递归最小二乘法(Recursive Least Squares)的迭代关系, 但是并不包含对求逆过程的处理, 我们更希望, 能够获得矩阵RLS递归最小二乘法(Recursive Least Squares)RLS递归最小二乘法(Recursive Least Squares) 之间的递推关系. 在计算地推关系前, 需要引入如下引理

Theorem 1 : 如果矩阵RLS递归最小二乘法(Recursive Least Squares)可以表示为如下形式
RLS递归最小二乘法(Recursive Least Squares)
​ 则逆矩阵RLS递归最小二乘法(Recursive Least Squares)可以表示
RLS递归最小二乘法(Recursive Least Squares)
将公式RLS递归最小二乘法(Recursive Least Squares),RLS递归最小二乘法(Recursive Least Squares)相乘即可证明该引理

对比公式RLS递归最小二乘法(Recursive Least Squares),RLS递归最小二乘法(Recursive Least Squares)RLS递归最小二乘法(Recursive Least Squares) 则根据公式RLS递归最小二乘法(Recursive Least Squares)计算得到RLS递归最小二乘法(Recursive Least Squares)
RLS递归最小二乘法(Recursive Least Squares)
公式RLS递归最小二乘法(Recursive Least Squares)计算新的逆矩阵RLS递归最小二乘法(Recursive Least Squares)的过程仅仅需要之前的旧的逆矩阵RLS递归最小二乘法(Recursive Least Squares) 以及新添加的数据向量RLS递归最小二乘法(Recursive Least Squares)即可, 避免了直接求逆, 因此计算复杂度比直接求逆要小很多.

对公式RLS递归最小二乘法(Recursive Least Squares)作进一步简化, 令RLS递归最小二乘法(Recursive Least Squares), 定义增益向量RLS递归最小二乘法(Recursive Least Squares) 可转变为
RLS递归最小二乘法(Recursive Least Squares)
需要指出的是, 对公式RLS递归最小二乘法(Recursive Least Squares)两侧都右乘向量RLS递归最小二乘法(Recursive Least Squares)恰好满足如下关系
RLS递归最小二乘法(Recursive Least Squares)
这样, 根据公式RLS递归最小二乘法(Recursive Least Squares)就得到了旧逆矩阵RLS递归最小二乘法(Recursive Least Squares)与更新后逆矩阵RLS递归最小二乘法(Recursive Least Squares) 之间的递推关系; 重新表示公式RLS递归最小二乘法(Recursive Least Squares)
RLS递归最小二乘法(Recursive Least Squares)

递推求RLS递归最小二乘法(Recursive Least Squares)

对公式RLS递归最小二乘法(Recursive Least Squares)中的向量RLS递归最小二乘法(Recursive Least Squares)同样利用分块矩阵计算
RLS递归最小二乘法(Recursive Least Squares)
添加遗忘因子RLS递归最小二乘法(Recursive Least Squares) ,得到递推公式
RLS递归最小二乘法(Recursive Least Squares)

递推求RLS递归最小二乘法(Recursive Least Squares)

结合公式 RLS递归最小二乘法(Recursive Least Squares),RLS递归最小二乘法(Recursive Least Squares),RLS递归最小二乘法(Recursive Least Squares),RLS递归最小二乘法(Recursive Least Squares),进行多步推导可以得到
RLS递归最小二乘法(Recursive Least Squares)
注意其中, RLS递归最小二乘法(Recursive Least Squares) 项中, 模型参数RLS递归最小二乘法(Recursive Least Squares)是旧模型参数,如果定义RLS递归最小二乘法(Recursive Least Squares) 则公式RLS递归最小二乘法(Recursive Least Squares)可变形为

RLS递归最小二乘法(Recursive Least Squares)
这就是RLS的最终计算目标.

关于初始化

RLS主要描述的是一种推理关系, 不断地在原来的旧最优模型参数上进行迭代得到最新模型参数; 那么最初进行迭代时, 需要一个初始的模型参数, 这个模型参数最好是满足最小平方和误差原则; 公式(5) 通过以上介绍, 可以改写为
RLS递归最小二乘法(Recursive Least Squares)
其中, RLS递归最小二乘法(Recursive Least Squares) 可通过已有样本计算得出, 初始的RLS递归最小二乘法(Recursive Least Squares) 一般取
RLS递归最小二乘法(Recursive Least Squares)
同时, 初始RLS递归最小二乘法(Recursive Least Squares)取一个较大的数(保证RLS递归最小二乘法(Recursive Least Squares)不会在递归过程中减小为负).

总结

RLS主要是在误差平方和最小的原则基础上, 提出一种解析的拟合模型参数RLS递归最小二乘法(Recursive Least Squares)的迭代递推公式; 可以实现在新的样本数据到来时, 利用新的样本数据以及旧的最优模型参数来便捷地计算新的满足最小二乘最优模型参数, 从而避免直接计算方法中的逆矩阵运算.

参考

[1] [知识梳理-04] Recursive Least Squares 递归最小二乘法 RLS_哔哩哔哩_bilibili

[2] 线性回归与递归最小二乘算法 (R.L.S algorithm) – 简书 (jianshu.com)

[3] 还有一个忘记了

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年2月25日 下午7:35
下一篇 2023年2月25日 下午7:38

相关推荐