热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

LMS算法中的期望输出

    最近做线性预测分析了解了下LMS算法,但是其中的期望输出不知道怎么计算,看了很多文章只提了这个是期望输出,怎么得到的却没有解释清楚。LMS(LeastMeanSquare)

    最近做线性预测分析了解了下LMS算法,但是其中的期望输出不知道怎么计算,看了很多文章只提了这个是期望输出,怎么得到的却没有解释清楚。

LMS(Least Mean Square)算法简介

《LMS算法中的期望输出》

如图,LMS大致原理就是利用梯度下降法来调整参数从而减少预测误差e。下面直接上代码,这是大部分文章中出现的代码,一般直接使用变量d(n),但是没有定义。具体可以参考:

https://baike.baidu.com/item/LMS%E7%AE%97%E6%B3%95/3329567?fr=aladdin

%x(n)为输入信号,y(n)为输出信号,d(n)为期望信号,e(n)为误差,e2(n)为误差平方
y(n) = w1(n)*x(n-1)+w2(n)*x(n-2)+x(n); %实际输出
e(n) = d(n)-y(n); %预测误差
w1(n+1) = w1(n)+2*u*e(n)*x(n-1); %更新权重
w2(n+1) = w2(n)+2*u*e(n)*x(n-2); %更新权重
e2(n) = e2(n) + e(n).^2; %误差平方
LMS的期望输出

LMS算法中我们已知的有输入信号x,和预测输出信号y,实际情况下是不知道期望输出的,如果知道了期望输出那么就没有进行滤波的必要了。因此需要用一些方法来估计期望输出,我查阅了一些文献,总结了几种方法如下:

1. 使用延迟后的输入信号作为参考信号d,即d(n) = x(n-i),其中i为延迟量,可正可负(用于自适应预测)

2. 期望信号为信号与噪声之和,即d(n) = x(n) + s(n),其中s(n)为训练时使用的噪声(用于自适应干扰抵消器,需要噪声与输入信号不相关)

3. 直接用输出代替期望信号,即d(n) = x(n)

4. 从x(n)中估计d(n) d(n) = y(n) + v(n),其中v(n) = w(n)–wo ,wo是维纳滤波器的最优权值。

————————————————————————————分割线————————————————————————-

贴一下第4种方法的计算过程:

第一步:将误差改写成矩阵形式

《LMS算法中的期望输出》

第二步:将误差化为d(n)的均值表示形式

《LMS算法中的期望输出》

《LMS算法中的期望输出》

第三步:为了简化上式,定义两个矩阵

《LMS算法中的期望输出》

《LMS算法中的期望输出》

《LMS算法中的期望输出》

第四步:梯度下降求解

《LMS算法中的期望输出》

《LMS算法中的期望输出》

《LMS算法中的期望输出》

第五步:求出最优矩阵wo

《LMS算法中的期望输出》



推荐阅读
author-avatar
意华嘉泰6
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有