BP神经网络的基本原理一看就懂Word格式.docx

上传人:b****6 文档编号:19744557 上传时间:2023-01-09 格式:DOCX 页数:14 大小:21.56KB
下载 相关 举报
BP神经网络的基本原理一看就懂Word格式.docx_第1页
第1页 / 共14页
BP神经网络的基本原理一看就懂Word格式.docx_第2页
第2页 / 共14页
BP神经网络的基本原理一看就懂Word格式.docx_第3页
第3页 / 共14页
BP神经网络的基本原理一看就懂Word格式.docx_第4页
第4页 / 共14页
BP神经网络的基本原理一看就懂Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

BP神经网络的基本原理一看就懂Word格式.docx

《BP神经网络的基本原理一看就懂Word格式.docx》由会员分享,可在线阅读,更多相关《BP神经网络的基本原理一看就懂Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

BP神经网络的基本原理一看就懂Word格式.docx

〔5.12〕

其中:

假设,,即令及包括及,

于是节点j的净输入可表示为:

净输入

通过传递函数〔

TransferFunction

〕f(

·

)后,便得到第

〔5.13〕

j个神经元的

输出:

〔5.14〕

式中f(·

)是单调上升函数,而且必须是有界函数,因为细胞传递的信号不可能无限增加,必有一最大值。

5.4.2BP网络

BP算法由数据流的前向计算〔正向传播〕和误差信号的反向传播两个过程构成。

正向传播

时,传播方向为输入层→隐层→输出层,每层神经元的状态只影响下一层神经元。

假设在输出层得不到期望的输出,那么转向误差信号的反向传播流程。

通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数到达最小值,从而完成信息提取和记忆过程。

设BP网络的输入层有n个节点,隐层有q个节点,输出层有m个节点,输入层与隐层之间

输出层的传递函数为f2(·

),那么隐层节点的输出为〔将阈值写入求和项中〕:

f1()

k=1,2,⋯⋯q

〔5.15〕

出点的出:

j=1,2,⋯⋯m

〔5.16〕

至此B-P网就完成了n空向量m空的近似映射。

1)定差函数

入个学本,用来表示。

〔j=1,2,⋯m〕。

采用平方型差函数,于是得到第

个本入到网后得到出

p个本的差Ep:

〔5.17〕

式中:

期望出。

于个本,全局差:

〔5.18〕

2〕出的化

采用累差BP算法整,使全局差小,即

〔5.19〕

—学率

定差信号:

〔5.20〕

其中第一项:

〔5.21〕

第二项:

〔5.22〕

是输出层传递函数的偏微分。

于是:

〔5.23〕

由链定理得:

〔5.24〕

于是输出层各神经元的权值调整公式为:

〔5.25〕

3〕隐层权值的变化

〔5.26〕

定义误差信号为:

〔5.27〕

〔5.28〕

依链定理有:

〔5.29〕

〔5.30〕

是隐层传递函数的偏微分。

〔5.31〕

〔5.32〕

从而得到隐层各神经元的权值调整公式为:

〔5.33〕

5.4.3BP算法的改良

BP算法理论具有依据可靠、推导过程严谨、精度较高、通用性较好等优点,但标准BP算法存在以下缺点:

收敛速度缓慢;

容易陷入局部极小值;

难以确定隐层数和隐层节点个数。

在实际应用中,BP算法很难胜任,因此出现了很多改良算法。

1〕利用动量法改良BP算法

标准BP算法实质上是一种简单的最速下降静态寻优方法,在修正W(K)时,只按照第K步的负梯度方向进行修正,而没有考虑到以前积累的经验,即以前时刻的梯度方向,从而常常使学习过程发生振荡,收敛缓慢。

动量法权值调整算法的具体

做法是:

将上一次权值调整量的一局部迭加到按本次误差计算所得的权值调整量上,作为本次的实际权值调整量,即:

〔5.34〕

α为动量系数,通常0<α<0.9;

η—学习率,范围在0.001~10之间。

这种方法所加的动量因子实际上相当于阻尼项,它减小了学习过程中的振荡趋势,从而改善了收敛

性。

动量法降低了网络对于误差曲面局部细节的敏感性,有效的抑制了网络陷入局部极小。

2〕自适应调整学习速率

标准

BP算法收敛速度缓慢的一个重要原因是学习率选择不当,

学习率选得太小,收敛太慢;

学习率选得太大,那么有可能修正过头,导致振荡甚至发散。

可采用图

5.5所示的自适应方

法调整学习率。

调整的根本指导思想是:

在学习收敛的情况下,增大η,以缩短学习时间;

当η偏大致使不能收敛时,要及时减小η,

直到收敛为止。

3〕动量-自适应学习速率调整算法

采用动量法时,BP算法可以找到更优的解;

采用自适应学习速率法时,BP算法可以缩短训练时间。

将以上两种方法结合起来,就得到动量-自适应学习速率调整算法。

4〕L-M学习规那么

L-M〔Levenberg-Marquardt〕算法比前述几种使用梯度下降法的BP算法要快得多,但对于复杂问题,这种方法需要相当大的存储空间。

L-M(Levenberg-Marquardt)优化方法的权值调整率选为:

〔5.35〕

e—误差向量;

J—网络误差对权值导数的雅可比〔Jacobian〕矩阵;

μ—标量,当

μ很大时上式接近于梯度法,当μ很小时上式变成了Gauss-Newton法,在这种方法中,μ也是自适应调整的。

综合考虑,拟采用L-M学习规那么和动量法分别作为神经网络的训练函数和学习函数。

5.5BP神经网络的训练策略及结果

本文借助于MATLAB神经网络工具箱来实现多层前馈BP网络〔Multi-layerfeed-forward

backpropagationnetwork〕的颜色空间转换,免去了许多编写计算机程序的烦恼。

神经网

络的实际输出值与输入值以及各权值和阈值有关,为了使实际输出值与网络期望输出值相吻合,可用含有一定数量学习样本的样本集和相应期望输出值的集合来训练网络。

训练时仍然使用本章5.2节中所述的实测样本数据。

另外,目前尚未找到较好的网络构造方法。

确定神经网络的结构和权系数来描述给定的映射或逼近一个未知的映射,只能通过学习方式得到满足要求的网络模型。

神经网络的学习可以理解为:

对确定的网络结构,寻找一组满足要求的权系数,使给定的误差函数最小。

设计多层前馈网络时,主要侧重试验、探讨多种模型方案,在实验中改良,直到选取一个满意方案为止,可按以下步骤进行:

对任何实际问题先都只选用一个隐层;

使用很少的隐层节点数;

不断增加隐层节点数,直到获得满意性能为止;

否那么再采用两个隐层重复上述过程。

训练过程实际上是根据目标值与网络输出值之间误差的大小反复调整权值和阈值,直到此误差到达预定值为止。

确定BP网络的结构

确定了网络层数、每层节点数、传递函数、初始权系数、学习算法等也就确定了BP网络。

确定这些选项时有一定的指导原那么,但更多的是靠经验和试凑。

1〕隐层数确实定:

1998年RobertHecht-Nielson证明了对任何在闭区间内的连续函数,都可以用一个隐层的

BP网络来逼近,因而一个三层的BP网络可以完成任意的n维到m维的映照。

因此我们从含

有一个隐层的网络开始进行训练。

2〕BP网络常用传递函数:

BP网络的传递函数有多种。

Log-sigmoid型函数的输入值可取任意值,输出值在

0和1之

间;

tan-sigmod型传递函数tansig的输入值可取任意值,输出值在-1到+1之间;

线性传递函数purelin的输入与输出值可取任意值。

BP网络通常有一个或多个隐层,该层中的神经元均采用sigmoid型传递函数,输出层的神经元那么采用线性传递函数,整个网络的输出可以取任意值。

各种传递函数如图5.6所示。

只改变传递函数而其余参数均固定,用本章5.2节所述的样本集训练BP网络时发现,传递函数使用tansig函数时要比logsig函数的误差小。

于是在以后的训练中隐层传递函数改用tansig函数,输出层传递函数仍选用purelin函数。

3〕每层节点数确实定:

使用神经网络的目的是实现摄像机输出RGB颜色空间与CIE-XYZ色空间转换,因此BP网络的输入层和输出层的节点个数分别为3。

下面主要介绍隐层节点数量确实定。

对于多层前馈网络来说,隐层节点数确实定是成败的关键。

假设数量太少,那么网络所能获取的用以解决问题的信息太少;

假设数量太多,不仅增加训练时间,更重要的是隐层节点过多

