机器学习时间序列之LMS和NLMS和RLS和APA

以下手稿属于Principe大佬,我是在硕士时期上的大佬的课

LMS

w ⃗ k = w ⃗ k − 1 + η x ⃗ ( n ) e ( n ) \vec{w}_k = \vec {w}_{k-1} + \eta \vec x(n)e(n) w k=w k1+ηx (n)e(n)
1.更新方向,梯度下降的方向。梯度和方向导数
2. 本例中, w k ⃗ \vec{w_k} wk => ϵ x k ⃗ \epsilon \vec{x_k} ϵxk
在这里插入图片描述

  • 对比steepest descendLMS
  1. LMS 逐点更新
  2. Steepest Descend期望估计更新
    在这里插入图片描述
  • 收敛条件
    在这里插入图片描述

在这里插入图片描述
对于本主题,时间序列,时间平稳序列下,LMS效果快且不错。
在这里插入图片描述

但是如果是非平稳呢?
我们可以消除平稳的噪音,LMS就会追踪到不平稳的起伏的声音信号:比如人声。

因为,LMS容易最小化平稳信号的误差,可以学到一组权重很好的表征平稳信号,但是一但非平稳,LMS在这个点的误差会突增,你就可以看到weight tracking 过程了。
非平稳

在这里插入图片描述

1. LMS的问题

  1. 如果,自相关矩阵的特征值差值大,那么就会收敛
  2. 随机梯度下降,会被噪声影响
  3. 起伏过大
  4. 依赖输入信号,对信号的信号功率敏感(对比NLMS)
  5. learning rate需要很小,参考数据的自相关矩阵的特征值分散程度

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

NLMS

w ⃗ k = w ⃗ k − 1 + η ∣ ∣ x ⃗ ( n ) ∣ ∣ 2 x ⃗ ( n ) e ( n ) \vec{w}_k = \vec {w}_{k-1} +\frac{\eta}{||\vec x(n)||^2} \vec x(n)e(n) w k=w k1+x (n)2ηx (n)e(n)

  1. 目的: 找到更新步长,使得w更新变化小并且依旧能够收敛
  2. η \eta η要求不高,设置0.1足够,因为自适应调整学习率的更新步伐
  3. 稳定
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

RLS

  1. 首先,牛顿法直接指向最小值!
  2. 但是直接计算梯度的期望,费事费力,参考LMS/Newton
  3. 保证每一步都是最佳更新
  4. 充分利用了数据信息(R矩阵)
  • LMS/Newton的需求
    在这里插入图片描述
  1. 问题又来了, R − 1 R^{-1} R1矩阵怎么计算?如果引入记忆框架呢memory structure(指数框)
    一种方法是:recursively 计算
    在这里插入图片描述
    推导如下:
    在这里插入图片描述
    然后加了指数记忆window后,
    ϵ k + 1 = ∑ l = 0 k α k − l ( d l − w l T x l ) 2 \epsilon_{k+1} = \sum_{l=0}^{k}\alpha ^{k-l}(d_l - w_l^Tx_l)^2 ϵk+1=l=0kαkl(dlwlTxl)2
    在这里插入图片描述
    在这里插入图片描述

RLS算法总结

  1. 每个点进来,和过去的M-1个数据形成向量 x ⃗ k \vec {x}_k x k
  2. R k = ∑ x ⃗ k ⋅ x ⃗ k T R_k=\sum\vec {x}_k \cdot \vec{x}_k^T Rk=x kx kT
  3. 总之就是不停更新自相关矩阵 R k R_k Rk( M × M M\times M M×M),M is order,即参考过去多少个点。
  4. w ⃗ k o p t = R k − 1 P k \vec{w}_{k}^{opt}=R_{k}^{-1}P_{k} w kopt=Rk1Pk更新迭代
    在这里插入图片描述

在这里插入图片描述

APA

  1. 对于多维输入的一个数据点 u ⃗ \bold {\vec{u}} u ,可以计算它的自相关矩阵(这是对于整个数据集自相关矩阵的近似),然后得到当前最佳的 w ⃗ o p t {\vec \bold w_{opt}} w opt, 这种做法便是LMS版本。
  2. APA,考虑为何不用多个样本点近似R矩阵?
    RLS 需要从0迭代到当前,才能得到当前的最佳近似,也就是考虑过去所有数据。收敛最快!但是复杂度高于APA和LMS。APA可以减少梯度噪声,优于LMS。
APARLS
考虑过去的M个点构成的平面输入矩阵U需要利用过去所有迭代
复杂度较低复杂度较高

C o m p l e x i t y : L M S < A P A < R L S Complexity: LMS < APA < RLS Complexity:LMS<APA<RLS
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

附录:

为什么牛顿法能够更准?
因为牛顿法考虑了二阶导Hessian矩阵,对于咱们的数据矩阵X来说,他的自相关矩阵就是Hessian矩阵
因此如下跟新权重:
w ⃗ k + 1 = w ⃗ k − η H − 1 ∇ J ( w ) \vec{w}_{k+1} = \vec{w}_k-\eta H^{-1} \nabla J(w) w k+1=w kηH1J(w)
在这里插入图片描述

参考
在这里插入图片描述

MATLAB LMSNLMSRLS算法是三种常见的自适应滤波器算法,用于估计输入信号的未知系统。它们常用于信号处理、通信系统和智能控制等领域。 LMS算法(最小均方)是一种迭代算法,通过调整滤波器系数以最小化估计误差的均方差。该算法的计算简单,容易实现,但收敛速度较慢。算法的核心是根据参考信号和滤波器的输出误差来更新滤波器系数,以逐渐减小误差。 NLMS算法(非负最小均方)是LMS算法的改进版,通过引入适应性增益因子来改善收敛速度。相对于LMS算法NLMS算法对于输入信号的功率变化有更好的适应能力,可以更快地收敛到最优解。NLMS算法的核心思想是根据参考信号、滤波器系数和输出误差的平方来更新滤波器的系数。 RLS算法(递推最小二乘)是一种递推算法,通过递推方式计算滤波器的系数,以最小化误差的均方差。相对于LMSNLMS算法RLS算法的收敛速度更快,精度更高,但计算复杂度也更高。RLS算法的核心思想是通过引入滑动矩阵来递推计算滤波器系数的更新。 总结来说,LMSNLMSRLS算法是三种常见的自适应滤波器算法,用于估计输入信号的未知系统。LMS算法简单易实现,收敛速度较慢;NLMS算法通过适应性增益因子提高了收敛速度;RLS算法通过递推方式提高了收敛速度和精度,但计算复杂度也更高。选择适合的算法应根据具体需求和系统要求来决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万物琴弦光锥之外

给个0.1,恭喜老板发财

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值