机器学习时间序列之LMS和NLMS和RLS和APA
以下手稿属于Principe大佬,我是在硕士时期上的大佬的课
LMS
1.更新方向,梯度下降
的方向。梯度和方向导数
2. 本例中, =>
- 对比
steepest descend
和LMS
- LMS
逐点
更新 - Steepest Descend
期望估计
更新
- 收敛条件
对于本主题,时间序列,时间平稳序列下,LMS效果快且不错。
但是如果是非平稳呢?
我们可以消除平稳的噪音,LMS就会追踪到不平稳的起伏的声音信号:比如人声。
因为,LMS容易最小化平稳信号的误差,可以学到一组权重很好的表征平稳信号,但是一但非平稳,LMS在这个点的误差会突增,你就可以看到weight tracking 过程了。
1. LMS的问题
- 如果,自相关矩阵的特征值差值大,那么就会收敛慢
- 随机梯度下降,会被噪声影响
- 起伏过大
- 依赖输入信号,对信号的信号功率敏感(对比NLMS)
- learning rate需要很小,参考数据的自相关矩阵的特征值分散程度
NLMS
- 目的: 找到
更新步长
,使得w更新变化小
并且依旧能够收敛 - 对要求不高,设置0.1足够,因为自适应调整学习率的更新步伐
- 稳定
RLS
- 首先,
牛顿法
直接指向最小值! - 但是直接计算梯度的期望,费事费力,参考LMS/Newton
- 保证每一步都是最佳更新
- 充分利用了数据信息(R矩阵)
-
LMS/Newton
的需求
- 问题又来了,矩阵怎么计算?如果引入记忆框架呢memory structure(指数框)
一种方法是:recursively 计算
推导如下:
然后加了指数记忆window后,
RLS算法总结
- 每个点进来,和过去的M-1个数据形成向量
- 总之就是不停更新自相关矩阵(),M is order,即参考过去多少个点。
-
更新迭代
APA
- 对于多维输入的一个数据点,可以计算它的自相关矩阵(这是对于整个数据集自相关矩阵的近似),然后得到当前最佳的, 这种做法便是LMS版本。
- APA,考虑为何不用多个样本点近似
R
矩阵?
RLS 需要从0迭代到当前,才能得到当前的最佳近似,也就是考虑过去所有数据。收敛最快!但是复杂度高于APA和LMS。APA可以减少梯度噪声,优于LMS。
APA | RLS |
---|---|
考虑过去的M个点构成的平面输入矩阵U | 需要利用过去所有迭代 |
复杂度较低 | 复杂度较高 |
附录:
为什么牛顿法能够更准?
因为牛顿法考虑了二阶导Hessian矩阵,对于咱们的数据矩阵X来说,他的自相关矩阵就是Hessian矩阵!
因此如下跟新权重: