现代传感器实验报告 神经网络的研究

上传人:第*** 文档编号:57522055 上传时间:2018-10-22 格式:PDF 页数:11 大小:1.13MB
返回 下载 相关 举报
现代传感器实验报告 神经网络的研究_第1页
第1页 / 共11页
现代传感器实验报告 神经网络的研究_第2页
第2页 / 共11页
现代传感器实验报告 神经网络的研究_第3页
第3页 / 共11页
现代传感器实验报告 神经网络的研究_第4页
第4页 / 共11页
现代传感器实验报告 神经网络的研究_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《现代传感器实验报告 神经网络的研究》由会员分享,可在线阅读,更多相关《现代传感器实验报告 神经网络的研究(11页珍藏版)》请在金锄头文库上搜索。

1、2013-2014 学年第 2 学期院别:控制工程学院课程名称:现代传感器技术及应用实验名称:神经网络的研究实验教室:6 教指导教师:章 洁组员:赖百川2011071014温学林2011071015杨溢文2011071016官建伟2011071017实验日期:2014年5月4日评分:实验名称:神经网络的研究 实验目的:人工神经网络(Artificial Neural Network,简称 ANN)是一种高度并行的信息处理系统,它 具有高度的容错性,自组织能力和自学习能力;它以神经科学的研究成果为基础,反映了人 脑功能的若干基本特性, 对传统的计算机结构和人工智能方法是一个有力的挑战, 其目的在

2、 于探索人脑加工、储存和搜索信息的机制,进而应用于人工智能系统。研究神经网络的目的 可以归结为: 1)探求人脑神经系统的生物结构和机制; 2)用微电子学或光学器件形成特殊功能网络,主要应用于新一代计算机制造; 3)讲神经网络理论作为解决某些问题的一种手段和方法。实验仪器:计算机一台 Matlab 软件 labview 软件实验过程及结果:1. 面向 matlab 工具箱的神经网络设计(1)线性神经网络线性神经网络是最简单的一种神经元网络,它可以由一个或多个线性神经元构成。50 年 代末期提出的自适应线性元件是线性神经网络最早的典型代表。 其每个神经元的传递函数为 线性函数, 其输出可以取任意值

3、。 线性神经网络可以采用 Widrow-Hoff 学习规则, 也称为 LMS 算法来调整网络的权值和阈值。(2)线性神经网络模型线性神经元模型的神经元有一个线性传递函数 purelin,其输入输出之间是简单的比例关 系,一次对单个线性神经元,由图 1 可得,a=purelin(p+b).因此,线性神经网络允许输出 可以取任意值,而不仅仅是 0 或 1。图 1 线性神经元模型图 2 线性神经元传递函数具有 R 个输入的单层(S 个神经元)线性神经网络模型如下图 3 所示。图 3 单层多输入的线性神经网络模型(3)线性神经网络的学习算法Widrow-Hoff 学习规则,又称为最小均方误差 LMS(

4、Least Mean Square Error)学习 算法,由 Widrow-Hoff 提出,属于有导师学习算法。LMS 学习规则定义如下:221111( )( ( )( )mmkkmseekd ky kmm (3-1)其目标是通过调节权值,使 mse 从误差空间的某点开始,沿着 mse 的斜面向下滑行,最终使 mse 达到最小值。LMS 算法的实现有五个步骤: 第一步:初始化。给各个连接赋一个较小的随机值; 第二步:输入一个样本,计算连接权值的调整量:2( )( )2 ( ) ijijeke ke k(3-2)2( )( )2 ( )eke ke kbb(3-3)1( ) ( )( )Rij

5、i ijijie ked kp kb (3-4)第三步:调整连接权值: 根据负梯度下降的原则,网络权值和阈值修正公式如下(1)( )2( )( )(1)( )2( )Tkke k pkb kb ke k(3-5)式中为学习率,当其取较大值时,可以加快网络的训练速度,但是如果其值太大,会导致网络稳定性的降低和训练误差的增加。所以,为了保证网络进行稳定的训练,学习率的值必 须选择一个合适的值; 第四步:计算均方误差:221111( )( ( )( )mmkkmesekd ky kmm (3-6)第五步:判断误差是否为零或者是否达到预选设定的要求。如果是,则结束算法,否则输入 下一个样本,返回第二步

6、进入下一轮求解过程。(4)matlab 仿真实现matlab 代码及结果: %dlin1.m %NEWLIND %SIM clf; figure(gcf); P=1.0 -1.2; T=0.5 1.0; w_range=-1:0.1:1; b_range=-1:0.2:1; ES=errsurf(P,T,w_range,b_range,purelin); plotes(w_range,b_range,ES); ax=findobj(gcf.type,axes); pause net=neslind(P,T); format compact; A=0;E=0;SSE=0; A=sim(net,P

7、) E=T-A SSE=sumsqr(E) plotes(w_range,b_range,ES); plotep(net.IW1.1,net.b1,SSE); p=-1.2; a=0; a=sim(net,p)% 进行网络验证 disp(End of dline1) 执行程序,可得到线性网络求解后的误差曲面图 5 如下。图 5 线性网络误差曲面图 对此线性网络进行更多的训练以求最优解,则 matlab 程序更改如下。 % dlin2.m % NEWLIN % TRAIN % SIM clf; figure(gcf); P=1.0 -1.2; T=0.5 1.0; w_range=-1:0.2:

8、1; b_range=-1:0.2:1; ES=errsurf(P,T,w_range,b_range,purelin); plotes(w_range,b_range,ES); pause maxlr=0.40*maxlinlr(P,bias); net=newlin(-2 2.1.0,maxlr); net.trainParam.goal=.001; subplot(1,2,2); h=text(sum(get(gca,xlim)*0.5,sum(get(gca,ylim)*0.5*Click On ME*); set(h,horizontal,center,fontweight,bold

9、); net.IW1.1net.b1=ginput(1); delete(h); net,tr=train (net,P,T); format conpact; A=0;E=0;SSE=0; A=sim(net,P) E=T-A SSE=sumsqr(E) plotes(w_range,b_range,ES); plotep(net.IW1.1,net.b1,SSE); pause plotperf(tr,net.trainParam.goal); p=-1.2; a=sim(net,P) disp(End of dlin2) 运行程序,得到的误差曲面及误差等高线图如下图 6 所示。图 6 误

10、差曲面及误差等高线2. 面向 labview 的神经网络设计(1)BP 神经网络的算法BP 网络的学习过程是由正向传播和误差反向传播组成,把输入样本从输入层传到隐含 层单元,经隐含层单元逐层处理后产生一个输出,至输出层,这个过程为正向传播,如果输 出层没有得到所期望的输入值, 把期望值和输出值的误差信号按原路径返回, 并通过修改各 层神经元的连接权值,使误差信号为最小。这个过程为反向传播。 第一层为输入层,第 Q 层为输出层,中间为隐含层,如图 1.1。设第 q 层的神经元个数为 nq,输入到第 q 层的第 i 个神经元的连接权系数为)(q ijw(i=1,2,nq-1),该网络的输入输出变换

11、关系为10)1()()(qnjq jq ijq ixws()()1( 0q iqx,1)( 0q iw))(11)()()(q isq iq iesfx qni, 2 , 1 1,2 ,1qnqQq, 2 , 1图 1.1 神经元网络设给定P组输入输出样本T pnpppxxxx)0()0( 2)0( 1)0(0,21Qpnpppdddd设定拟合误差的代价函数为 PpniPppQ pipiQ ExdE1112)()(21采用一阶梯度法调节连接权系数 E 最小。 最后归纳出 BP 网络的学习算法如下:) 1()() 1()()()(kDkwkWq ijq ijq ij,0)1()()(q pjq

12、piq ijxD11)()()1()1()()1 ()(qnkq piq piq kiq pkq pixxw1 , 1,QQqqni, 2 , 11, 2 , 1qnj(2)利用 BP 神经网络进行曲线逼近选取学习样本,输入样本点 Xi(qni,2 ,1)为(0,1)上的随机数,这些随机数由LabVIEW 自带的函数产生。该神经网络为三层结构的神经网络,即由输入层,隐含层和输出 层组成,输入层为单输入,含 100 个神经元,隐含层只有一层,神经元个数为 10,输出层 为单输出,神经元个数为 100。 程序流程如下所示在了解 BP 曲线拟合算法后,采用了 LabVIEW 作为编程语言,这主要是由

13、于 LabVIEW 基于数 据流的编程风格非常适合描述神经网络的正向传播和误差反向传播的过程, 在本程序中, 用 while 循环和移位寄存器作为主要的循环手段,中间计算过程综合采用 LabVIEW 的矩阵运算 和数组运算,不仅简化了算法编程的难度,而且结构清晰。(3)labview 设计前面板设计:程序框图设计:运行结果: (1)训练样本和输入样本(2)训练过程(3)训练完成训练 34 次后误差为 9.83013E-5,达到了精度要求(小于 0.001) ,训练停止。 (4)误差曲线实验感悟:由于自身知识的局限性, 本文只是讨论了神经网络中最基本的 matlab 建模。我希望随着以后的深入学习,可以能够掌握 matlab 对神经网络的仿真方法 另外,利用了 LabVIEW 这种图形化语言来简化编程难度,但是,所有编程语言都只是我 们进行学习研究的辅助工具,其核心还是算法,只有真正了解 BP 算法,才能将这种算法用 于今后的学习研究中去。 通过实验,明白各种设计方法都各有优缺点,可以根据实际的情况去选择方案,调整, 修正算法。因此还需要对此进行更深入的研究。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号