|
《BP神经网络基本原理+非常清晰》是会员分享的,可以在线阅读。更多相关《BP神经网络基本原理+非常清晰(14页珍藏版)》请在装配图网站搜索。
1. 5.4 BP 神经网络基本原理 输入层 隐含层 输出层 图 5.2 BP 神经网络结构示意图 BP()网络是 1986 年由何和何为首的科学家小组提出的。它是一个根据误差反向传播算法训练的多层系统。前馈网络是目前应用最广泛的神经网络模型之一。 BP网络可以学习并存储大量的输入输出模式映射关系,而无需提前揭示描述这种映射关系的数学方程。其学习规则是采用最速下降法,通过反向传播不断调整网络的权重和阈值,使网络的误差平方和最小。 BP神经网络模型的拓扑包括输入层(input)、隐藏层()和输出层()(如图5.2所示)。
2. 5. 4.1 BP神经元 图5.3所示为第j个基本BP神经元(节点),它仅模仿生物神经元的三个最基本、最重要的功能:加权、求和和传递。 。其中,Xi,神经元的连接强度,即权重; bj 是阈值; f(•) 是传递函数; yj 是第 j 个神经元的输出。第 j 个神经元的净输入值为: (5.12) 其中: 图 5.3BF 神经元称为 ■=“李乔的...乔”·李',是吗? = 3,即
3. £ 和 bid 包含 q 和 m 口,则亚尔卜口预测门...不...求•“M 传魔 1 太阳钳...啊...啊” 所以净输入总和为节点j可表示为: 3‖ (5.13) 网络输入,通过传递函数()f(•)后,得到第j个神经元的输出体J: beat·=/6)=/〔£...[)=咻㈤,一j-0(5.14) 其中f(·)是单调升函数,并且必须是有界函数,因为细胞传输的信号不能无限增加,必须有一个最大值。 5. 4.2 BP网络 BP算法由数据流的前向计算(前向传播)和误差信号的反向计算组成。传播由两个过程组成。在前向传播中,传播方向是输入层-隐藏层-输出层。每层神经元的状态只影响下一层神经元。
4. 为了得到想要的输出,转向误差信号的反向传播过程。通过这两个过程的交替,在权向量空间中执行误差函数梯度下降策略,动态迭代地搜索一组权向量,使网络误差函数达到最小值,从而完成信息的提取和计算。记忆过程。 5.4.2.1 前向传播端口 qm 图 5.4 三层神经网络拓扑结构 假设 BP 网络的输入层有 n 个节点,隐含层有 q 个节点,输出层有 m 个节点,输入层和隐含层层与层之间的权重为%,隐藏层与输出层之间的权重为%,如图5.4所示。隐藏层的传递函数为3(·),输出层的传递函数为f2(·),则隐藏层节点的输出为(将阈值写入求和项):取第二项工作(二川七)i-0k =1,2,(5.15) 输出层节点的输出为j=1,2,
5. (5.16) 至此,BP网络就完成了n维空间向量到m维空间的近似映射。 5.4. 2.2 反向传播 1)定义误差函数_12>/v输入F个学习样本,用sink 4,... 二,...]来表示。第yin个样本输入到网络后,得到输出(j=1,2,...m。利用平方误差函数,得到第p个样本的误差:MA = 5 -1 其中: 对于F个样本,全局误差为:二里一布'扣除1'-!2)输出层权重的变化 (5.17) (5.18) 使用累积误差BP算法进行调整,使全局误差减小。 £ 变小,即 Av 或_(5.19 ) 其中:“学习率将误差信号定义为:
6.第一项是:理论a“1棺材1光见L2M”,第二项:*£,(光)是输出层传递函数的偏微分。故: /wang 6 a%) 4⑸) J-1 (5.21) (5.22) (5.23) 由链式定理可得: 町町.江『=一%湕=一英镑(宫尧(两者)-不) J -] (5.24) 所以损失输出层各神经元的权值调整公式为:?Bluei(△hje=共工天保-W)力面积)点数为1/4(5.25) 3)隐藏层权重变化△%=杰0之二3E*-载fWin*产生)? Equ) (5.26) 将误差信号定义为:
7. 3E Quan/_Jrtv 第一项:干 2 a 为距离 2 (5.28) 根据链式定理:%_平方 1 共一 shu 码也 = 力 (四) 称为功 (5.29) 号 二元项: 聪工1(5.30)困=£area) 是隐含层传递函数的偏微分。故:㈱%=二6-村) 力表示/(曷) 由链式定理: 且
8、选择“r=一%/=—£Walso—&)■/(5.31)(5.32),得到隐藏层各神经元的权重调整公式为_M/■!(5 . 33) 5. 4.3 BP算法的改进 BP算法理论具有基础可靠、推导过程严谨、精度高、通用性好的优点,但标准BP算法有以下缺点:收敛速度慢速度快;容易陷入局部最小值;难以确定隐含层数和隐含层节点数。在实际应用中,BP算法很难执行,因此出现了许多改进算法1)采用改进的动量法。 BP算法图53 自足学习标准,gBP算法本质上是一种简单的最速下降静态优化方法。
9、修正W(K时,只修正第K步的负梯度方向,没有考虑到积累的经验,即前一时刻的梯度方向,这往往会导致学习过程振荡,收敛缓慢动量定律调值算法的具体方法是:将上次权重调整量的一部分加上根据本次误差计算出的权重调整量,作为本次的实际权重调整量,即:(5.34)A物体⑺两磅。 V ■为了回到十世纪,必须使用5-1) 其中:a是动量系数,通常为0
10、速率标准BP算法收敛速度慢的一个重要原因是学习速率选择不当。如果学习率选择太小,收敛太慢;如果学习率选得太大,可能会过度校正,导致振荡甚至发散。可以使用图5.5所示的自适应方法来调整学习率。调整的基本指导原则是:当学习收敛时,增大T]以缩短学习时间;当7]太粗糙而无法收敛时,及时减小7)直至收敛。 3) - Auto 当自适应学习率调整算法使用动量方法时,BP算法可以找到更好的解;当采用自适应学习率方法时,BP算法可以缩短训练时间。结合以上两种方法,我们得到了动量自适应学习率调整算法。 4)LM学习规则LM(—)算法比之前的算法更加高效。
11.使用梯度下降的BP算法速度要快得多,但对于复杂问题,该方法需要相当大的存储空间。 LM(—)优化方法的权重调整率选取为: rt-it=y+J5 (5.35) 式中:e为误差向量; J为网络误差对权重导数的雅可比()矩阵;对于标量,当n很大时,上式接近梯度法。当n很小时,上式就变成高斯法。这里这些方法中,Xian也是自适应调整的。综合考虑,拟采用LM学习规则和动量法分别作为神经网络的训练函数和学习函数。 5. 5 BP神经网络的训练策略及结果本文利用神经网络工具箱实现了多层前馈BP网络(Multi-layer
12. feed-)的色彩空间转换消除了编写计算机程序的很多麻烦。神经网络的实际输出值与输入值以及各个权重和阈值有关。为了使网络的实际输出值与期望输出值一致,可以使用包含一定数量的学习样本和一组相应的期望输出值的样本集来训练网络。训练期间仍使用本章5.2节中描述的测量样本数据。另外,目前还没有找到更好的网络构建方法。为了确定神经网络的结构和权重系数来描述给定的映射或逼近未知的映射,只有通过学习才能得到满足要求的网络模型。神经网络的学习可以理解为:对于一定的网络结构,找到一组满足要求的权重系数,使给定的误差函数最小。在设计多层前馈网络时,主要重点是实验和探索。
13. 讨论多个模型解决方案,并在实验中改进它们,直到选择出满意的解决方案。您可以按照以下步骤操作:对于任何实际问题,首先仅使用一个隐藏层;使用少量的隐藏层节点;继续增加隐含层节点数。层节点数,直到获得满意的性能;否则,使用两个隐藏层重复上述过程。训练过程实际上就是根据目标值与网络输出值之间的误差,反复调整权重和阈值,直到误差达到预定值为止。 5.5.1 确定BP网络的结构。确定网络层数、每层节点数、传递函数、初始权系数、学习算法等,进而确定BP网络。确定这些选项时有一定的指导原则,但更多取决于经验和反复试验。 1)隐藏层数的确定:1998年——证明对于闭区间内的任意连续函数,都可以用一个
14、由隐含层BP网络来近似,因此三层BP网络可以完成任意n维到m维的映射。因此,我们从具有一个隐藏层的网络开始训练。 2) BP 网络中常用的传递函数 图 5.0 EF 网络中常用的传递函数 BP 网络中有多种传递函数。 Log型函数的输入值可以取任意值,输出值在0到1之间; tan型传递函数 的输入值可以取任意值,输出值在-1到+1之间;线性传递函数的输入和输出值可以取任意值。 BP网络通常有一个或多个隐藏层。本层神经元采用线性传递函数,输出层神经元采用线性传递函数。整个网络的输出可以取任意值。各种传递函数如图 5.6 所示。只改变
15. 传递函数和其他参数是固定的。当用本章5.2节描述的样本集训练BP网络时,发现传递函数比函数有更小的误差。因此,在以后的训练中,将隐藏层传递函数改为函数,而仍然使用输出层传递函数。 3)每层节点数的确定:使用神经网络的目的是实现相机输出RGBS颜色空间与CIE-XYZ颜色空间之间的转换。因此,BP网络输入层和输出层的节点数分别为3。下面主要介绍隐含层节点数的确定。对于多层前馈网络来说,确定隐含层节点的数量是成败的关键。如果数量太少,网络能够获得的信息太少,无法解决问题;如果数量过多,不仅会增加训练时间,更重要的是,过多的隐藏层节点可能会导致所谓的“
16、“过渡拟合”()问题是指测试误差的增加导致泛化能力下降。因此,合理选择隐藏层节点数非常重要。隐藏层数量及其节点的选择相对复杂。总的原则是:在正确反映输入输出关系的基础上,选择较少数量的隐含层节点,使网络结构尽可能简单。本文对网络采用结构增长方法,首先设置较少的节点数,训练网络,并测试学习误差,然后逐渐增加节点数,直至学习误差不再明显减小。 5.5.2 误差的选择 在神经网络训练过程中,选择均方误差 MS 可能比较合理,原因如下: ① 在标准 BP 算法中,误差定义为:1 股应该 = 江”-行尸£ji 对于每个样本使用时,权重矩阵修改一次。由于权重矩阵的每次修改
17、没有考虑权值修改后其他样本的输出误差是否也会减少,从而导致迭代次数增加。 ② 累积误差BP算法的全局误差定义为1FMP具体样本,因此如果进行一些修改可以减小全局误差,并不意味着每个具体样本的误差也可以同时减小。它不能用来比较具有不同P和m的网络的性能。因为对于同一个网络,P越大,E也越大; P值相同时,m越大,E越大。 ③均方误差MSE:(5.38.)3=2等于-I>1,其中:输出节点数为输出节点数,训练样本数为训练样本数,期望输出网络的值是网络的期望输出值,网络的实际输出是
18. 价值。均方误差克服了上述两种算法的缺点,因此选择均方误差算法更为合理。 5.5.3 训练结果 训练一个单隐含层的三层BP网络,隐含层节点数根据如下经验公式[125(5.39)]选择:其中:n为输入节点数,m为输出节点数,a为1~10之间的常数。本文中ni的取值范围为3~13。训练结果如表5.1所示。表 5. 1 隐含层节点数与误差的关系 隐含层神经元个数 训练误差 测试误差 31. .. .. . ...68958
19.0。 ………… 48130..6671 从上表可以看出:①增加隐含层节点数可以减少训练误差,但超过10后,测试误差会出现波动,即泛化能力发生变化。 10和12个隐藏层节点的训练误差综合比较 对于测试误差,决定隐藏层节点数选择12c。训练误差和测试误差都很大,收敛速度极慢(训练过程如图5.7所示)。这个问题可以通过标准化输出来解决。根据类型输入传递函数
20.对于输出的范围,输入变量没有进行归一化,只对输出变量进行归一化。这是因为当输出数据需要归一化时,如果输入数据也进行归一化,那么权重值的可解释性就更差了。目标值计算如下: 行变化:#=*乂09+0.05(5.40)a—a.■ntE!QlI!I使目标值落在0005~0095之间,使网络输出值接近数据变化间隔的端点有波动范围,网络性能较好。使用新生成的训练样本和测试样本训练一个隐含层节点数为12的网络,得到的训练误差为9. —5,测试误差为1. -4,达到了预定的目标(训练过程如图所示)图5.8).1010(
21. ejs0,.0001—-T/-d.上·4一■.U■人, a1MlT■■H10h·■■■*«■■■k■■■■■■,wra■■■■■力■1■a91■■tJI>■・•! !金■■■■li■■a^Kli■■■--I◆>^;二二二二一二二二二二二事:;二;;:M 二二二三二二 E:二二二二二五二二二二二二三二一二二二二二;两个两个;;帐户;两个二二二'二二二二二二 inM■■HjK■■■■・, +'■■■!■■■■M■:■■・,・・■1一・■・■■■・,$■・
22. 1..L■■■■■■1 ■■■■■■・'|i■'*|™"Jr',*"^^■JXIT-fid■,・■■■T—■■东西。■■■■n■rh■▼■* *■Th・h・./! ■▼■F■■■■■■■91▼■+·■▼■■·T▼■■H▼1"T·■▼■■/ |
|