还可能出现所谓“过渡吻合〞〔Overfitting〕问题,即测试误差增大导致泛化能力下降,因此合理选择隐层节点数非常重要。

关于隐层数及其节点数的选择比拟复杂,一般原那么是:

在能正确反映输入输出关系的根底上,应选用较少的隐层节点数,以使网络结构尽量简单。

本论文中采用网络结构增长型方法,即先设置较少的节点数,对网络进行训练,并测试学习误差,然后逐渐增加节点数,直到学习误差不再有明显减少为止。

误差的选取

在神经网络训练过程中选择均方误差MSE较为合理,原因如下:

①标准BP算法中,误差定义为:

〔5.36〕

每个样本作用时,都对权矩阵进行了一次修改。

由于每次权矩阵的修改都没有考虑权值修改后其它样本作用的输出误差是否也减小,因此将导致迭代次数增加。

②累计误差BP算法的全局误差定义为:

〔5.37〕

这种算法是为了减小整个训练集的全局误差,而不针对某一特定样本,因此如果作某种修改能使全局误差减小,并不等于说每一个特定样本的误差也都能同时减小。

它不能用来比

较P和m不同的网络性能。

因为对于同一网络来说,P越大,E也越大;

P值相同,m越大

E也越大。

③均方误差MSE:

〔5.38〕

其中:

—输出节点的个数,—训练样本数目,—网络期望输出值,—网络实际输

出值。

均方误差克服了上述两种算法的缺点,所以选用均方误差算法较合理。

训练结果

训练一个单隐层的三层BP网络,根据如下经验公式选择隐层节点数[125]:

〔5.39〕

n为输入节点个数,m为输出节点个数,a为1到10之间的常数。

针对本论文n1取值范围为3~13。

训练结果如表5.1所示。

表隐层节点数与误差的关系

隐层神经元个数训练误差测试误差

3

4

5

6

7

8

9

10

11

12

13

由上表可以看出:

①增加隐层节点数可以减少训练误差,但超过10以后测试误差产生波动,即泛化能力发生变化。

综合比拟隐层节点数为10与12的训练误差和测试误差,决定隐层节点数选用12。

②训练误差和测试误差都很大,而且收敛速度极慢〔训练过程如图5.7所示〕,这个问题可以通过对输出量进行归一化来解决。

根据Sigmoid型传递函数输入和输出的范围,对输入变量不进行归一化处理,只对输出变量进行归一化,这是因为在输出数据要求归一化的同时,对输入数据也进行归一化的话,权值的可解释性就更差了。

目标值按下式进行变化:

〔5.40〕

使目标值落在0.05~0.95之间,这样靠近数据变化区间端点的网络输出值就有一波动范围,

网络的性能较好。

用新生成的训练样本与测试样本对隐层节点数为12的网络进行训练,得

到的训练误差为9.89028×

10-5,测试误差为1.9899×

10-4,到达了预定的目标〔训练过程如图5.8所示〕。

5.6最终训练后的神经网络结构

采用三层BP网络实现摄像机输出RGB颜色空间与CIEXYZ色空间转换,其中隐层含有12个节点,传递函数采用tansig函数;

输出层传递函数选用purelin函数。

经过测试后结果满

意,可以认为该神经网络可以用来实现这个关系映射。

网络的结构如图5.9所示:

得到的BP神经网络的权值和阈值为:

5.7本章小结

1)定量地分析了用线性关系转换摄像机RGB空间到CIE-XYZ空间数据后产生的均方误差,

说明CCD摄像机与标准观察者之间有比拟明显的差异,也就是说RGB与CIE-XYZ间的转换

是非线性的。

2)采用MATLAB中神经网络工具箱实现多层前馈BP网络的RGB到CIEXYZ颜色空间转换,

用经过归一化的训练样本与测试样本对隐层节点数为12的三层网络进行训练,得到的训练

误差为9.89028×

10-5,测试误差为1.9899×

10-4,结果说明经过训练的多层前馈BP网络可

以满足RGB空间向CIEXYZ颜色空间转换要求,到达了预定目标。

3)确定了用于RGB和XYZ颜色空间转换的BP网络结构,并求出了该神经网络的权值和阈值。

使用该网络可以定量表达食品颜色,定量比拟高压加工食品颜色的变化,可以使食品

颜色测定和控制实现定量化,而不再是主观性很强的模糊描述。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1