您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 7基于神经网络的模式识别实验要求
实验七基于神经网络的模式识别实验一、实验目的理解BP神经网络和离散Hopfield神经网络的结构和原理,掌握反向传播学习算法对神经元的训练过程,了解反向传播公式。通过构建BP网络和离散Hopfield网络模式识别实例,熟悉前馈网络和反馈网络的原理及结构。二、实验原理BP学习算法是通过反向学习过程使误差最小,其算法过程从输出节点开始,反向地向第一隐含层(即最接近输入层的隐含层)传播由总误差引起的权值修正。BP网络不仅含有输入节点和输出节点,而且含有一层或多层隐(层)节点。输入信号先向前传递到隐节点,经过作用后,再把隐节点的输出信息传递到输出节点,最后给出输出结果。离散Hopfield神经网络的联想记忆过程分为学习和联想两个阶段。在给定样本的条件下,按照Hebb学习规则调整连接权值,使得存储的样本成为网络的稳定状态,这就是学习阶段。联想是指在连接权值不变的情况下,输入部分不全或者受了干扰的信息,最终网络输出某个稳定状态。三、实验条件Matlab7.X的神经网络工具箱:在Matlab7.X的命令窗口输入nntool,然后在键盘上输入Enter键,即可打开神经网络工具箱。四、实验内容1.针对教材P243例8.1,设计一个BP网络结构模型(63-6-9),并以教材图8.5为训练样本数据,图8.6为测试数据。(1)运行train_data.m和test_data.m文件,然后从Matlab工作空间导入(Import)训练样本数据(inputdata10,outputdata10)和测试数据(testinputdata,testoutputdata),其次新建一个神经网络(NewNetwork),选择参数如下表1,给出BP神经网络结构图。表1BP网络结构模型的各项参数设置NetworkName(神经网络名称)nn10_1NetworkType(神经网络类型)Feed-forwardbackprop(前馈反向传播)Inputranges(输入信息范围)来自训练样本的输入数据(inputdata10)Trainingfunction(训练函数)TRAINGD(梯度下降BP算法)Performancefunction(性能函数)MSE(均方误差)Numberoflayers(神经网络层数)2Layer1(第1层)的Numberofneurons(神经元个数)6Layer1(第1层)的TransferFunction(传递函数)LOGSIG(S型函数)Layer2(第2层)的Numberofneurons(神经元个数)9Layer2(第2层)的TransferFunction(传递函数)LOGSIG(S型函数)(2)输入训练样本数据(inputdata10,outputdata10),随机初始化连接权(InitializeWeights),然后进行训练(Train),训练参数设置如表2所示,并观察训练目标值变化曲线图,最后把BP神经网络训练成功后(即误差不再变化后)的误差值填入表3。表2BP网络训练参数训练次数(epochs)10000训练时间(time)Inf训练目标(goal)0学习率(lr)0.3最大确认失败次数(max_fail)5最小性能梯度(min_grad)1e-050两次显示之间的训练步数(show)25表3BP网络各训练算法的训练目标值Trainingfunction(训练函数)NetworkName(神经网络名称)训练次数(epochs)Performance(训练目标值)TRAINGD(梯度下降BP算法)nn10_1100007.22e-5TRAINGDM(梯度下降动量BP算法)nn10_2100001.57e-4TRAINLMM(Levenberg-MarquardtBP训练函数)nn10_312766.4269e-27TRAINRP(弹性BP算法)nn10_4192.41974e-59TRAINSCG(变梯度算法)nn10_51924.343e-51(3)选择不同的训练函数,例如TRAINGDM(梯度下降动量BP算法)、TRAINLMM(Levenberg-MarquardtBP训练函数)、TRAINRP(弹性BP算法)、TRAINSCG(变梯度算法),然后输入训练样本数据(inputdata10,outputdata10),训练参数设置如表2所示,设置相同的初始连接权(RevertWeights),观察不同BP训练算法的学习效果,把各训练算法的训练目标值填入上表3。W(1,1)[00000000001.45890.62922-0.303950.839770.151560.31507-0.90606001.8891.667501.02111.895601.948300-0.191460.16119-1.7775-1.81260.598960.498181.502900-0.9685600.51842-0.546000.1860600-0.312860.993350.0220831.1309-1.148-1.2824-0.231180000000000;0000000000-0.282320.246470.512910.135291.02141.60250.92207001.2801-1.13960-1.549-0.598980-1.9332000.2891.32751.66141.13291.4645-0.00991770.1475300-0.360760-1.38490.734500-1.754200-1.29970.85783-0.42611-1.0490.0656611.0095-1.60370000000000;00000000001.0986-0.34875-1.08440.6736-1.80860.970841.1017000.754960.27260-0.39057-1.06770-1.151200-0.085097-1.6495-0.080194-0.20096-1.20780.83035-0.097153001.608401.45490.4236800-1.0194001.8862-1.8186-0.452241.2279-1.34440.640851.42870000000000;00000000001.37-1.1125-1.44710.16581-0.83595-1.49461.113800-1.0932-1.03980-0.193831.468501.379700-1.20770.93513-0.665610.19019-1.3707-1.3673-1.5323000.783780-0.21138-1.257000.67053000.138391.2447-1.0399-1.50380.98705-0.778061.21120000000000;00000000000.93023-0.28963-1.4546-0.309390.789570.0059375-1.5108000.77569-0.4088201.7920.7852201.507000.247180.44094-1.59131.7716-0.64974-1.39960.7212800-1.461801.46690.80029000.5661600-0.891620.87991.11150.25592-0.404631.4639-1.77490000000000;00000000000.90985-0.36508-1.75770.57678-0.502540.87912-1.2187000.10614-1.065400.0089151.00490-1.351001.11560.119381.17941.1964-1.28040.107930.4407600-1.705401.92161.123300-1.1855001.4106-0.112981.6224-0.15281-1.9544-0.886790.0662910000000000]W(2,1)[-17.5637-8.8609-15.5671-15.7378-10.6268-10.2519;-17.5072-13.0888-17.7141-12.2958-15.5464-9.0403;-17.5694-10.423-17.989-10.0937-11.4037-14.3463;-13.2938-14.7604-16.3716-8.2908-11.3267-7.9281;-14.7356-12.5772-17.3334-9.8463-7.2565-12.4141;-12.9563-17.5364-8.9346-16.4025-12.894-8.9335;-13.6787-16.0963-12.2998-7.8669-7.6758-13.1525;-9.4472-12.7801-8.7146-9.4669-17.5422-14.0505;-13.8608-6.9467-15.5058-16.3728-14.0474-16.0129]B{1}[-2.169;3.8995;3.8994;6.7814;0.44775;3.0767]B{2}[-8.6502;-6.3676;-9.0609;-14.9974;-14.9111;-12.1544;-18.6268;-12.9632;-14.6577](4)选择训练目标值最小的一种训练算法,选择Weights选项给出其训练后的连接权值和偏置,然后输入测试数据(testinputdata,testoutputdata)进行仿真(Simulate),并把训练和测试的结果都导出(Export)到工作空间,给出训练后的输出结果和输出误差,以及测试后的输出结果和输出误差。(5)对步骤(4)所选择的训练算法,再增加30组样本,然后新建一个神经网络(NewNetwork)的结构为63-16-4,设置NetworkName(神经网络名称)为nn40,并重新按照步骤(2)进行训练(Train),即输入训练样本数据(inputdata40,outputdata8421_40),训练参数设置如表2所示,随机初始化连接权(InitializeWeights)。其次输入测试数据(testinputdata,testoutputdata8421)进行仿真(Simulate),并把训练和测试的结果都导出到工作空间,给出训练后的输出结果和输出误差,以及测试后的输出结果和输出误差Output[6.4658e-0325.176e-0303.3407e-0371.2647e-0322.1775e-0294.1847e-0333.2913e-0291.866e-0322.4602e-0325.1139e-036;2.8619e-0335.4329e-0317.8936e-0393.2163e-0342.0643e-0311.1376e-0343.4609e-0313.4475e-0342.1608e-0341.541e-037;8.8244e-0327.5927e-0318.3302e-0391.0628e-0331.1513e-0313.8768e-0338.3794e-0305.3121e-0348.0155e-0332.822e-037;1.7847e-0324.8828e-0316.8344e-0373.2967e-0339.4295e-0324.1005e-0334.3032e-0311.0454e-0331.8176e-0331.0279e-035;2.1251e-0329.0666e-0326.4794e-0381.3767e-0333.3935e-0326.314e-0331.4509e-0302.8968e-0344.9323e-0331.554e-036;7.2312e-0332.2049e-0321.0651e-0373.4831e-0346.1443e-0321.3019e-0334.1507e-0325.3259e-0352.1269e-0341
本文标题:7基于神经网络的模式识别实验要求
链接地址:https://www.777doc.com/doc-4172847 .html