BP神经网络实验报告要交_第1页
BP神经网络实验报告要交_第2页
BP神经网络实验报告要交_第3页
BP神经网络实验报告要交_第4页
BP神经网络实验报告要交_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

BP 神经网络在红酒分类中的应用 信息学院 研 15 谢青青 1043115267 摘 要 葡萄酒化学成分复杂 葡萄酒的质量是各种化学成分的综合反映 通常检测的方法有感官评定和常规的理化指标检测 感官评定虽然在生产中也 有较多的应用 但是评测周期长 影响因素多 主观性强 重复性差 且无法 快速检测 使用 BP 神经网络对标准化且具有一致评判标准的数据进行训练 将 来分类时仅仅使用理化指标进行评估 不带有人为主观因素 一 BP 网络简介 BP Back Propagation 神经网络是 1986 年由 Rumelhart 和 McCelland 为 首的科学家小组提出 是一种按误差逆传播算法训练的多层前馈网络 是目前 应用最广泛的神经网络模型之一 BP 网络能学习和存贮大量的输入输出模式映 射关系 而无需事前揭示描述这种映射关系的数学方程 它的学习规则是使用 最速下降法 通过反向传播来不断调整网络的权值和阈值 使网络的误差平方 和最小 BP 神经网络模型拓扑结构包括输入层 input 隐层 hidden layer 和 输出层 output layer 下图就是一个简单的 BP 网络模型 BP 神经网络的结构示意图 二 BP 神经元 下图给出了第 j 个基本 BP 神经元 节点 它只模仿了生物神经元所具 有的三个最基本也是最重要的功能 加权 求和与转移 其中 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 的颜色空间转换 免去了许多编写 计算机程序的烦恼 神经网络的实际输出值与输入值以及各权值和阈值有关 为了使实际输出值与网络期望输出值相吻合 可用含有一定数量学习样本的样 本集和相应期望输出值的集合来训练网络 1 确定 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 函数的误差小 于是在以后的训练中隐含层传递函 数改用 tansig 函数 输出层传递函数仍选用 purelin 函数 3 每层节点数的确定 使用神经网络的目的是实现摄像机输出 RGB 颜色空间与 CIE XYZ 色空间转 换 因此 BP 网络的输入层和输出层的节点个数分别为 3 下面主要介绍隐含层 节点数量的确定 对于多层前馈网络来说 隐含层节点数的确定是成败的关键 若数量太少 则网络所能获取的用以解决问题的信息太少 若数量太多 不仅 增加训练时间 更重要的是隐含层节点过多还可能出现所谓 过渡吻合 Overfitting 问题 即测试误差增大导致泛化能力下降 因此合理选择隐含 层节点数非常重要 关于隐含层数及其节点数的选择比较复杂 一般原则是 在能正确反映输入输出关系的基础上 应选用较少的隐含层节点数 以使网络 结构尽量简单 本论文中采用网络结构增长型方法 即先设置较少的节点数 对网络进行训练 并测试学习误差 然后逐渐增加节点数 直到学习误差不再 有明显减少为止 2 误差的选取 在神经网络训练过程中选择均方误差 MSE 较为合理 原因如下 标准 BP 算法中 误差定义为 每个样本作用时 都对权矩阵进行了一次修改 由于每次权矩阵的修改都 没有考虑权值修改后其它样本作用的输出误差是否也减小 因此将导致迭代次 数增加 累计误差 BP 算法的全局误差定义为 这种算法是为了减小整个训练集的全局误差 而不针对某一特定样本 因 此如果作某种修改能使全局误差减小 并不等于说每一个特定样本的误差也都 能同时减小 它不能用来比较 P 和 m 不同的网络性能 因为对于同一网络来说 P 越大 E 也越大 P 值相同 m 越大 E 也越大 均方误差 MSE 其中 输出节点的个数 训练样本数目 网络期望输出值 网络实际输出值 均方误差克服了上述两种算法的缺点 所以选用均方误差算 法较合理 3 训练结果 训练一个单隐层的三层 BP 网络 根据如下经验公式选择隐层节点数 125 式中 n 为输入节点个数 m 为输出节点个数 a 为 1 到 10 之间的常数 针对 本论文 n1取值范围为 3 13 训练结果如表 1 所示 表 1 隐含层节点数与误差的关系 隐含层神经元个数训练误差测试误差 31 256611 1275 40 7977460 8232 50 6318490 7278 60 5702140 6707 70 5528730 6895 80 4451180 6575 90 3855780 6497 100 2596240 4555 110 1857490 6644 120 1838780 48 130 1685870 6671 由上表可以看出 增加隐含层节点数可以减少训练误差 但超过 10 以后测试误差产生波动 即 泛化能力发生变化 综合比较隐含层节点数为 10 与 12 的训练误差和测试误差 决定隐含层节点数选用 12 训练误差和测试误差都很大 而且收敛速度极慢 这个问题可以通过对输出量 进行归一化来解决 根据 Sigmoid 型传递函数输入和输出的范围 对输入变量不进行归一化处理 只对输出变量进行归一化 这是因为在输出数据要求归一化的同时 对输入数 据也进行归一化的话 权值的可解释性就更差了 目标值按下式进行变化 使目标值落在 0 05 0 95 之间 这样靠近数据变化区间端点的网络输出值就有 一波动范围 网络的性能较好 用新生成的训练样本与测试样本对隐层节点数 为 12 的网络进行训练 得到的训练误差为 9 89028 10 5 测试误差为 1 9899 10 4 达到了预定的目标 隐含层节点为 12 的神经网络训练结果 归一化训练样本后隐含层节点为 12 的神经网络训练结果 六 最终训练后的神经网络结构 采用三层 BP 网络实现摄像机输出 RGB 颜色空间与 CIEXYZ 色空间转换 其 中隐含层含有 12 个节点 传递函数采用 tansig 函数 输出层传递函数选用 purelin 函数 经过测试后结果满意 可以认为该神经网络可以用来实现这个 关系映射 网络的结构如下图所示 三层 BP 网络结构 得到的 BP 神经网络的权值和阈值为 6 总结 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 网络结构 并求出了该神经网络 的权值和阈值 使用该网络可以定量表达食品颜色 定量比较高压加工食品颜 色的变化 可以使食品颜色测定和控制实现定量化 而不再是主观性很强的模 糊描述 4 程序代码 clear all fid fopen wine data txt C textscan fid s f s f s f s f s f s f s f s f s f s f s f s f s f s Delimiter fclose fid P C 2 C 4 C 6 C 8 C 10 C 12 C 14 C 16 C 18 C 20 C 22 C 24 C 26 a strncmpi C 1 a 1 b strncmpi C 1 b 1 c strncmpi C 1 c 1 M double a b c P P M M P1 P 1 140 M1 M 1 140 P2 P 141 178 M2 M 141 178 net newff minmax P1 minmax M1 10 net trainParam show 50 net trainParam ep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论