资源描述
1功能需求分析为确定某一红外测距传感器系统的数据处理算法,利用该测距系统进行如下实验:在不同温度下将目标放置不同的距离分别进行测距,每一温度下对同一目标连续测量7次,测量的实验数据见附表所示,请采用BP神经网络完成该系统的数据处理。2基于BP神经网络的数据处理研究2.1网络结构设计:2.1.1输入/输出向量设计:(1)根据已知条件,可将目标距离的理论值作为对测量温度和测量值的一个映射(二元函数)。由此,可以确定网络的输入为2维向量,且该网络为单输出神经网络。(2)由于输入向量有2个元素、输出向量有1个元素,所以网络输入层的神经元有2个,输出层神经元数目为1。2.1.2隐层设计:神经网络是误差后向传播神经网络,其隐含层结构的层数与各层节点数直接影响网络性能的优劣。1)隐含层数设计处理信号的能力是随层数的增加而增加的,如果有足够的隐藏层单元,输入模式也总能转换为适当的输出模式。然而并非隐藏层层数越多越好,根据经验使用二层以上的隐藏层反而没有益处。隐藏层越多,训练时间就会急剧增加。可由下式试算:Nceil(J(K-1)-(I-1)一般设置3层神经网络,可经过试验证明,当有1个隐层时,隐含层节点数从5到20数据失真程度比较大,如下列举个隐含层时,不同节点的预测值,设节点数为n,预测值为C)n=5;C=749.7047736.7878861.0423840.8174946.3727964.1661848.7755957.1995966.7064834.6629952.8767951.4090故本文采用2层隐层。n=6;C=744.3502749.9097862.9985841.2140946.7003964.7421n=10;C=743.5125754.1341850.6998n=20;C=745.1200742.9839863.1331而两个隐含层均较一层能达到较好的效果2)隐含层节点数设计确定隐藏层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐藏层节点数。隐藏层节点数过少,则无法产生足够的连接权组合数来满足若干样本的学习;隐藏层节点数过多,则学习以后网络的泛化能力变差。隐含层节点个数设计比较复杂,有基于最小二乘设计法、基于黄金分割设计法等。由于本文中隐含层数为2,查阅大部分资料无法查到,故单元数经过试验得出第一个隐含层单元数为2,第二个隐含层单元数为5输出的模型较为理想。2.1.3作用函数设计:1)隐层1作用函数取正切S型传递函数tansig函数,即:f(x)=1-e-2x,gx81+e2x2)隐层2作用函数取对数S型传递函数logsig函数,即f(x)二1,-gxg1+e-x3)输出层作用函数取线性函数purlin函数,即:f(x)=x,s4.10e-051.OT&-071.00e-131.00&-h10Progress-5.2Ne-uralNetworkAlgorithmsTraining:Levenberg-Marquardt(trainInn)Performance:MeanuaredErro-r(mse)Calculation&:MATLABProgressTime:ValidationChecks;5000OutputPerformance:Gradient:0.001&0t00e-141.00e-07I.OOe+10154iterations6.98e-11g.8fee-08I.OOe-09ValidationChecks:C=750.0029750.0009849.9996849.9999949.9969949.9972C=749.9997750.0004849.9974850.0001950.0001949.9994附程序代码运行结果:(2)大多数情况正常,但会遇到如下图的情况,gradient会很快到达,结果输出也很不正常,各种查阅资料也没得出结论。希望老师能帮忙解决。C=850.0000850.0000850.0000850.0000850.0000850.0000
展开阅读全文