RLS递归最小二乘法(Recursive Least Squares)
感谢B站Up 凩子白
的讲解视频, 大多数的RLS算法介绍都是从各种专业领域角度讲解的(比如滤波器等角度), 对于缺乏专业背景的同学入门较难, 本文主要是以上提到的视频的文字化, 加入了自己的一些理解, 也许有一些地方不是那么严谨, 不过希望能帮助其他同学快速了解一下RLS算法的思想。
PRELIMINARIES
最小二乘法
对于样本数据对儿, 其中输入数据向量, 输出样本为; 使用参数为 的模型来拟合数据之间的真实映射关系; 认为模型的输出为的估计值, 满足, 拟合模型满足如下形式
最小二乘法的思路, 就是希望近似模型参数在这个样本输入数据 (以后简记为)上得出的估计值 与ground truth 输出样本数据 之间的差值平方和最小,即
误差对参数 求梯度,
令, 即可求出
注意, 公式中的是样本数据, 将表述为的原因是矩阵不一定是形状,因此不一定有逆矩阵, 而的逆是存在的?
当一次性给出所有样本集合时, 可以通过公式来直接计算出最优的拟合模型参数 , 然而, 在实际应用中, 这种直接计算法并不常见, 主要是因为公式中求逆部分 的计算量大, 在样本数据量大时计算量更是明显增大; 另外, 现实生活中,往往出现样本数据可能也并不是一次性给出, 而是不断给出新的样本数据, 以一种数据流的形式给出样本数据, 例如传感器随时间不断读取信号等, 这种情况下利用公式直接计算最优模型参数 就需要每次进行直接计算, 也是不现实的.
因此, 为了利用最小误差平方和原则, 求解在大样本量, 或者数据流情况下的最优模型参数, 一种方法可以将大样本分成多批次(batch), 计算旧模型在新批次样本上的梯度, 不断进行梯度下降来进行迭代求解(也可以将数据流当做一个个batch来梯度更新); 另一种则是解析的方法, 就是这里提到的递归最小二乘解法(RLS).
本质上, 递归最小二乘法RLS和梯度下降、直接计算法一样, 都是为了求解满足最小误差平方和原则的最优模型参数, 只是在实现方式上有所不同.
递归最小二乘法
如之前提到的, RLS的主要应用场景, 是假设输入样本数据在不断添加新数据, 例如, , 即, 以一种数据流的形式给定样本; 这种情况下最优模型参数也将发生变化, 那么如果使用公式 就必须不断一次次计算逆矩阵, 由于计算逆矩阵非常耗时, 上述的计算方法显然是不实用的, 因此希望找到一种以公式为基础的递归求解新参数的方法, 使得求解出的新模型在当前最新的样本集上仍然满足误差平方和最小原则.
递归最小二乘具体解法
假设, 我们手头已经有了一个在已有样本 上满足最小误差平方和的模型参数 (至于最初的模型参数的获取见下文), 我们希望找到一种递推公式, 能够得到更新数据前后的参数之间的关系, 避免一次次重新计算逆矩阵, 就是RLS算法的主要动机.
对公式 进行分析, 定义 ,则公式可改写为
在发生数据更新后, 新的权重矩阵记为 , 新数据矩阵为 新矩阵 公式可更新为
递推求解矩阵
在更新数据之后, 公式求解新权重矩阵的主要计算量在于求逆部分, 因此先对矩阵进行计算处理, 根据分块矩阵计算,可以得到更新后矩阵 与更新前矩阵 之间的递推公式
在现实中, 新的数据往往比旧数据更有价值, 因此一般为公式添加遗忘因子, 这样越旧的数据在迭代过程中比重就越小, 即
递推求解逆矩阵
公式表明了矩阵与的迭代关系, 但是并不包含对求逆过程的处理, 我们更希望, 能够获得矩阵与 之间的递推关系. 在计算地推关系前, 需要引入如下引理
Theorem 1 : 如果矩阵可以表示为如下形式
则逆矩阵可以表示
将公式,相乘即可证明该引理
对比公式,令 则根据公式计算得到 为
公式计算新的逆矩阵的过程仅仅需要之前的旧的逆矩阵 以及新添加的数据向量即可, 避免了直接求逆, 因此计算复杂度比直接求逆要小很多.
对公式作进一步简化, 令, 定义增益向量 可转变为
需要指出的是, 对公式两侧都右乘向量恰好满足如下关系
这样, 根据公式就得到了旧逆矩阵与更新后逆矩阵 之间的递推关系; 重新表示公式为
递推求
对公式中的向量同样利用分块矩阵计算
添加遗忘因子 ,得到递推公式
递推求
结合公式 ,,,,进行多步推导可以得到
注意其中, 项中, 模型参数是旧模型参数,如果定义 则公式可变形为
这就是RLS的最终计算目标.
关于初始化
RLS主要描述的是一种推理关系, 不断地在原来的旧最优模型参数上进行迭代得到最新模型参数; 那么最初进行迭代时, 需要一个初始的模型参数, 这个模型参数最好是满足最小平方和误差原则; 公式(5) 通过以上介绍, 可以改写为
其中, 可通过已有样本计算得出, 初始的 一般取
同时, 初始取一个较大的数(保证不会在递归过程中减小为负).
总结
RLS主要是在误差平方和最小的原则基础上, 提出一种解析的拟合模型参数的迭代递推公式; 可以实现在新的样本数据到来时, 利用新的样本数据以及旧的最优模型参数来便捷地计算新的满足最小二乘最优模型参数, 从而避免直接计算方法中的逆矩阵运算.
参考
[1] [知识梳理-04] Recursive Least Squares 递归最小二乘法 RLS_哔哩哔哩_bilibili
[2] 线性回归与递归最小二乘算法 (R.L.S algorithm) – 简书 (jianshu.com)
[3] 还有一个忘记了
文章出处登录后可见!