北航神經网络作业—神经网络在采煤机故障诊断中的应用.docVIP

北航神經网络作业—神经网络在采煤机故障诊断中的应用.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北航神經网络作业—神经网络在采煤机故障诊断中的应用

智能控制及应用作业二 第PAGE \* MERGEFORMAT1页 目录 TOC \o 1-3 \h \z \u HYPERLINK \l _Toc308337201 1. 题目分析 PAGEREF _Toc308337201 \h 1 HYPERLINK \l _Toc308337202 2. 学习算法 PAGEREF _Toc308337202 \h 1 HYPERLINK \l _Toc308337203 3. 单层感知器的VC++程序实现 PAGEREF _Toc308337203 \h 4 4. HYPERLINK \l _Toc308337204 神经网络在采煤机故障诊断中的应用 PAGEREF _Toc308337204 \h 7 HYPERLINK \l _Toc308337205 参考文献: PAGEREF _Toc308337205 \h 9 题目分析 本章主要讲诉的是主要是神经网络控制及其应用的相关内容,作业题目共有两题,题目要求如下: 1、设计一个实现逻辑“与”的单计算层感知器,并写出其学习算法和程序。 2、紧密结合自己的专业背景、科研方向或解决问题的经历,谈谈学习人工神经网络或神经网络控制的必要性。要求说明自己的科研或专业背景,拟关注的问题或研究方向,与人工神经网络有什么关联。 单层感知器即三层(输入层、隐层和输出层,结点数分别为4、3和2)网络,其学习算法根据教材相关内容采用BP学习算法。 学习算法 根据教材中的相关介绍,神经网络算法主要步骤如下: 初始化,分别对输入层到隐层和隐层到输出层的权值矩阵W, V赋随机数,将样本计数器p和训练次数计数器q置为1,误差E置为0,学习率 QUOTE 设为0-1间的小数,网格训练精度Emin设为一正的小数。 输入训练样本,计算各层输出。用当前样本、对向量数组X、d赋值,根据以下公式计算Y和O中各分量: = f() , k= 1,2,3…l = f(), j= 1,2,3…m 计算各节点的实际输出。 ; 调整各层权值,按下式计算和: 检查是否对所有样本完成一次轮训。若完成,则进行下一步进行均方根误差计算;否则,返回步骤2。 计算网络总误差,检查是否达到精度要求。若达到计算要求,训练结束;否则,E置0,p置1,并返回步骤2,继续计算,直到达到精度要求为止。 具体的流程图如下: 单层感知器的VC++程序实现 按照3.1章节的学习算法,即可对其进行计算机编程实现,编程环境采用Microsoft Visual Studio 2008,程序清单如下: #include stdafx.h #include stdlib.h #include stdio.h #include time.h int i=0; int X1[4] = {0, 0,1, 1},X2[4] = {0, 1,0, 1}; int d[4] = {0,0,0, 1}; //样本X的期望输出值 float w[2],y,e[4]; float ec=0.0001; //指定输出偏差值 float step = 0.5; //学习步长 float b=0.6; //阈值 //定义激活函数 float f(float x) { if (x0) return 1; else return 0; } //定义学习训练函数 void xx (int i) { y=w[0]*X1[i]+w[1]*X2[i]; y=f(y-b); ec[i]=d[i]-y; } //权值调整函数 void repower(int i) { w[0]=w[0]+step*ec[i]*X1[i]; w[1]=w[1]+step*ec[i]*X2[i]; } int _tmain(int argc, _TCHAR* argv[]) { int count=0; //记录感知器训练次数 //初始化W矩阵 int j; for(j=0;j2;j++){ srand( (unsigned)time( NULL )+j*10 ); w[j]=(float)((rand()%10+1))/100; //随机生成较小的权值 } do { count++; if(count100){ printf( 单层感知器学习训练次数过多,请重新调整初始权值\n); break; } if(i==4) i=0; if(i4) {xx(i); repower(i); i++; } }while(ec[0]ECec[1]ECec[2]ECec[3]EC); if(count100){ printf( 权

文档评论(0)

cwhs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档