Least Mean Square(LMS) 理论分析及替代矩阵求逆示例

码字不易,请尊重!如想转载,请注明原文出处,感谢配合。

原文地址: https://blog.csdn.net/sinat_26681907/article/details/88065982

 

目录

LMS算法概述:

LMS主要原理:

LMS实现步骤:

LMS替代矩阵求逆示例:


LMS算法概述:

LMSLeast Mean Square),源自LEAST-MEAN-SQUARE ADAPTIVE FILTERS,通过迭代的方式估计出待求参数的最优逼近,常用于滤波。

AX=B为例,A, X分别为已知量,X为未知量。常规的求解方式即 X =A^{-1}B求得精确解(将A看成输入信号,X看作未知系统,B看作输出信号,整个过程即滤波,求X即求滤波函数),考虑到矩阵求逆的计算成本及实现方式受限,我们也可以采取迭代的方式逼近精确解,LMS就是其中的一种方式,将估计出的解带入原方程求得B的估计\hat{B},找到使得(B-\hat{B})^{T}(B-\hat{B})的期望最小的X即为最优逼近,Least Mean Square名字的由来也即如此。

LMS主要原理:

给定初始估计X_{0}沿着误差减小的梯度方向更新X便可不断逼近最优解,如式(1)所示, 

                                                                       X_{i+1}=X_{i}-\mu\bigtriangledown(i)                                                                                            (1)

其中\mu控制算法稳定性收敛速度\bigtriangledown (i)控制收敛方向误差e=B-\hat{B}=B-A\hat{X}, 误差的平方e^{2}为二次型,有极小值,对e^{2}关于X求偏导即为\bigtriangledown (i)的一种表示 :

                                                                         \frac{\partial (e^{2})}{\partial X}=-2eA                                                                                                    (2)

将(2)带入(1)即得LMS的迭代更新准则,

                                                                        X_{i+1}=X_{i}+2\mu A^{H}e_{i}                                                                                         (3)

(注,下标i代表迭代次数i,此处为A^{H}e)而非右乘(eA)主要从迭代过程中X的维数一致考虑,取共轭转置将解空间扩大至复数域)

 

LMS实现步骤:

AX=B为例,A, B分别为已知量,X为未知量。)

步骤 1 确定初始估计X_{0},初始步长\mu , 最大迭代次数,误差精度  ;

步骤 2 X_{i}带入原模型中计算B估计值\hat{B}_{i}A\hat{X}_{i}=\hat{B}_{i}   ;

步骤 3 计算B的真实值与估计值之间的误差e_{i}e_{i}=B-\hat{B}_{i} 及误差平方的均值,E[e^{T}_{i}e_{i}] ;

步骤 4 更新X_{i}X_{i+1} = X_{i}+2\mu A^{H}e_{i}   ;

重复步骤2-4,直到误差精度达到期望范围内或迭代达到最大次数为止。

 

 

注:① 原模型有解;

        \mu的选取需要保证算法稳定和收敛,即,0<\mu<\frac{1}{trace(A^{T}A))}

       ③ 迭代次数依赖初始条件和终止条件。


LMS替代矩阵求逆示例:

                                               A=\begin{bmatrix} 1 & 2 & 3\\ 4 & 5 & 6 \end{bmatrix}                                B = \begin{bmatrix} 14 & 32\\ 32 & 77 \end{bmatrix}

已知A,B利用LMS求X

给定X的初始估计

                                                                           X_{0}=\begin{bmatrix} 0 & 0 \\ 0 & 0 \\ 0 & 0 \end{bmatrix}

                                                           \mu=0.5\times \frac{1}{trace(A'A)}=0.0055

设置最大迭代次数Iter = 1e6,误差精度eps = 1e-6,则迭代772次即可得到满足要求的逼近值

                                                                 \hat{X}=\begin{bmatrix} 1.0036 & 3.9985\\ 2.0005 & 4.9998\\ 2.9974 & 6.0011 \end{bmatrix}

X的精确解为

                                                                        X=\begin{bmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{bmatrix}

优化X的初始估计以及\mu,则可保证迭代次数更少收敛速度更快。实验发现,\mu的选取越接近\frac{1}{trace(A'A))},收敛速度越快,所需的迭代次数越少,当\mu>\frac{1}{trace(A'A))}时,算法发散,无法求得最优逼近。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值