




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 智能优化方法智能优化方法 技术报告技术报告 题目 基于题目 基于 BP 算法的异或运算的解决算法的异或运算的解决 班班 级级 信科 13 01 班 学学 号 号 08133367 姓姓 名 名 张谊坤 任课教师 任课教师 姚 睿 2 目目 录录 一 摘 要 3 二 技术路线及实现方法 2 1 输入层和输出层神经元数目的选择 3 2 2 隐层层数和神经元数目选择 3 2 3 BP 算法学习的四个阶段 4 三 实验结果及分析 5 四 总 结 5 五 参考文献 5 六 附录 附录 1 代 码 6 3 附录 2 个人工作 8 摘要摘要 利用 BP 函数训练计算机使其可以输出满足精度的逻辑异或运算结果 结合本课题的特点和网络训练的思想 通过深入分析选择合适的参数 接着构建 BP 网络 产生训练样本 选取最优结果作为本文的最终结果 并对输出结果和仿真结果进行分析 一 问题描述一 问题描述 异或问题本质上是分类问题 要求将输入的样本组分为两类 一类样本经异或运算后 结果为 1 另一类经异或运算后结果为 0 研究表明 BP 网络特别是具有单隐层的 BP 网络 具有较强的分类能力 能够解异或问题 二 技术路线及实现方法二 技术路线及实现方法 2 1 输入层和输出层神经元数目的选择输入层和输出层神经元数目的选择 输入层神经元个数与输入样本维数相同 本实验输入样本为 2 维向量 所以输入层包 含 2 个神经元 输出层神经元个数设计可根据设计者的需求设计 由于本文要解决的异或 问题是单输出的 0 或 1 所以输出层选择 1 个神经元 2 2 隐层层数和神经元数目选择隐层层数和神经元数目选择 参考其他专家和学者的经验 了解到含有单隐层的 BP 网路能很好的解决异或问题 对于隐层神经元数目的选择前人总结出了一些经验规则 本文在借鉴前人经验的基础上 依靠测试得出较适合本课题的隐层神经元数是 1 至 3 个 由于隐层神经元越多 网络越复 杂 每一步训练的计算量增大 时间增长 经测试发现 1 至 3 个隐层神经元都可以达到较 高精度 为简化网络 最终确定隐层神经元数为 2 根据以上分析 建立出的 BP 网络的结构示意图如图 2 1 所示 4 A B 0 0579 0 0291 0 0543 0 0999 P 0 0703 Q 0 0939 C 0 0703 0 0801 0 0605 C 图 2 1 BP 网络结构示意图 图 2 1 中 输入层神经元编号 A B 隐藏层神经元编号 P Q 输出层神经元编号为 C 对异或问题进行非线性划分的 BP 神经网络采用 3 层网络结构 其中输入层和隐藏层各 有 2 个处理单元 输出层有一个处理单元 对表 2 1 中的 4 个学习模式对轮流提供给网络 按照 BP 算法进行学习和训练 直至 BP 神经网络输出的全局误差满足要求为止 学习速率 为 0 6 首先给 BP 神经网络的各个连接权值及阈值赋予 0 1 0 1 之间的随机值 具体如图 2 1 所示 此时 BP 神经网络对应的 4 个输出模式产生的实际输出均为 0 5 左右 网络全 局误差约为 0 5 表 2 1 学习模式对 输入输入 A B 期望输出期望输出实际输出实际输出全局误差全局误差 0 000 50 0 110 50 5 1 010 50 1 100 50 2 3 BP 算法学习的四个阶段算法学习的四个阶段 BP 神经网络采用 BP 算法进行学习 其学习过程分为四个阶段 1 输入模式是由输入层经过隐藏层向输出层逐层传播的 模式顺传播 过程 2 网络的期望输出与实际输出之差 即误差信号 是由输出层经隐藏层向输入层逐层修 正连接权值的 误差逆传播 过程 3 由 模式顺传播 过程和 误差逆传播 过称反复交替进行的网络 记忆训练 过成 4 网络趋向收敛 即网络的全局误差趋向极小值的 学习收敛 过程 调整隐含层到输 出层之间的连接权值及输出层各个单元的阈调整隐含层到输出层之间的连接权值及输 出层各个单元的阈调整隐含层到输出层之间的连接权值及输出层各个单元的阈值 5 开始开始 连接权值及阈值初始化连接权值及阈值初始化 将学习模式对提供给网络将学习模式对提供给网络 计算隐藏层各单元的净输入与输出计算隐藏层各单元的净输入与输出 计算输出层各单元的净输入与输出计算输出层各单元的净输入与输出 计算输出层各单元的一般化误差计算输出层各单元的一般化误差 计算输出层各单元的一般化误差计算输出层各单元的一般化误差 调整隐含层到输出层之间的连接权值及调整隐含层到输出层之间的连接权值及 输出层各个单元的阈值输出层各个单元的阈值 调整输入层到隐藏层之间的连接权值及调整输入层到隐藏层之间的连接权值及 隐藏层各个单元的阈值隐藏层各个单元的阈值 更新学习模式对更新学习模式对 更新学习次数更新学习次数 误差误差Nmax Nmax 全部学习模式全部学习模式 训练完毕 训练完毕 学习结束学习结束 Y 调 整 隐 含 层 到 输 出 层 之 间 的 连 接 权 值 及 输 出 层 各 个 单 元 的 阈 Y 调 整 隐 含 层 到 输 出 层 之 间 的 连 接 权 值 及 输 出 层 各 个 单 元 的 阈 N 调 整 隐 含 层 到 输 出 层 之 间 的 连 接 权 值 及 输 出 层 各 个 单 元 的 阈 N 调 整 隐 含 层 到 输 出 层 之 间 的 连 接 权 值 及 输 出 层 各 个 单 元 的 阈 图 2 2 BP 学习算法流程图 三 实验结果与分析三 实验结果与分析 输出实际输出层 c 学写了 15000 次后 结果如图 3 1 运行结果所示 图 3 1 运行结果 6 表 3 1 输出结果对比 输入输入 A B 期望输出期望输出实际输出实际输出 0 000 0118708 0 110 987451 1 010 987435 1 100 015573 在精度满足之后 实际输出十分逼近期望输出 可以看到 BP 算法解决异或问题是 成功的 四 总结四 总结 BP 网络具有很强的自学习 自组织 自适应能力 分类能力较强 收敛速度快 能较 好的解决 2 个变量的异或问题 得到的结果较为理想 BP 网络隐层和输出层激活函数 特 别是输出层激活函数 的选择对具有规律性期望输出数据的问题的结果有显著影响 应结 合网络训练思想对具体问题进行分析 本文在充分学习了解神经网络训练思想的基础上构 建适合本课题的 BP 网络 通过大量次的训练 并在实验中修改参数 得到较为理想的结 果 五 参考文献五 参考文献 1 韦巍 何衍 智能控制基础 北京 清华大学出版社 2008 11 2 张良军 曹晶 蒋世忠 神经网络实用教程 机械工业出版社 2008 2 3 陈晓波 仿生态神经网络算法研究及其在声信号车型识别中的应用 D 长春 东北师 范大学 2008 5 4 马锐 人工神经网络原理 机械工业出版社 2009 10 附录附录 1 代码 代码 7 include include using namespace std 用 bp 解决异或的问题 class BP private double a 4 0 0 1 1 表中的 A 数据 double b 4 0 1 0 1 表中的 B 数据 double p 4 0 用来存储 p 的值 double q 4 0 用来存储 q 的值 double Sp 4 f 函数处理之前的 p 节点的值 double Sq 4 f 函数处理之前的 q 节点的值 double l 4 f 函数处理之前的 c 节点的值 double d 4 全局误差 double ep 4 隐藏层的误差 double eq 4 隐藏层的误差 double y 4 0 1 1 0 期望输出 权值 0 1 0 1 之间的值 double Wap 0 0543 节点 a 到节点 p 的权值 double Waq 0 0579 节点 a 到节点 q 的权值 double Wbp 0 0291 节点 b 到节点 p 的权值 double Wbq 0 0999 节点 b 到节点 q 的权值 double Vpc 0 0801 节点 p 到节点 c 的权值 double Vqc 0 0605 节点 q 到节点 c 的权值 阈值 double Rp 0 0703 p 节点的阈值 double Rq 0 0939 q 节点的阈值 double Rc 0 0109 c 节点的阈值 double m 0 6 n 0 6 mn 为学习速率 public double c 4 0 用来存储 c 节点的值 BP double f double a 函数 f 数学上是 1 1 e x double fl double a fl 是 f 的微分函数 void bp bp 算法函数 int main BP b b bp cout b c 0 endl cout b c 1 endl cout b c 2 endl cout b c 3 endl 输出 c 的值 因为 c 是实际输出 return 0 8 void BP bp for int j 0 j 15000 j 运行多次之后才能训练完成 for int i 0 i 4 i 4 组数据 Sp i a i Wap b i Wbp Rp 节点 p 的净输入 Sq i a i Waq b i Wbq Rq 节点 q 的经输入 p i f Sp i 节点 p 的输出 q i f Sq i 节点 q 的输出 l i p i Vpc q i Vqc Rc 节点 c 的净输入 c i f l i j 节点 c 的输出 即 bp 的实际输出 d i y i c i fl l i 输出层节点即 c 节点的校正误差 ep i Vpc d i fl Sp i 隐藏层的 p 节点的校正误差 eq i Vqc d i fl Sq i 隐藏层的 q 节点的校正误差 Vpc Vpc m d i p i 修正隐藏层至输出层的连接权值 Vqc Vqc m d i q i 修正隐藏层至输出层的连接权值 Rc Rc m d i 修正输出层的阈值 Wap Wap n ep i a i Waq Waq n eq i a i 修正输入层至隐藏层的连接权值 Wbp Wbp n ep i b i Wbq Wbq n eq i b i 修正输入层至隐藏层的连接权值 Rp Rp n ep i 修正隐藏层的阈值 Rq Rq n eq i 修正隐藏层的阈值 double BP f double a return1 1 exp a double BP fl double a return f a f a f a 附录附录 2 个人工作 个人工作 9 一 我个人的主要工作是负责技术报告的撰写 技术报告中共有摘要 技术路 线和实现方法 实验结果与分析 总结和参考文献五个部分 其中摘要 技术路线和实现方法 总结和参考文献等四个部分主要由我撰写 二 负责一小部分代码 BP 类中一些初始化的工作 参照图 2 1 根据 BP 神经 网络的初始状态 对各节点的阈值 各节点之间的权值进行初始化 A B 0 0579 0 0291 0 0543 0 0999 P 0 0703 Q 0 0939 C 0 0703 0 0801 0 0605 C 图 2 1 BP 网络结构示意图 class BP private double a 4 0 0 1 1 表中的 A 数据 double b 4 0 1 0 1 表中的 B 数据 double p 4 0 用来存储 p 的值 double q 4 0 用来存储 q 的值 double Sp 4 f 函数处理之前的 p 节点的值 double Sq 4 f 函数处理之前的 q 节点的值 double l 4 f 函数处理之前的 c 节点的值 double d 4 全局误差 double ep 4 隐藏层的误差 double eq 4 隐藏层的误差 double y 4 0 1 1 0 期望输出 权值 0 10 1 之间的值 double Wap 0 0543 节点 a 到节点 p 的权值 double Waq 0 0579 节点 a 到节点 q 的权值 double Wbp 0 0291 节点 b 到节点 p 的权值 double Wbq 0 0999 节点 b 到节点 q 的权值 double Vpc 0 0801 节点 p 到节点 c 的权值 double Vqc 0 0605 节点 q 到节点 c 的权值 阈值 double Rp 0 0703 p 节点的阈值 double Rq 0 0939 q 节点的阈值 10 double Rc 0 0109 c 节点的阈值 double m 0 6 n 0 6 mn 为学习速率 public double c 4 0 用来存储 c 节点的值 BP double f double a 函数 f 数学上是 1 1 e x double fl double a fl 是 f 的微分函数 void bp bp 算法函数 三 根据老师在课堂上的点评 对程序做了一步改进 使其对学习后的权值和 阈值也有一个输出 对程序的改进如下 首先把权值和阈值的变量改为公有 以便输出 class BP private double a 4 0 0 1 1 表中的 A 数据 double b 4 0 1 0 1 表中的 B 数据 double p 4 0 用来存储 p 的值 double q 4 0 用来存储 q 的值 double Sp 4 f 函数处理之前的 p 节点的值 double Sq 4 f 函数处理之前的 q 节点的值 double l 4 f 函数处理之前的 c 节点的值 double d 4 全局误差 double ep 4 隐藏层的误差 double eq 4 隐藏层的误差 double y 4 0 1 1 0 期望输出 double m 0 6 n 0 6 mn 为学习速率 double c 4 0 用来存储 c 节点的值 public 权值 0 10 1 之间的值 double Wap 0 0543 节点 a 到节点 p 的权值 double Waq 0 0579 节点 a 到节点 q 的权值 double Wbp 0 0291 节点 b 到节点 p 的权值 double Wbq 0 0999 节点 b 到节点 q 的权值 double Vpc 0 0801 节点 p 到节点 c 的权值 double Vqc 0 0605 节点 q 到节点 c 的权值 阈值 d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第8节 编辑小报说课稿-2023-2024学年初中信息技术(信息科技)七年级上册北师大版
- 1.1 疆域(第2课时) 说课稿2025-2026学年人教版地理八年级上册
- B Smart living (Speaking)教学设计-2025-2026学年初中英语沪教版五四学制2024七年级上册-沪教版五四学制2024
- 新疆喀什地区2025年-2026年小学六年级数学期末考试(上学期)试卷及答案
- 2025年地震观测精英选拔乡镇应急办招聘面试指南与模拟题集
- 2025年国际企业运营管理模拟考试试题及答案解析
- 广东省云浮市2025年-2026年小学六年级数学期中考试(上,下学期)试卷及答案
- 2025年健康照护师高级面试题解析职业理解与职业规划
- 预防接种人员培训课件
- 2025年市场营销经理岗位竞聘模拟题与答案详解
- 2025年cnc初级技工考试题及答案
- 露天煤矿无人驾驶技术应用发展报告
- 汽车吊吊装专项施工方案
- 长江上游黄河上中游地区天然林资源保护工程实施方案
- GB/T 5453-1997纺织品织物透气性的测定
- GB/T 14315-2008电力电缆导体用压接型铜、铝接线端子和连接管
- 农民工工资表(模板)
- 复变函数与积分变换全套课件
- 《室内空间设计》第三章课件
- 学习《北方民族大学学生违纪处分规定(修订)》课件
- 装配式建筑设计专篇(word6)
评论
0/150
提交评论