关于BP网络分类问题编程兼谈编程的问题.ppt

上传人:本田雅阁 文档编号:2439263 上传时间:2019-03-29 格式:PPT 页数:21 大小:172.01KB
返回 下载 相关 举报
关于BP网络分类问题编程兼谈编程的问题.ppt_第1页
第1页 / 共21页
关于BP网络分类问题编程兼谈编程的问题.ppt_第2页
第2页 / 共21页
关于BP网络分类问题编程兼谈编程的问题.ppt_第3页
第3页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《关于BP网络分类问题编程兼谈编程的问题.ppt》由会员分享,可在线阅读,更多相关《关于BP网络分类问题编程兼谈编程的问题.ppt(21页珍藏版)》请在三一文库上搜索。

1、关于BP网络分类问题编程 兼谈编程的问题,李金屏 模式识别与智能系统研究所 2006年11月,21,(C) IPRIS 济南大学模式识别与智能系统研究所,2,关于上机,每个人都要事先准备好,即课下一定要认真努力学习相关理论;不能上机时间临时准备,在不理解基本理论的情况下,根本不可能编好程序。 上机是要点名的,不能玩游戏和乱上网干些与编程无关的事情。否则平时成绩记为负15分。 首先完成编程的同学,请在下一周末之前(11月18日)和我联系。我要一一考察,内容:基本思想、每条指令、运行结果、机动要求的随时实现等。通过者平时成绩为正15分。每个人都要撰写上机报告。,21,(C) IPRIS 济南大学模

2、式识别与智能系统研究所,3,谈谈编程,首先要掌握语言本身,包括语法和各种语句用法。一般情况下,任何一种语言均可。 目前,人们经常使用C类语言。 要对所涉及的问题有深刻透彻的理解。一点点地模糊和不清楚,都会导致编程不成功。 要对计算方法中的一些常用算法有很好掌握。 要利用结构化、模块化编程思想,这样便于调试、维护和修改。,21,(C) IPRIS 济南大学模式识别与智能系统研究所,4,BP网络分类问题编程,问题描述 设计一个BP神经网络,通过训练能够将直角坐标系内的点进行分类,即:凡是第一象限内的点输出1,其余象限内的点输出0。 问题分析 该神经网络需要有两个输入节点、 一个输出节点,一个隐含层

3、应该 足够,节点数设定为3个。,21,(C) IPRIS 济南大学模式识别与智能系统研究所,5,BP网络分类问题编程,问题分析 为了使得程序更有推广性,假定输入层、隐含层和输出层节点个数分别为M、N和1个。 算法设计 1. 首先获得训练样本集合X1, X2, , XK; 每个样本形式是Xt=(xt1, xt2, Tt) 2. 给神经网络的每个权值赋给随机数:0-1之间 3. 对于每一个样本,都按照如下步骤计算:,21,(C) IPRIS 济南大学模式识别与智能系统研究所,6,BP网络分类问题编程,1) 计算每个隐含层节点的输入Yk t (i=1,2,N) 公式:其中k=1,2,3; j=1,2

4、 Wij是输入层到隐含层之间的权值。,2) 计算每个隐含层节点的输出。其中,k=1,2,3。即M =2, N =3. 其中Ok t也是输出层的输入。,21,(C) IPRIS 济南大学模式识别与智能系统研究所,7,BP网络分类问题编程,3) 计算输出层节点的输入。其中N=3,即k =1,2,3,4) 计算输出层节点的输出。,21,(C) IPRIS 济南大学模式识别与智能系统研究所,8,BP网络分类问题编程,5) 计算该输出的误差:,4. 计算所有输入样本的误差,然后求和:,5. 判别误差是否满足要求: 1) E是否比较稳定了? 2) E是否小于给定的阈值? 是,则程序结束;否则进行下一步。,

