自适应线性元件模型如图2.5所示。
神经元i的输入信号向量:Xi?[x0i,x1i,?xmi]T,Xi常取?1。 突触权值向量:Wi?[w0i,w1i,?wmi]T w0i常接有单位输入,用以控制阈值电平。 模拟输出:yi?XiTW?WTX 二值输出:qi?Sgn(yi)
x0??1,w0k阈值权w1kx1kw2k模拟输出ykx2kxnkwnk?+1-1二进制输出qkLMS算法?训练信号(期望输出)
图2.5自适应线性元件
m单个神经元具有m个二进制输入,共有2个可能的输入模式,单个神经元具有一个模拟输出和一个二值输出。自适应线性元件的学习算法采用LMS算法。单个神经元只能实现线性可分函数。
假定只有两个输入x1和x2,则自适应线性元件的模拟输出为:
y?x1w1?x2w2?w0
调整临界阈值条件,可令模拟输出为零,即
y?x1w1?x2w2?w0?0
?w0w1x2???x1
w2w2该方程为直线方程,即单个自适应线性元件实现线性可分函数。如图2.6所示,通过学习总是可以得到一条直线将空心小圆和实心小圆划分开来。
29
(-1,1)(1,1)-+(-1,-1)0(1,-1)
图2.6 自适应线性元件的线性可分性图示
用自适应线性元件实现非线性可分函数的方法有两种,一是对神经元施加非线性输入函数,如图2.7所示。
x1x1w1x0?1,w0x12x1x2w11w12w22w2
图2.7自适应非线性元件
?+1-1xx222x222y?w0?x1w1?x1w11?x1x2w12?x2w22?x2w2
若令y = 0 ,上式为曲线方程,即通过选择W,可实现非线性函数,使得自适应线性元
件具有非线性可分性。如图2.8所示,虚线表示的曲线将分别用空心小圆和实心小圆所表示的两类区分开了。
(-1,1)(1,1)0(-1,-1)(1,-1)
图2.8自适应线性元件的非线性可分性
30
另一种实现非线性可分函数的方法是由多个自适应线性元件和AND逻辑器件构成的,所谓MADALINES 网络。如图2.9所示。
x1+1-1AND+1x2-1
图2.9 MADALINES 网络
其原理是实现多个线性函数,对线性不可分区域进行划分。如图2.10所示,两条虚直线将分别用空心小圆和实心小圆所表示的两类区分开了。
(-1,1)(1,1)0(-1,-1)(1,-1)
图2.10 MADALINES 网络实现线性不可分区域的划分
自适应线性元件的学习算法采用LMS算法。
2.3 LMS学习算法
感知器和自适应线性元件在历史上几乎是同时提出的,并且两者在对权值的调整的算法非常相似,它们都是基于纠错学习规则的学习算法。感知器算法存在如下问题:(1)不能推广到一般的前向网络中去;(2)函数不是线性可分时,得不出任何结果。而由美国斯坦福大学的Widrow和Hoff在研究自适应理论时提出的LMS算法,由于其容易实现而很快得到了广泛的应用,成为自适应滤波的标准算法。
设e(n)为在时刻n时的误差信号:
e(n)?d(n)?XT(n)W(n) (2.10)
其中参数的含义如前所述。用采用“瞬时”值均方误差作为代价函数:
31
E(W)?12e(n) 2(2.11)
对(2.10)和(2.11)式两边求关于权值向量W的导数可得:
?E(W)?e(n)?e(n) (2.12) ?W?W?e(n)??X(n) (2.13) ?W从(2.12)和(2.13)式又可得:
?E(W)??X(n)e(n) (2.14) ?W为使误差尽快减小,令权值沿着误差函数负梯度方向改变,即: ?W????E(W)??X(n)e(n) (2.15) ?W这样就可以得到LMS算法调整突触权值的公式:
W(n?1)?W(n)??X(n)e(n)?W(n)??X(n)?d(n)?XT(n)W(n)? (2.16) ??I??X(n)XT(n)?W(n)??X(n)d(n)其中η是学习速率因子,I表示单位矩阵。 LMS算法
第一步:设置变量和参量:
X(n)= [1, x1(n), x2(n), …, xm(n)]为输入向量,或称训练样本; W(n)= [b(n), w1(n), w2(n), …, wm(n)]为权值向量; b(n) 为偏差; y(n)为实际输出; d(n)为期望输出; η为学习速率; n为迭代次数。
第二步:初始化,赋给Wj(0)各一个较小的随机非零值, n = 0;
第三步:对于一组输入样本X(n)= [1, x1(n), x2(n), …, xm(n)]和对应的期望输出d,计算:
e(n)?d(n)?XT(n)W(n)
W(n?1)?W(n)??X(n)e(n)
第四步:判断是否满足条件,若满足算法结束,若不满足将n值增加1,转到第三步重新执
行。
注意:在以上学习算法的第四步需要判断是否满足条件,这里的条件可以是:误差小于
32
我们设定的值ε,即:e(n)?? ;或者是权值的变化已很小,即w(n?1)?w(n)??。另外,在实现过程中还应设定最大的迭代次数,以防止算法万一不收敛时,程序进入死循环。 LMS算法中的学习速率因子η对LMS算法影响较大。当η取比较小的值时,LMS算法的自适应过程就比较慢,LMS算法就记忆了更多的过去数据,从而LMS算法的结果就更加精确。也就是说,LMS算法的运行时间和学习速率因子成反比,或者说,学习速率因子η的倒数就表示了LMS算法的记忆容量。
从LMS算法公式(2.16)可见,LMS算法的稳定性是受输入向量X(n)的统计特性和学习速率因子?的值影响的。若X(n)是来自确知统计特性环境的输入向量,则LMS算法的稳定性就取决于学习速率因子η。
判断LMS算法的收敛性是比较复杂的。为了能从数学上分析LMS算法的收敛性,Widrow于1976年提出了所谓的“不相关理论”(Independence Theory),为此作出以下四点假设: (1) 相继的输入向量X(1), X(2),…是相互不相关的;
(2) 在抽样时刻n,输入向量X(n)与所有的在n以前的期望输出d(1), d(2), …,d(n-1)是
不相关的;
(3) 在抽样时刻n,期望输出d(n)与输入向量X(n)有关,但与所有的在n以前的期望输出
d(1), d(2), …,d(n-1)是不相关的;
(4) 输入向量X(n)与预期响应d(n)均来自符合高斯分布的环境。
根据“不相关理论”和假定学习速率因子η取值足够小,Haykin在1996年说明了LMS算法是按方差收敛的,只要学习速率因子η满足下式:
0???2?max (2.17)
其中λmax是输入向量X(n)自相关矩阵Rx的最大特征值。在LMS算法的实际应用的场合,
λmax并不可知,为此通常使用自相关矩阵Rx的迹tr[Rx]作为λmax的估计值,tr[Rx]是自相关矩阵Rx的对角线元素之和,根据数学知识可知,由于tr[Rx]>λmax,可取η为: 0???2tr?RX? (2.18)
而输入向量的自相关矩阵Rx的每个对角元素就是相应读出输入的均方值,所以(2.18)
又可以写成如下形式:
2 0??? (2.19)
读出输入的均方值之和因此,当学习速率因子η满足(2.19)式时,我们便可判定LMS算法收敛。
另外,一种非正规但简单实用判定LMS算法收敛的方法就是:以迭代次数n为横坐标,以误差信号的均方差E(n)为纵坐标,画出学习曲线,从学习曲线的单调性来判定LMS算法是否收敛。标准的LMS算法学习曲线如图2.11所示。
33