递推最小二乘法与遗忘因子最小二乘法的区别
时间: 2024-12-27 07:18:19 浏览: 4
### 递推最小二乘法与遗忘因子最小二乘法的区别
#### 定义与基本原理
递推最小二乘法 (Recursive Least Squares, RLS) 是一种用于在线估计参数的方法,适用于线性回归模型。RLS 的核心在于通过迭代更新的方式逐步改进对未知参数的估计值。每次接收到新的观测数据时,算法会利用之前累积的信息以及当前的新数据来调整参数估计。
相比之下,遗忘因子最小二乘法 (Forgetting Factor Recursive Least Squares, FF-RLS) 则引入了一个额外的概念——遗忘因子 λ(通常介于 0 和 1 之间)。这个因子的作用是对旧的数据赋予较小权重而更重视最近获得的数据样本。当 λ 接近 1 时,FF-RLS 表现得类似于标准 RLS;然而随着 λ 减小,则意味着系统更加关注近期的历史记录而非远古历史[^3]。
#### 数学表达式对比
对于普通的 RLS 方法而言,其代价函数可以表示为:
\[ J(\theta)=\sum_{i=1}^{n}(y_i-\phi_i^T \cdot \theta)^2 \]
其中 \( y_i \) 是第 i 次测量的结果向量,\( \phi_i \) 是对应的输入特征矩阵的一行,θ代表待估参数向量。
而在 FF-RLS 中,为了体现时间上的加权特性,上述公式变为:
\[ J_\lambda (\theta )=\sum _{k=1}^{t}\lambda ^{(t-k)}(y_k-\varphi _k^\top \theta )^2,\quad t>0; \qquad J_λ(θ)=ε ,\quad t=0 \]
这里加入了指数衰减项 \( \lambda^{(t−k)} \),使得越早之前的误差平方贡献度越低。
#### 应用场景差异
由于 FF-RLS 能够动态调节过去信息的重要性,在处理非平稳过程或存在突变的情况下表现更好。例如在自适应滤波器设计、实时控制系统等领域有着广泛的应用前景。而对于相对稳定的过程来说,常规形式下的 RLS 已经能够提供较为满意的性能,并且计算复杂度更低一些。
```python
import numpy as np
def rls_update(P_prev, K, e, phi):
"""Standard RLS update rule."""
P_next = (P_prev - np.dot(K[:, None], np.dot(phi[None, :], P_prev))) / (1 + np.dot(np.dot(phi.T, P_prev), phi))
return P_next
def ff_rls_update(lambda_, P_prev, K, e, phi):
"""FF-RLS update with forgetting factor lambda_. """
P_next = ((P_prev - np.dot(K[:, None], np.dot(phi[None, :], P_prev)))) * (1/lambda_)
return P_next
```
阅读全文