- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BP神经网络实验报告要交讲义
BP神经网络在红酒分类中的应用
信息学院 研15 谢青青 1043115267
摘 要:葡萄酒化学成分复杂,葡萄酒的质量是各种化学成分的综合反映,通常检测的方法有感官评定和常规的理化指标检测,感官评定虽然在生产中也有较多的应用,但是评测周期长,影响因素多,主观性强,重复性差,且无法快速检测。使用BP神经网络对标准化且具有一致评判标准的数据进行训练,将来分类时仅仅使用理化指标进行评估,不带有人为主观因素。
一、BP网络简介
BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。x1、x2…xi…xn分别代表来自神经元1、2…i…n的输入;wj1、wj2…wji…wjn则分别表示神经元1、2…i…n与第j个神经元的连接强度,即权值;bj为阈值;f(·)为传递函数;yj为第j个神经元的输出[1]。
第j个神经元的净输入值为:
????????????????
BP神经元其中: ????
若视,,即令及包括及,则
??
于是节点j的净输入可表示为:
净输入通过传递函数(Transfer Function)f (·)后,便得到第j个神经元的输出:
??????????
式中f(·)是单调上升函数,而且必须是有界函数,因为细胞传递的信号不可能无限增加,必有一最大值。
三、建立BP神经网络
BP网络的设计主要包括网络层数、输入层节点数、隐含层节点数、输出层节点数及传输函数、训练方法、训练参数的设置等几个方面。
1、网络层数
BP网络可以包含一或者多个隐含层,但是对于大部分应用场合,一个隐含层就可以满足需要,但如果样本较多,可以增加隐含层数来减小网络规模。
2、输入层节点数
输入层节点取决于输入向量的维数,应从实际数据中抽象出模型,形成输入和输出空间。则该实验中的输入向量为13*178维。
3、隐含层节点数
这里对于网络的影响最大,较多的隐含层节点数会带来更好的效果,但是会影响训练的时间。但是现在依然没有很好的公式来确定合理的神经元节点个数,这也是BP神经网络的一个瓶颈问题,目前也只是给出一个估计值。为了训练的效果更好,该实验中选择隐含层为10。
4、输出层神经元个数
该数值是由实际问题抽象出的模型决定的,比如最后结果是N种类别,则输出可以采用N个神经元,例如该实验中,最后结果是3类,那我们就用100、010、001来表示某样本输入哪个类别。
5、传递函数
一般隐含层使用sigmoid函数,而输出层使用线性函数
四、BP神经网络的训练策略及结果
本文借助于MATLAB神经网络工具箱来实现多层前馈BP网络(Multi-layer feed-forward backpropagation network)的颜色空间转换,免去了许多编写计算机程序的烦恼。神经网络的实际输出值与输入值以及各权值和阈值有关,为了使实际输出值与网络期望输出值相吻合,可用含有一定数量学习样本的样本集和相应期望输出值的集合来训练网络。
确定BP网络的结构
确定了网络层数、每层节点数、传递函数、初始权系数、学习算法等也就确定了BP网络。确定这些选项时有一定的指导原则,但更多的是靠经验和试凑。
1)隐含层数的确定:
1998年Robert Hecht-Nielson证明了对任何在闭区间内的连续函数,都可以用一个隐含层的BP网络来逼近,因而一个三层的BP网络可以完成任意的n维到m维的映照。因此我们从含有一个隐层的网络开始进行训练。
2) BP网络常用传递函数:
BP网络常用的传递函数
BP网络的传递函数有多种。Log-sigmoid型函数的输入值可取任意值,输出值在0和1之间;tan-sigmod型传递函数tansig的输入值可取任意值,输出值在-1到+1之间;线性传递函数purelin的输入与输出值可取任意值。BP网络通常有一个或多个隐含层,该层中的神经元均采用sigmoid型传递函数,输出层的神经元则采用线性传递函数,整个网络的输出可以取任意值。
只改变传递函数而其余参数均固定,在训练BP网络时发现,传递函数使用tansig函数时要比logsig函数的误差小。于是在以后的训练中隐
文档评论(0)