智能控制实验报告-北航研究生课程-机械臂回零+神经网络+模糊控制(7)
通常是凭经验或实验获取,但即使这样,对训练开始初期功效较好的学习速率,不见得对后来的训练合适。为了解决这个问题,人们自然想到在训练过程中,自动调节学习速率。通常调节学习速率的准则是:检查权值是否真正降低了误差函数,如果确实如此,则说明所选学习速率小了,可以适当增加一个量;若不是这样,而产生了过调,那幺就应该减少学习速率的值。下式给出了一个自适应学习速率的调整公式:
?1.05?(k)E(k?1)?E(k)??(k?1)??0.7?(k)E(k?1)?1.04E(k), E(k)为第k步误差平方和。
??(k)其它?初始学习速率?(0)的选取范围可以有很大的随意性。
③动量-自适应学习速率调整算法
当采用前述的动量法时,BP算法可以找到全局最优解,而当采用自适应学习速率时,BP算法可以缩短训练时间, 采用这两种方法也可以用来训练神经网络,该方法称为动量-自适应学习速率调整算法。
二、实验结果、数据
1、设计BP神经网络完成对不同形状工件进行识别
建立一个三层前馈BP神经网络: 输入量:选择对输出影响大且能够观测的变量;各输入量之间互不相关或相关性很小;输入量一般要通过信号处理或特征提取技术提取参数。
训练样本集:训练样本数是网络连接权总数的5-10倍;样本要有代表性,样本类别均衡,不同类别的样本交叉输入,进行训练测试;
初始权值:取足够小的初始权值;使初始值为+1和-1的权值数相等。
具体设计的BP神经网络训练程序参数如下: 输入层节点数为8*16=128; 隐含层数目为10; 输出层节点数为4;
训练步长(学习效率)0.015; 最小均方误差0.001; 相关系数定为0;
样本数量为10,如下所示:
2、程序的主要部分及运行结果
BP神经网络流程图
(1)附上BP神经网络部分补充的主要程序(基于模板test/BP.C Haeder File):
/*** 随机初始化权值 ***/
void bpnn_randomize_weights(double **w, int m, int n) { int i, j; for (i = 0; i <= m; i++) { for (j = 0; j <= n; j++) { w[i][j] = dpn1(); } }
}
/*** 0初始化权值 ***/
void bpnn_zero_weights(double **w, int m, int n) { int i, j; for (i = 0; i <= m; i++) { for (j = 0; j <= n; j++) { w[i][j] = 0.0; } } }
/*********前向传输*********/
void bpnn_layerforward(double *l1, double *l2, double **conn, int n1, int n2) { double sum; int j, k; /*** 设置阈值 ***/ l1[0] = 1.0; /*** 对于第二层的每个神经元 ***/ for (j = 1; j <= n2; j++) { /*** 计算输入的加权总和 ***/ sum = 0.0; for (k = 0; k <= n1; k++) { sum += conn[k][j] * l1[k]; } l2[j] = squash(sum); } }
/* 输出误差 */
void bpnn_output_error(double *delta, double *target, double *output, int nj) { int j; double o, t, errsum; errsum = 0.0; for (j = 1; j <= nj; j++) {
o = output[j]; t = target[j]; delta[j] = o * (1.0 - o) * (t - o); } }
/* 隐含层误差 */
void bpnn_hidden_error(double* delta_h, int nh, double *delta_o, int no, double **who, double *hidden) { int j, k; double h, sum, errsum; errsum = 0.0; for (j = 1; j <= nh; j++) { h = hidden[j]; sum = 0.0; for (k = 1; k <= no; k++) { sum += delta_o[k] * who[j][k]; } delta_h[j] = h * (1.0 - h) * sum; } }
/* 调整权值 */
void bpnn_adjust_weights(double *delta, int ndelta, double *ly, int nly, double** w, double **oldw, double eta, double momentum) { double new_dw; int k, j; ly[0] = 1.0; for (j = 1; j <= ndelta; j++) { for (k = 0; k <= nly; k++) { new_dw = ((eta * delta[j] * ly[k]) + (momentum * oldw[k][j])); w[k][j] += new_dw; oldw[k][j] = new_dw; } }
}
实验结果:经过对10个样本的训练,最小均方误差满足了低于给定值0.001的要求,根据归一化最小均方误差准则可知该神经网络效果良好。并通过测试,准确的识别出了如下两个工件的形状。
三、结果分析及讨论
通过对老师给的BP神经网络教学程序的学习,对于BP神经网络的人工智能训练过程有了初步的理解和体会,在此基础上对BP神经网络在MATLAB中用于实现对字符识别等方面的应用进行了较为详尽的学习。其中应用较为成熟有手写体字符识别以及车牌号码识别等。
快速发展的Matlab软件为神经网络理论的实现提供了一种便利的仿真手段。Matlab神经网络工具箱的出现,更加拓宽了神经网络的应用空间。神经网络工具箱将很多原本需要手动计算的工作交给计算机,一方面提高了工作效率,另一方面,还提高了计算的准确度和精度,减轻了工程人员的负担。
神经网络工具箱是在MATLAB环境下开发出来的许多工具箱之一。它以人工神经网络理论为基础,利用MATLAB编程语言构造出许多典型神经网络的框架和相关的函数。这些工具箱函数主要为两大部分。一部分函数特别针对某一种类型的神经网络的,如感知器的创建函数、BP网络的训练函数等。而另外一部分函数则是通用的,几乎可以用于所有类型的神经网络,如神经网络仿真函数、初始化函数和训练函数等。这些函数的MATLAB实现,使得设计者对所选定网络进行计算过程,转变为对函数的调用和参数的选择,这样一来,网络设计人员可以根据自己的的需要去调用工具箱中有关的设计和训练程序,从烦琐的编程中解脱出来,集中精力解决其他问题,从而提高了工作效率。
基于 BP 神经网络实现字符识别,主要分为以下几步,第一,首先对目标图像进行识别前预处理。包括灰度图像二值化、图像孤立像素滤波、图像膨胀、腐蚀、按字母最小行分割、按字母最小列分割、图像紧缩、归一化等;第二,用处理好的多个样本进行BP神经网络训练。包括BP网络参数的选择、目标结果构建、输入到结果的映射即用样本库进行神经网络学习机的训练;第三,待测字母的识别。包括对图像预处理、字符提取、归一化和送入已训练好的BP网络进行识别。
以下介绍基于MATLAB的BP神经网络对带噪的十六进制字符的识别: 以下是程序:
…… 此处隐藏:944字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




