进行网络的学习与训练。
图2-7竞争型神经网络模型
(5)反馈型神经网络(recurrent networks)
反馈型神经网络是一种从输出到输入具有反馈连接的神经网络,其结构比前馈网络要复杂的多。典型的反馈型神经网络有Elman网络和Hopfield网络;
Elman网络是两层反向传播网络,隐层和输入向量连接的神经元,其输出不仅作为输出层输入,而且还连接隐层内的另外一些神经元,反馈至隐层输入。由于其输入表示了信号的空域信息,而反馈支路是一个延迟单元,反映了信号的时域信息,所以Elman网络可以再时域和空域进行模式识别;
图2-8 Elman神经网络模型
Hopfield网络又称为联想记忆网络,它常常存储一个或多个稳定的目标向量,当网络输入端输入相似的向量时,这些稳定的目标向量将“唤醒”网络记忆模式,并通过输出呈现出来。
15
图2-9 Hopfield神经网络模型
4.人工神经网络在时间序列预测中的优势
(1)神经网络的自学功能对于时间序列预测有特别重要的意义。预期未来的人工神经网络计算机将为人类提供同经济预测、市场预测、效益预测、其前途是很远大的;
(2)神经网络技术能对不完整信息进行补全,根据已学会的知识和处理问题的经验对复杂问题做出合理的判断决策,给出较满意的解答,或对未来过程做出有效的预测和估计;
(3)针对其他时间序列预测方法较适用于短期的预测,神经网络可以进行长时间的预测,并且误差较小,因为神经网络的自适应能力可以随时根据新增数据进行学习训练。
16
三、BP网络
(一)BP网络
BP(back propagation)网络是由BP算法训练的神经网络。1974年P.Werbos在其博士论文中提出了第一个适合多层网络的学习算法,但该算法并未受到足够的重视和广泛的应用,直到20世纪80年代中期,美国加利福尼亚的PDP(parallel distrbuted procession)小组于1986年发表了Parallel Distrbuted Processing一书,将该算法应用于神经网络的研究,才使之成为迄今为止最著名的多层网络学习算法——BP算法。
1.BP网络模型
BP神经网络含有输入层、输出层以及处于输入输出层之间的隐含层。隐含层又包括单层或多层。图1是一个典型的3层BP网络,只有一个隐含层。对于输入信息,要先向前传播到隐含层的结点上,经过各单元的特性为Sigmoid型的激活函数(又称作用函数、转换函数或映射函数等)运算后,把隐含层结点的输出信息传播到输出结点,最后输出结果
[5]。
图3-1 典型的3层BP神经网络
从图中可以看出各层神经元仅与相邻层的神经元有连接,各层内神经元没有任何连接;各层神经元之间也没有反馈连接。BP网络具有很强的非线性映射能力,根据Kolmogorv定理,一个三层BP神经网络能够实现对任意非线性函数进行逼近。 2.BP网络的应用
BP网络主要应用于函数逼近、模式识别、分类、数据压缩等方面,它的应用领域十分广泛,目前,在人工神经网络的实际应用中,绝大部分的神经网络模型是采用BP网络和它的变化形式,它也是前向网络的核心部分,并体现了人工神经网络最精华的部分。
17
(二)BP网络的学习算法
在确定了BP网络的结构后,要通过输入和输出样本集对网络进行训练,亦即对网络阈值和权值进行学习和修正,以使网络实现给定的输入输出映射关系。
BP网络学习过程分为两个阶段:
第一个阶段是输入已知学习样本,通过设置网络结构和前一次迭代的权值和阈值,从网络的第一层向后计算各神经元的输出。
第二个阶段是对权和阈值进行修改,从最后一层向前计算各权值和阈值对总误差的影响(梯度),据此对各权值和阈值进行修改。
以上两个过程反复交替,直到达到收敛为止。
BP算法的学习是在导师的指导下,适合于多层神经元网络的一种学习,它是建立在梯度下降法基础上的[6]。
设含有共L层和n个结点的一个任意网络,每层单元只接受前一层的输出信息并输出给下一层各单元,各结点(有时称单元)的特性为Sigmoid型(它是连续不可微的,不同于感知器中的线性阈值函数,因为它是不连续的)。为简单起见,认为网络只有一个输出y。设给定N个样本(xk,yk)(k=1,2,?,N),任一个结点i的输出为Oi,对某一个输入为xk,网络的输出为yk,结点i的输出为Oik,现在研究第l层的第j个单元,当输入第k个样本时,给结点j的输入为
netljk=
?jwijOjk Ojk表示l-1层,输入第k个样本时,第j个单元结点的输出
ll?1l?1 3-1
Ojk?f(netlljk) 3-2
2使用误差函为平方型 Ek?1(y?2ijk?yjk) 3-3
Nyjk是单元j的实际输出。总误差为 E?12N?Ek?net?Ek?1k 3-4
定义 ?ljkjk=
ljk
于是
?Ek??ijl??Ek?netljk?netl??ij??Ek?netljk Ojk=?l?1ljkOjk 3-5
l?1下面分两种情况来讨论:
(1)若结点j为输出单元,则 Ojk?yljk
18
?ljk??Ek?netljk??Ek?yjk?y?netjkljk??(yk?yk)f?(netljk) 3-6
(2)若j不是输出单元,则 ?ljk??Ek?netljk??Ek?Oljk?Ojk?netljkl??Ek?Oljkf?(netljk) 3-7
式中Ojk是送到下一层(l?1)层的输入,计算在(l?1)层第m个单元时 ??Ek?Oljkl?Ek?Ojkl要从(l?1)层计算回来。
???netmljk?Ekl?1mk?net?Ol?1mkljk???netm?Ekl?1mk?mj?l?1??ml?1mkl?1?mj 3-8
将(3.8)式代入(3.7)式,则得 ?总结上述结果,有
???ml?1mkl?1?mjf?(netljk) 3-9
3-10
(三)BP网络设计
BP网络的设计主要包括输入层、隐层、输出层及各层之间的传输函数几个方面。 1.网络层数
大多数通用的神经网络都预先确定了网络的层数,而BP网络可以包含不同的隐层。但理论上已经证明,在不限制隐层节点数的情况下,两层(只有一个隐层)的BP网络可以实现任意非线性映射。在模式样本相对较少的情况下,较少的隐层节点,可以实现模式样本空间的超平面划分,此时,选择两层BP网络就可以了;当模式样本很多时,减小网络的规模,增加一个隐层是必要的,但BP网络的隐层数一遍不超过两层。
2.输入层的节点数
输入层起缓冲存储器的作用,它接收外部的输入数据,因此其节点数取决于输入矢量的维数。
19