您好,欢迎访问三七文档
2016神经网络一、神经网络的概念人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型,如右图。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式、权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。图1神经网络结构二、神经网络的分类没有反馈的前向网络(如BP)即各神经元接收前一层的输入,并输出给下一层,没有反馈。神经网络的连接相互结合型网络(如Hopfiled)即任意两个神经元都可能有连接,输入信号在网络中往返传递。主要细分如下:BP神经网络——是一种按误差逆传播算法训练的多层前馈网络。RBF(径向基函数神经网络)——能够逼近任意的非线性函数,可以处理系统内的难以解析的规律性,具有良好的泛化能力,并有很快的学习收敛速度。SOM(自组织特征映射神经网络)——是一种无导师学习的网络,主要用于对输入向量进行区域分类。ANNHopfiled神经网络——是一种递归神经网络,是一种结合存储系统和二元系统的神经网络。它保证了向局部极小的收敛,但收敛到错误的局部极小值,而非全局极小的情况也可能发生。ART网络——是一种无监督的矢量分类器,能按照已存储的最相似的模式对接收输入矢量进行分类。如果已确定一个输入模式明显地不同于已存在的类,则ART网络能创建一个新的相应于这个输入模式的神经元。三、神经网络的特点(1)可以充分逼近任意复杂的非线性关系;(2)所有定量或定性的信息都等势分布贮存于网络内的各神经元,故有很强的鲁棒性和容错性;(3)采用并行分布处理方法,能快速进行大量运算,具有高度的并行结构和并行实现能力,具有高速寻找优化解的能力,能够发挥计算机的高速运算能力,可能很快找到优化解。(4)具有自学习功能,通过对过去的历史数据的学习,训练出一个具有归纳全部数据的特定的神经网络,自学习功能对于预测有特别重要的意义。(5)能够同时处理定量、定性知识。四、神经网络的控制特点神经网络模式识别的过程分为两步:首先是学习过程,通过大量的训练样本,对网络进行训练,根据某种学习规则不断对连接权值进行调节,然后使网络具有某种期望的输出。这种输出就可以将训练样本正确分类到其所属类别中去,此时可以认为网络是学习到了输入数据或样本间的内在规律。接下来是分类过程,应用前面学习过程所训练好的权值,对任意送入网络的样本进行分类。神经网络控制具有自适应,并拥有一定的学习能力。当人们遇到用传统的控制方法控制效果不好的非线性、不确定对象的问题时,即人们面临控制对象难以建模的时候,神经网络强大的作用就显现出来了.。五、举例说明现在用一个例子具体说明神经网络的工作过程。举一个关于人识别技术的例子,当我们看过一个人也就是识别对象以后,我们首先提取其关键的外部特征比如身高,体形,面部特征,声音等等。根据这些信息大脑迅速在内部寻找相关的记忆区间,有这个人的信息的话,这个人就是熟人,否则就是陌生人。人工神经网络就是这种机理。假设下图中X(1)代表我们给电脑输入的人的面部特征,X(2)代表人的身高特征,X(3)代表人的体形特征,X(4)代表人的声音特征。W(1)W(2)W(3)W(4)分别代表四种特征的连接权重。图2神经元数学模型现在随便找一个人A站在电脑前,电脑根据预设变量提取这个人的信息(面部信息,身高多少,体形胖瘦,声音特征),链接权重初始值是随机的,假设每一个W均是0.25,这时候电脑按这个公式自动计算,Y=X(1)*W(1)+X(2)*W(2)+X(3)*W(3)+X(4)*W(4)得出一个结果Y,这个Y要和一个门槛值(设为Q)进行比较,如果YQ,那么电脑就判定这个人是A,否则判定不是A。由于第一次计算电脑没有经验,所以结果是随机的,我们认定结果是正确的。现在还是让A站在电脑前,A怕被电脑认出来换了一件衣服。这个行为影响了A的体形,就是X(3)发生了变化,所以最后计算的Y值也变了,它和Q比较的结果随即也发生了变化。这时候电脑判断失误了,它的结论是这个人不是A,但是我们告诉它这个人就是A,电脑就会追溯自己的判断过程到底是哪一步出错了,当发现A的体形X(3)这个体征的变化导致了它判断失误。这个属性值对电脑在人的识别中就不那么重要,电脑自动修改其权重W(3)。第一次对体型X(3)的权值W(3)=0.25就相信了,现在降低信任值,0.10就相信了,修改了这个权重也就意味着电脑通过学习认为体形在判断一个人是否是自己认识的人的时候并不是那么重要。这就是机器学习的一个循环,我们可以要求A再改变身高这个属性,让电脑再一次进行学习。.通过变换所有可能变换的外部特征,轮换让电脑学习记忆,多次学习后,电脑就会记住A这个人比较关键的特征——也就是没有经过修改的特征。经过A的训练电脑,电脑已经非常聪明了,这时再怎么改变A的外部特征,电脑都可以迅速的判断这个人就是A,因为电脑已经不主要依据这些外部特征识别人了,通过改变衣服、身高已经骗不了它了。这就是神经网络工作的主要特征。六、BP神经网络实例分析BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成,即利用输出层的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差。如此下去,就获得了所有其他各层的误差估计。这样就形成了将输出端表现出的误差沿着与输入信号传送相反的方向逐级向网络的输入端传递的过程。因此,人们就又将此算法称为向后传播算法,简称BP算法。根据BP网络的算法,我们可得流程图如下。否参数设置计算并保存各网络层的输出修正并保存权值和阈值初始化权值和阈值是否满足精度计算并保存传递误差结论是训练周期数图3BP网络流程图某大学某班体育课进行班级体育测试。一个同学因临时有事,举重未测,现在通过其他同学的成绩进行神经网络预测。最终估计出此同学合理的举重成绩。现将所有同学的各项成绩汇总成表,并把缺省同学的缺省项成绩空出,通过BP神经网络进行预测。表1是男生体能测试的各项素质指标。根据表1,预测15号同学的举重成绩。表1某班男生体育测试各项素质指标1、隐层设计有研究表明,有一个隐层的神经网络,只要隐节点足够多,就可以以任意精度逼近一个非线性函数。因此,本文采用含有一个隐层的三层多输入单输出的BP网络建立预测模型。在网络设计过程中,隐层神经元数的确定十分重要。隐层神经元个数过多,会加大网络计算量并容易产生过度拟合问题,神经元个数过少,则会影响网络性能,达不到预期效果。网络中隐层神经元的数目与实际问题的复杂程度、输入和输出层的神经元数以及对期望误差的设定有着直接的联系。目前,对于隐层中神经元数目的确定并没有明确的公式,只有一些经验公式,神经元个数的最终确定还是需要根据经验和多次实验来确定。本文在选取隐层神经元个数的问题上参照了以下的经验公式:其中,n为输入层神经元个数,m为输出层神经元个数,a为[1,10]之间的常数。根据上式可以计算出神经元个数为4-13个之间,在本次实验中选择隐层神经元个数为6。图4实例神经网络关系图在此将前14位男生的各项素质指标作为输入,即(跳远、引体向上、立定三级跳远、助跑摸高,助跑跳高、俯卧撑、肺活量、100m),将对应的举重成绩作为输出。并用将这些数据归一化处理。BP神经网络通常采用Sigmoid可微函数和线性函数作为网络的激励函数。在此选择S型正切函数trainlm作为隐层神经元的激励函数。而由于网络的输出归一到[-1,1]范围内,因此预测模型选取双曲正切S型对数函数tansig作为输出层神经元的激励函数。2、模型的matlab实现此次预测选用MATLAB中的神经网络工具箱进行网络的训练,预测模型的具体实现步骤如下:将训练样本数据归一化后输入网络,设定网络隐层和输出层激励函数分别为tansig和tansig函数,网络训练函数为trainlm,隐层神经元数设为6。网络迭代次数epochs为1000次,期望误差goal为0.00001,学习速率lr为0.01。设定完参数后,开始训练网络。该图显示此网络是一个三层网络,一个隐含层,隐含层的神经元有6个,输入层有8个输入,最后有1个输出。网络通过4次重复学习达到期望误差后则完成学习。图5神经网络仿真过程3、matlab实现图6matlab训练模拟仿真结果网络训练结果校验图。在神经网络工具箱中进行训练网络并预测输出。网络训练好后,把此同学的其余几项成绩作为预测输入输进网络模型中,最后得到此同学的举重成绩为51.68。图7预测结果4、神经网络工具箱实现5、matlab代码loadM523inputoutputinput_test[inputn,inputps]=mapminmax(input);[outputn,outputps]=mapminmax(output);net=newff(inputn,outputn,6);net.trainParam.epochs=1000;net.trainParam.lr=0.1;net.trainParam.goal=0.00001;net=train(net,inputn,outputn);inputn_test=mapminmax('apply',input_test,inputps);an=sim(net,inputn_test);BPoutput=mapminmax('reverse',an,outputps);E=output-BPoutputMSE=mse(E)echooffinput=[2.242.332.242.322.22.272.22.262.22.242.242.22.22.35;129118810121491310101211;9.610.3910.310.1109.699.69.29.599.59.7;2.452.752.52.652.52.42.552.52.552.52.42.12.62.45;2.152.22.22.222.152.142.12.12.12.1522.12.15;140120140150801301301001301401158090130;29003000320028003500360030003200290036003500340029003300;1110.911.410.811.311.511.811.311.81111.91311.110.85];output=[5070508050606540655050507070];input_test=[2.2;12;9.3;3.3;2.05;100;2.8;11.2]6、附M523.dat七、问题1、模糊算法模糊化的方法有哪些?2、分析鲁棒稳定性的方法有哪些?3、在最优控制的动态系统中,控制无约束时,采用什么方法;当控制有约束时,采用什么方法?4、H无穷控制主要用于怎样的鲁棒控制问题?5、自适应控制和最优控制不同之处是什么?谢谢!
本文标题:5神经网络
链接地址:https://www.777doc.com/doc-2929965 .html