第五章自适应线性元件 自适应线性元件( Adaptive Linear- lement,简称 Adaline)也是早期神经网络模 型之一,它是由威德罗( Widrow)和霍夫(Hoff)首先提出的。它与感知器的主 要不同之处在于其神经元有一个线性激活函数,这允许输出可以是任意值,而不 仅仅只是像感知器中那样只能取0或1。另外,它采用的是W-H学习法则,也 称最小均方差(LMS)规则对权值进行训练,从而能够得到比感知器更快的收敛速 度和更高的精度。 自适应线性元件的主要用途是线性逼近一个函数式而进行模式联想。另外, 它还适用于信号处理滤波、预测、模型识别和控制。 5.1自适应线性神经元模型和结构 个线性的具有r个输人的自适应线性神经元模型如下图所示。这个神经元 有一个线性激活函数,被称为 Adaline如图5.1(a)所示。和感知器一样,偏差可 以用来作为网络的一个可调参数,提供额外可调的自由变量以获得期望的网络特 性。线性神经元可以训练学习一个与之对应的输入输出的函数关系,或线性逼近 任意一个非线性函数,但它不能产生任何非线性的计算特性。 n p P1 →②”团 P2 这“屠 2"团 (a) Adaline 图5.1自适应线性神经网络的结构 当自适应线性网络由s个神经元相并联形成一层网络,此自适应线性神经网 络又称为 Madaline如图5.1(b所示。 W-H规则仅能够训练单层网络,但这并不是什么严重问题。如前面所述
1 第五章 自适应线性元件 自适应线性元件(Adaptive Linear Element,简称 Adaline)也是早期神经网络模 型之一,它是由威德罗(Widrow)和霍夫(Hoff)首先提出的。它与感知器的主 要不同之处在于其神经元有一个线性激活函数,这允许输出可以是任意值,而不 仅仅只是像感知器中那样只能取 0 或 1。另外,它采用的是 W—H 学习法则,也 称最小均方差(LMS)规则对权值进行训练,从而能够得到比感知器更快的收敛速 度和更高的精度。 自适应线性元件的主要用途是线性逼近一个函数式而进行模式联想。另外, 它还适用于信号处理滤波、预测、模型识别和控制。 5.1 自适应线性神经元模型和结构 一个线性的具有 r 个输人的自适应线性神经元模型如下图所示。这个神经元 有一个线性激活函数,被称为 Adaline 如图 5.1(a)所示。和感知器一样,偏差可 以用来作为网络的一个可调参数,提供额外可调的自由变量以获得期望的网络特 性。线性神经元可以训练学习一个与之对应的输入输出的函数关系,或线性逼近 任意一个非线性函数,但它不能产生任何非线性的计算特性。 图 5. 1 自适应线性神经网络的结构 当自适应线性网络由 s 个神经元相并联形成一层网络,此自适应线性神经网 络又称为 Madallne 如图 5.1(b)所示。 W—H 规则仅能够训练单层网络,但这并不是什么严重问题。如前面所述
单层线性网络与多层线性网络具有同样的能力,即对于每一个多层线性网络,都 具有一个等效的单层线性网络与之对应。在反向传播法产生以后,威德罗又将其 自适应线性网络扩展成多层,甚至将激活函数也扩展成非线性的了。 5.2W一H学习规则 H学习规则是由威德罗和霍夫提出的用来修正权矢量的学习规则,所以 用他们两人姓氏的第一个字母来命名。采用W一H学习规则可以用来训练一定 网络的权值和偏差使之线性地逼近一个函数式而进行模式联想( Pattern Association) 定义一个线性网络的输出误差函数为 E(W,B)=[T-A]=T-WP] (5.1) I(5.1)式可以看出:线性网络具有抛物线型误差函数所形成的误差表面 所以只有一个误差最小值。通过W一H学习规则来计算权值和偏差的变化,并 使网络误差的平方和最小化,总能够训练一个网络的误差趋于这个最小值。另外 很显然,E(W,B)只取决于网络的权值及目标矢量。我们的目的是通过调节权矢 量,使E(W,B达到最小值。所以在给定E(W,B)后,利用W-H学习规则修 正权矢量和偏差矢量,使E(W,B)从误差空间的某一点开始,沿着E(W,B)的 斜面向下滑行。根据梯度下降法,权矢量的修正值正比于当前位置上E(W,B) 的梯度,对于第i个输出节点有 dE wij dw=n[=; lp (52) 或表示为 △w=n △b;=n6 (53) 这里δ定义为第i个输出节点的误差:
2 单层线性网络与多层线性网络具有同样的能力,即对于每一个多层线性网络,都 具有一个等效的单层线性网络与之对应。在反向传播法产生以后,威德罗又将其 自适应线性网络扩展成多层,甚至将激活函数也扩展成非线性的了。 5.2 W-H 学习规则 W—H 学习规则是由威德罗和霍夫提出的用来修正权矢量的学习规则,所以 用他们两人姓氏的第一个字母来命名。采用 W—H 学习规则可以用来训练一定 网 络 的 权值 和偏 差 使之 线 性地 逼 近一 个 函数 式而 进 行模 式 联想 (Pattern Association)。 定义一个线性网络的输出误差函数为: (5. 1) 由(5.1)式可以看出:线性网络具有抛物线型误差函数所形成的误差表面, 所以只有一个误差最小值。通过 W—H 学习规则来计算权值和偏差的变化,并 使网络误差的平方和最小化,总能够训练一个网络的误差趋于这个最小值。另外 很显然,E(W,B)只取决于网络的权值及目标矢量。我们的目的是通过调节权矢 量,使 E(W,B)达到最小值。所以在给定 E(W,B)后,利用 W—H 学习规则修 正权矢量和偏差矢量,使 E(W,B)从误差空间的某一点开始,沿着 E(W,B)的 斜面向下滑行。根据梯度下降法,权矢量的修正值正比于当前位置上 E(W,B) 的梯度,对于第 i 个输出节点有: (5.2) 或表示为: (5.3) 这里 定义为第 i 个输出节点的误差:
54) (53)式称为W一H学习规则,又叫δ规则,或为最小均方差算法(LMS)。 W-H学习规则的权值变化量正比于网络的输出误差及网络的输入矢量。它不需 求导数,所以算法简单,又具有收敛速度快和精度髙的优点 (5.3)式中的η为学习速率。在一般的实际运用中,实践表明,η通常取一 接近1的数,或取值为 门=0.99* max[det(P*P 这样的选择可以达到既快速又正确的结果。 学习速率的这一取法在神经网络工具箱中用函数 maxlinIrm来实现。(5.5) 式可实现为: Ir=0.99*maxlinlr(P, 1); 其中lr为学习速率 W-H学习规则的函数为: learnwh n来实现,另外,加上线性自适应网络 输出函数 purelin.m,可以写出W-H学习规则的计算公式为 pu E=T—A; Idw, dB]=learnwh(P, E, h); W=W十dW B=B十dB 采用W一H规则训练自适应线性元件使其能够得以收敛的必要条件是被训 练的输入矢量必须是线性独立的,且应适当地选择学习速率以防止产生振荡现 象 5.3网络训练 自适应线性元件的网络训练过程可以归纳为以下三个步骤:
3 (5.4) (5.3)式称为 W—H 学习规则,又叫δ规则,或为最小均方差算法(LMS)。 W—H 学习规则的权值变化量正比于网络的输出误差及网络的输入矢量。它不需 求导数,所以算法简单,又具有收敛速度快和精度高的优点。 (5.3)式中的η为学习速率。在一般的实际运用中,实践表明,η通常取一 接近 1 的数,或取值为: (5.5) 这样的选择可以达到既快速又正确的结果。 学习速率的这一取法在神经网络工具箱中用函数 maxlinlr.m 来实现。(5.5) 式可实现为: 其中 lr 为学习速率。 W—H 学习规则的函数为:learnwh.m 来实现,另外,加上线性自适应网络 输出函数 purelin.m,可以写出 W—H 学习规则的计算公式为: A=purelin(W*P); E=T—A; [dW,dB]=learnwh(P,E,h); W=W 十 dW; B=B 十 dB; 采用 W—H 规则训练自适应线性元件使其能够得以收敛的必要条件是被训 练的输入矢量必须是线性独立的,且应适当地选择学习速率以防止产生振荡现 象。 5.3 网络训练 自适应线性元件的网络训练过程可以归纳为以下三个步骤:
1)表达:计算训练的输出矢量A=W*P十B,以及与期望输出之间的误差E 2检查:将网络输出误差的平方和与期望误差相比较,如果其值小于期望误 差,或训练已达到事先设定的最大训练次数,则停止训练;否则继续 3)学习:采用W一H学习规则计算新的权值和偏差,并返回到1)。 每进行一次上述三个步骤,被认为是完成一个训练循环次数 如果网络训练获得成功,那么当一个不在训练中的输入矢量输入到网络中 时,网络趋于产生一个与其相联想的输出矢量。这个特性被称为泛化,这在函数 逼近以及输入矢量分类的应用中是相当有用的。 如果经过训练,网络仍不能达到期望目标,可以有两种选择:或检查一下所 要解决的问题,是否适用于线性网络;或对网络进行进一步的训练。 虽然只适用于线性网络,W一H学习规则仍然是重要的,因为它展现了梯度 下降法是如何来训练一个网络的,此概念后来发展成反向传播法,使之可以训练 多层非线性网络。 采用 Matlab进行自适应线性元件网络的训练过程如下: %表达式 A=purelin(W",B); E=T-A SSE=sumsqr(e) %求误差平方和 for epoch=1: max epoch%循环训练 if Sse< err goal%比较误差 epoch=epoch--1 break %若满足期望误差要求,结束训练 dlw,dB]= learnwh(P,E,r);%修正权值 W=W十dW: B=B十dB A=purelin(W"P, B %网络输出 E=T-A
4 1)表达:计算训练的输出矢量 A=W*P 十 B,以及与期望输出之间的误差 E =T—A; 2)检查:将网络输出误差的平方和与期望误差相比较,如果其值小于期望误 差,或训练已达到事先设定的最大训练次数,则停止训练;否则继续; 3)学习:采用 W—H 学习规则计算新的权值和偏差,并返回到 1)。 每进行一次上述三个步骤,被认为是完成一个训练循环次数。 如果网络训练获得成功,那么当一个不在训练中的输入矢量输入到网络中 时,网络趋于产生一个与其相联想的输出矢量。这个特性被称为泛化,这在函数 逼近以及输入矢量分类的应用中是相当有用的。 如果经过训练,网络仍不能达到期望目标,可以有两种选择:或检查一下所 要解决的问题,是否适用于线性网络;或对网络进行进一步的训练。 虽然只适用于线性网络,W—H 学习规则仍然是重要的,因为它展现了梯度 下降法是如何来训练一个网络的,此概念后来发展成反向传播法,使之可以训练 多层非线性网络。 采用 Matlab 进行自适应线性元件网络的训练过程如下: %表达式 A=purelin(W*P,B); E=T-A; SSE=sumsqr(E); %求误差平方和 for epoch=1: max_epoch%循环训练 if SSE<err_goal %比较误差 epoch=epoch—1; break %若满足期望误差要求,结束训练 end [dlw,dB]=1earnwh(P,E,lr);%修正权值 W=W 十 dW; B=B 十 dB; A=purelin(W*P,B); %网络输出 E=T-A;
SSE=sumsqr(E); %计算网络误差平方和 end 同样,工具箱中设计了一个名为 trainwh m的函数可以替代上述整个训练过 如果仍用在输入空间作图法来解释自适应线性元件网络的功能,它可以解释 为用W*P十B=0的界面通过给出的输入矢量组成的空间(点或线),或线性地逼 近这些输入矢量 在5.4节中首先给出一些简单的例题来了解自适应线性元件的功能。 5.4例题与分析 「例5.订设计自适应线性网络实现从输入矢量到输出矢量的变换关系。其输 入矢量和输出矢量分别为 P=[0-1.2] T=[051.0] 解 用自适应线性网络求解问题时,设计者要确定期望误差值,以及最大循环次 数。对此题可分别选 err goal=0001; max epoch=20。自适应线性网络设计程 序可写为: %wilm P=[1-1.2]; T=[0.51 R,Q=size(P); TW, B]=rands(s, R) max epoch =20 %最大循环次数 err goal=0. 001 %期望误差 Ir=0.4*maxlinlr(P); %最佳学习速率 disp freq=1; %设置显示频率
5 SSE=sumsqr(E); %计算网络误差平方和 end 同样,工具箱中设计了一个名为 trainwh.m 的函数可以替代上述整个训练过 程。 如果仍用在输入空间作图法来解释自适应线性元件网络的功能,它可以解释 为用 W*P 十 B=0 的界面通过给出的输入矢量组成的空间(点或线),或线性地逼 近这些输入矢量。 在 5.4 节中首先给出一些简单的例题来了解自适应线性元件的功能。 5.4 例题与分析 [例 5.1]设计自适应线性网络实现从输入矢量到输出矢量的变换关系。其输 入矢量和输出矢量分别为: P=[1.0 -1.2] T=[0.5 1.0] 解: 用自适应线性网络求解问题时,设计者要确定期望误差值,以及最大循环次 数。对此题可分别选 err_goal=0.001;max_epoch=20。自适应线性网络设计程 序可写为: %wf1.m % P=[1 -1.2]; T=[0.5 1]; [R,Q]=size(P); [S,Q]=size(T); [W,B]=rands(S,R); max_epoch=20; %最大循环次数 err_goal=0.001; %期望误差 1r=0.4*maxlinlr(P); %最佳学习速率 disp_freq=1; %设置显示频率