自适应滤波算法(LMS算法)

1、引言

LMS学习算法是由Widrow和Hoff于1960年提出的,该算法也称为 Δ \Delta Δ规则,该算法与感知器网络的学习算法在权值调整上都基于纠错学习规则,但LMS算法那更容易实现,因此得到了广泛应用。

注意:LMS算法只能训练单层网络,但这并不影响其功能,从理论上讲,多层线性网络并不比单层网络强大,它们具有同样的能力,即对于每一个多层线性网络,都具有一个等效的单层线性网络与之对应。

2、推导过程

定义某次迭代时的误差信号为
(1)

其中n表示迭代次数,d表示期望输出。这里采用均方误差作为评价指标:
(2)

Q为输入训练的样本个数。线性神经网络学习的目标是找到适当的w,使得误差的均方差mse最小。只要用mse对w求偏导,再令该偏导等于零即可求出mse的极值。显然,mse必为正值,因此二次函数是凹向上的,求得的极值必为极小值。

在实际运算中,为了解决权值w维数过高,给计算带来困难的问题,往往是通过调节权值,使mse从空间中的某一点开始,沿着斜面向下滑行,最终达到最小值。滑行的方向是该点最陡下降的方向,即负梯度方向。沿着此方向以适当强度对权值进行修正,就能最终到达最佳权值。

即,在实际的计算中,代价函数常定义为
(3)
对该市两边关于权值向量 w w w求偏导,可得
在这里插入图片描述(4)
根据公式(1),令 e ( n ) e(n) e(n)对权值向量求偏导,有
在这里插入图片描述(5)
综合以上,可得
在这里插入图片描述(6)
因此,根据梯度下降法,权矢量的修正值正比于当前位置上 E ( w ) E(w) E(w)的梯度,权值调整规则为:
在这里插入图片描述(7)

自适应滤波算法(LMS算法)_第1张图片(8)
对公式(8)进一步整理得
自适应滤波算法(LMS算法)_第2张图片(9)

3、LMS算法步骤

(1)定义变量和参数
为方便处理,将偏置 b b b与权值合并:
在这里插入图片描述(10)
相应地,训练样本为
在这里插入图片描述(11)
其中, b ( n ) b(n) b(n)为偏置, d ( n ) d(n) d(n)为期望输出, y ( n ) y(n) y(n)为实际输出, η \eta η为学习率, n n n为迭代次数。
(2)初始化,给向量 w ( n ) w(n) w(n)赋一个较小的随机初值, n = 0 n=0 n=0
(3)输入样本,计算实际输出和误差。根据给定的期望输出,计算,详见公式(1)
(4)调整权值向量。根据上一步计算得到的误差,计算公式(8)
(5)判断算法是否收敛。弱满足收敛条件,则算法结束,否则 n n n自增1.跳转到第3步重新计算。
收敛判断常见3中,1)误差小于某一个事先设定的较小值;2)权值变化已经很小,即 ∣ w ( n + 1 ) − w ( n ) ∣ < δ |w(n+1)-w(n)|<\delta w(n+1)w(n)<δ;3)迭代次数达到上限值N。

注意:学习率 η \eta η不能过大也不能过小,弱学习率过大,则可能导致误差在某个水平上反复振荡,若过小,则会耗时长。

详见书籍《matlab神经网络原理与实例详解》

你可能感兴趣的:(神经网络算法)