5、21,(C) IPRIS 济南大学模式识别与智能系统研究所,9,BP网络分类问题编程,其中g表示迭代的次数。关键在于求解偏导数。具体公式参见下页。,7. 返回步骤3。,6. 修改权值:,21,(C) IPRIS 济南大学模式识别与智能系统研究所,10,BP网络分类问题编程,备注:相关公式(具体推导过程参见下面四页) 其中 公式中其余各个符号的含义参见前面几页。,Wkj(g+1) = Wkj(g)+,Vk(g+1) = Vk(g) +,备注:上述公式以及下面几页的推导请同学们仔细地在核实一下,确保其正确性。,21,(C) IPRIS 济南大学模式识别与智能系统研究所,11,BP算法权值调节公式,

6、21,(C) IPRIS 济南大学模式识别与智能系统研究所,12,BP算法权值调节公式,21,(C) IPRIS 济南大学模式识别与智能系统研究所,13,BP算法权值调节公式,21,(C) IPRIS 济南大学模式识别与智能系统研究所,14,BP算法权值调节公式,21,(C) IPRIS 济南大学模式识别与智能系统研究所,15,BP网络分类问题的 程序设计,程序设计:一般包括这几部分 头文件 主程序 各个子程序 头文件 #include “stdio.h” #define ABC 6 void InputData(void); int (float, struct, et al); 包括:权值

7、及每个权值的修改量、 训练样本数组、误差阈值、学习率等,21,(C) IPRIS 济南大学模式识别与智能系统研究所,16,BP网络分类问题的 程序设计,主程序功能:main() 1) 初始化神经网络权值; InitializeWeights() 2) 读入训练样本;InputSamples() 3) 计算所有训练样本的输出误差; ComputeAllErr() 4) 判定输出误差是否满足要求: 是则中止并输出训练结果,Output() 否则继续; 5) 调节网络权值,返回3); AdjustWeights(),Begin,InitializeWeights(),InputSamples(),C

8、omputeAllErr(),AdjustWeights(),E OK?,Output(),21,(C) IPRIS 济南大学模式识别与智能系统研究所,17,BP网络分类问题的 程序设计,初始化网络权值:InitializeWeights() 权值要定义成全局变量; 权值要通过随机数函数赋值,范围在(-1,+1); 读入训练样本:InputSamples() 涉及到文件操作;或者数组赋值、结构体等(此时可以定义在头文件中)。 说明:训练样本至少要在50各以上,而且每个象限都要有,尽量分布均匀。其中第一象限要占1/3左右。 例如:TrainingDatamn:其中m表示样本个数,n表示每个样本中

9、的参数个数。,21,(C) IPRIS 济南大学模式识别与智能系统研究所,18,BP网络分类问题的 程序设计,计算所有训练样本的输出误差: ComputeAllErr() 通过一个循环,计算每一个样本的输出、误差、以及其对应的隐含层和输出层之间的权值修改量、输入层和输出层之间的权值修改量。这些可以同时算出。 调节网络权值: AdjustWeights() 根据在ComputeAllErr()计算出的隐含层和输出层之间的权值修改量、输入层和输出层之间的权值修改量(参见下式)进行修改。,21,(C) IPRIS 济南大学模式识别与智能系统研究所,19,关于上机报告和汇报,1、上机报告:第12周上交

10、。要如实写,根据自己真实的上机过程来写,没有结果没关系。包括: BP算法的基本思想; 问题分析和算法设计(自己的); 程序框图和算法流程; 基本变量定义、主函数和所有子函数作用以及内部代码设计的算法思想、整个程序的参数传递过程; 给出函数头文件原码(除了所有函数以外);,21,(C) IPRIS 济南大学模式识别与智能系统研究所,20,关于上机报告和汇报,主要子函数原码(自己选择,至少5个); 有运行结果的给出运行结果; 本次编程真实感受。 说明: 凡雷同者,没有充分理由的,所有涉案者平时成绩加-15分。 当面汇报:本周五中午之前报名截止 说明:根据上机情况限报15人,最早的15人为准。这些人的平时成绩正常情况下不会得负分。,The End,Questions?,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1