欢迎来到天天文库
浏览记录
ID:20034900
大小:296.50 KB
页数:37页
时间:2018-10-09
《反向传播神经网络》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第06讲反向传播网络反向传播网络(Back—PropagationNetwork,简称BP网络)是将W—H学习规则一般化,对非线性可微分函数进行权值训练的多层网络。BP网络是一种多层前向反馈神经网络,其神经元的变换函数是S型函数,因此输出量为0到1之间的连续量,它可以实现从输入到输出的任意的非线性映射。由于其权值的调整采用反向传播(Backpropagation)的学习算法,因此被称为BP网络。BP网络主要用于:1)函数逼近:用输入矢量和相应的输出矢量训练一个网络逼近—个函数;2)模式识别:用一个特定的输出矢量将它与输入矢量联系起来;3)分类:把输入矢量以所定义的合适方式进行分类;4
2、)数据压缩:减少输出矢量维数以便于传输或存储。6.1BP网络模型与结构一个具有r个输入和一个隐含层的神经网络模型结构感知器和自适应线性元件的主要差别在激活函数上:前者是二值型的,后者是线性的。BP网络具有一层或多层隐含层,除了在多层网络上与前面已介绍过的模型有不同外,其主要差别也表现在激活函数上。BP网络的激活函数必须是处处可微的,所以它就不能采用二值型的阀值函数{0,1}或符号函数{—1,1},BP网络经常使用的是S型的对数或正切激活函数和线性函数。图6.2BP网络S型激活函数因为S型函数具有非线性放大系数功能,它可以把输入从负无穷大到正无穷大的信号,变换成-1到l之间输出,对较大
3、的输入信号,放大系数较小;而对较小的输入信号,放大系数则较大,所以采用S型激活函数可以去处理和逼近非线性的输入/输出关系。只有当希望对网络的输出进行限制,如限制在0和1之间,那么在输出层应当包含S型激活函数,在一般情况下,均是在隐含层采用S型激活函数,而输出层采用线性激活函数。BP网络的特点:1、输入和输出是并行的模拟量;2、网络的输入输出关系是各层连接的权因子决定,没有固定的算法;3、权因子是通过学习信号调节的,这样学习越多,网络越聪明;4、隐含层越多,网络输出精度越高,且个别权因子的损坏不会对网络输出产生大的影响6.2BP学习规则BP算法属于δ算法,是一种监督式的学习算法。其主要
4、思想为:对于q个输入学习样本:P1,P2,……Pq,已知与其对应的输出样本为:T1,T2,……Tq。学习的目的是用网络的实际输出A1,A2,……Aq,与目标矢量T1,T2,……Tq,之间的误差来修改其权值,使Al,(l=l,2…,q)与期望的Tl尽可能地接近;即:使网络输出层的误差平方和达到最小。BP算法是由两部分组成:信息的正向传递与误差的反向传播。在正向传播过程中,输入信息从输入经隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层没有得到期望的输出,则计算输出层的误差变化值,然后转向反向传播,通过网络将误差信号沿原来的连接通路反传回来修改各层神经元
5、的权值直至达到期望目标。图6.3具有一个隐含层的简化网络图设输入为P,输入神经元有r个,隐含层内有s1个神经元,激活函数为F1,输出层内有s2个神经元,对应的激活函数为F2,输出为A,目标矢量为T。6.2.1信息的正向传递1)隐含层中第i个神经元的输出为:2)输出层第k个神经元的输出为:3)定义误差函数为:(6.1)(6.2)(6.3)6.2.2利用梯度下降法求权值变化及误差的反向传播(1)输出层的权值变化对从第i个输入到第k个输出的权值有:其中:同理可得:(6.4)(6.5)(6.6)(6.7)(2)隐含层权值变化对从第j个输入到第i个输出的权值,有:其中:同理可得:(6.8)(6
6、.9)(6.10)通过MATLAB的实现过程:1)对于(6.1)式所表示的隐含层输出,若采用对数S型激活函数,则用函数logsig.m;若采用双曲正切S型激活函数,则用函数tansig.m;2)对于(6.2)式所表示的输出层输出,若采用线性激活函数有purelin.m与之对应;3)对于(6.3)式所表示的误差函数,可用函数sumsqr.m求之;4)有learnbp.m函数专门求(6.4)、(6.7)、(6.8)和(6.10)式所表示的输出层以及隐含层中权值与偏差的变化量;5)由(6.5)和(6.9)式所表示的误差的变化有函数deltalin.m、deltatan.m、deltalog
7、.m来解决。它们分别用于线性层、双曲正切层和对数层。6.2.3误差反向传播的流程图与图形解释误差反向传播过程实际上是通过计算输出层的误差ek,然后将其与输出层激活函数的一阶导数f2’相乘来求得δki。由于隐含层中没有直接给出目标矢量,所以利用输出层的δki反向传递来求出隐含层权值的变化量Δw2ki。然后计算并同样通过将ei与该层激活函数的一阶导数f1’相乘,而求得δij,以此求出前层权值的变化量Δw1ij。如果前面还有隐含层,沿用上述同样方法依此类推,一直
此文档下载收益归作者所有