神经网络与回归方法分析(数学建模)_第1页
神经网络与回归方法分析(数学建模)_第2页
神经网络与回归方法分析(数学建模)_第3页
神经网络与回归方法分析(数学建模)_第4页
神经网络与回归方法分析(数学建模)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 神经网络的阈值是用来激活神经元而设置的一个临界值,有多少个神经元就会有多少个阈值,则第二层神经元的阈值为 的矩阵:-0.0580.2120.2300.2640.3450.3910.2840.190 同理,第二层与第三层之间的权值 为 的随机数矩阵:0.364-0.0910.3310.3220.176-0.0840.0810.1440.190-0.0390.1420.0040.2140.20 -0.075-0.003 同理,第三层阈值 为 的矩阵: -0.038 0.002步骤4、计算第一层神经元的输入与输出假设第一层神经元中放置的是线性函数,所以网络第一层输入和输出都等于实际输入样本的值,

2、所以第一层输出值 。但是,因为输入和输出样本的量纲以及量级都不相同,所以须进行归一化处理。步骤5、计算第二层神经元的输入对于第二层,神经元的输入是第一层所有的神经元的值与阈值的和,即 ,其中 是一个全为1的矩阵,所以 是一个 的矩阵,很容易得出。步骤6、计算第二层神经元的输出假设第二层神经元激励函数为单极S型函数,即为 ,所以第二层神经元的输出 .所以第二层输出也是一个 的矩阵。步骤7、计算第三层的输入和输出第三层输入与第二层输入相似,即 ,所以 是一个 的矩阵。步骤8、计算能量函数 能量函数,即网络输出与实际输出样本之间的误差平方和,其目的是在达到预定误差就可以停止训练网络。 是归一化处理后

3、的实际输出样本。则: 步骤9、计算第二层与第三层之间的权值和阈值调整量权值调整量: , 是一个 的矩阵-33.644 -39.7786 -38.55 -40.2511 -41.395-41.33 -37.804 -38.256-11.433 -11.8610-12.38-12.077 -12.935-13.32 -12.509-12.633同理,阈值调整量: , 是一个 矩阵: -67.628 -22.343步骤10、计算第一层与第二层之间的权值和阈值调整量 因为对于传递函数,有 , 故权值调整量: 所以 是一个 的矩阵:-0.183 0.482 0.710 -3.319 0.056 -0.1

4、35 -0.193 0.769-0.099 0.547 0.615 -2.893-0.138 0.635 0.438 -2.696-0.072 0.132 0.615 -1.4320.0764 -0.39 0.320 0.728-0.062 0.251 -0.066-0.730-0.101 0.323 0.1105-1.263同理,阈值调整量:所以 为 的矩阵:-7.1131.674-6.119-5.1014-3.9450.2310-0.9220 -2.335 步骤11 计算调整之后的权值和阈值 此算法是让网络沿着 变化量最小的方向搜索,所以经过一段时间的训练之后,神经网络会慢慢蜷缩收敛,直到

5、完全拟合成目标输出值或接近目标输出值。下面是y1的神经网络训练动态图: 步骤12 还原网络输出的值因为在训练网络时,将输入和输出的样本经过了归一化的处理,所以要将 还原成原始数据的量级。 根据此算法,我们编出了matlab程序,最终拟合结果如下:可以看出结果并不理想,相对于回归模型,误差并没有减小。4.2.3模型的修正由于模型的参数没有选择好,隐含层数量不足,模拟的效果并不好,于是我们重新建立了神经网络模型。最大训练次数5000学习速率0.05隐含神经元层数3 训练目标误差第一层隐含神经元个数8第二层隐含神经元个数12第三层隐含神经元个数8第一层隐含神经元传递函数Logsig函数第二层隐含神经

6、元传递函数Tansig函数第二层隐含神经元传递函数Logsig函数通过编写MATLAB工具箱程序,训练得到了下面的结果: 由此得到的结果从视觉上非常完美。我们用训练得到的网络验证了全部数据并提取了误差: 可以得到只有几个数据不是那么精确。 评价与总结我们抽取了部分数据,分别检验了回归模型和通过神经网络算法训练得到的网络,得到了误差,在此我们进行了具体的对比:Y1各种方法的误差如下表所示:多元线性回归多元非线性回归神经网络-85.0904821787169-95.619319253.29699779745964424.792490319265544.57531591.03267427223443

7、-306.965839850488-118.22418911.41849261959817387.691377753137591.00044611.40769147165338380.142282029398578.5609411-0.344012787002839-199.616107238563-80.20782097-1.45635726638154-129.642502715347-36.23732595-0.741747572508700128.499371703981149.0573092-2.38062294681544-154.070310811591-285.4248746-

8、0.983439225507443-86.1574120256765-81.42055792-0.0768780510191220113.101241465220-20.579109321.6425826979537497.5809506531405-109.527153-4.6059375200536521.778516647382020.663342040.315506918113215-75.749252079431697.977658720.0213160796229772160.434115149431193.9322939-7.7932043682303145.4330777517

9、973-48.750289850.962562717276339-89.5074215609946-72.65979483-0.19313149656832437.1321320006323231.9745218-1.98561499149395131.16015604519298.35915699-31.6251837157761153.754072389387-32.9530268-2.43601124801970Y2各种方法的误差如下表所示:多元线性回归多元非线性回归神经网络-30.39870495391526.1525970990.0872585163590145-12.9490793

10、890884-19.38873073-0.020593488054542210.7510720967549-21.497942390.0911796316330200-11.0095339782298-44.879570220.118073363295188-39.8078620699404-59.12548187-0.097385611231889951.251425016627532.2781036-0.201480587958699-28.5404648955414-52.64580805-0.250510979385689-56.9811916534564-64.47243588-0.

11、32865283829165137.467886252401440.39669528-0.04589381300257864.8985069551000811.68747331-0.0897937770061654-7.329402627026503.55897192-3.54122679937848-19.8734750618800-3.304613092-0.984659461024723-11.7901706398783-28.058524750.050955328372959119.9219390377847-12.39364672-0.0234371252933647-5.39651

12、527410106-23.63857455-0.28840509353831440.756577892204742.437521240.467194393960085-30.9074590838061-41.38639041-0.11444377393680612.1920784918839-25.40561238-0.0272714852628626-38.3271965029317-43.61624021-0.986235253808523-18.71638003971565.022890952-0.993467108071047 从对比中我们可以得出,无论是通过模拟的视觉效果上还是最后的

13、误差对比中,我们可以明显的得出,神经网络相对于回归模型误差小,得到的结果更加的精确。而回归模型中非线性相对于线性拟合的效果更好一些,对于和,不管是哪种模型,对于y2的拟合效果要比y1更精确。神经网络具有很强的鲁棒性、记忆能力、 HYPERLINK /s?wd=%E9%9D%9E%E7%BA%BF%E6%80%A7&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t /question/_blank 非线性映射能力以及强大的自学习能力,因此有很大的应用市场。但是实际神经网络也特别的不稳定,例如学习效率和神经元数量等参数对最后训练的结果影响非常的大,神经网络把一切

14、问题的特征都变为数字,把一切推理都变为数值计算,其结果势必是丢失信息,因此理论和学习算法还有待于进一步完善和提高。而回归分析法在分析多因素模型时,更加简单和方便;运用回归模型,只要采用的模型和数据相同,通过标准的统计方法可以计算出唯一的结果,但在图和表的形式中,数据之间关系的解释往往因人而异,不同分析者画出的拟合曲线很可能也是不一样的;回归分析可以准确地计量各个因素之间的相关程度与回归拟合程度的高低,提高预测方程式的效果;在回归分析法时,由于实际一个变量仅受单个因素的影响的情况极少,要注意模式的适合范围,所以一元回归分析法适用确实存在一个对因变量影响作用明显高于其他因素的变量是使用。多元回归分

15、析法比较适用于实际经济问题,受多因素综合影响时使用。但是有时候在回归分析中,选用何种因子和该因子采用何种表达式只是一种推测,这影响了用电因子的多样性和某些因子的不可测性,使得回归分析在某些情况下受到限制。不管是哪种方法都有各自的优缺点。合理选择适合问题的方法是最重要的。 5.参考文献【1】姜启源.数学模型.北京:高等教育出版社,2003.【2】赵静,但琦等,数学建模与数学实验,北京:高等教育出版社 施普林格出版社,2000年【3】李庆扬,王能超,易大义.数值分析(第四版)M.北京:清华大学出版社,2001.【4】张德丰.MATLAB数值计算方法.北京:机械工业出版社,2010. 【5】王惠文,

16、偏最小二乘回归方法及应用,国防科技出版社,北京,1996.【6】徐国章,等.曲线拟合的最小二乘法在数据采集中的应用【J】.冶金自动化增刊,2004年【7】(美)里德.数值分析与科学计算.北京:清华大学出版社,2008.【8】(美)约翰逊.数值分析与科学计算.北京:科学出版社,2012.【9】姜绍飞,张春丽,钟善桐.BP网络模型的改进方法探讨【J】哈尔滨建筑大学学报,2000.【10】郝中华.B P神经网络的非线性思想. 洛阳师范学院学报2008.3(4)【11】巨军让,卓戎.BP神经网络在Matlab中的方便实现.新疆石油学院学报.2008.2 【12】周开利,康耀红编著.神经网络模型及其MA

17、TLAB仿真程序设计.2006:10-43 附录:程序1x1=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,B2:B51);x2=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,C2:C51);x3=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,D2:D51);x4=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,E2:E51);y1=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,F2:F51);y2=xlsread(F:建模题新

18、建 Microsoft Excel 工作表.xls,G2:G51);x=x1,x2,x3,x4;x0=ones(size(x,1),1);t=1:50;X=x0,x;b,bint,r,rint,statsl=regress(y1,X);b1,bint,r1,rint,statsl=regress(y2,X);plot(t,r,t,r1)legend(误差y1,误差y2); 程序2M文件function f=myfun(beta,x) f=beta(1)+beta(2)*x(:,1)+beta(3)*x(:,2)+beta(4)*x(:,3)+beta(5)*x(:,4)+beta(6)*x(:

19、,1).*x(:,1)+beta(7)*x(:,1).*x(:,2)+beta(8)*x(:,1).*x(:,3)+beta(9)*x(:,1).*x(:,4)+. beta(10)*x(:,2).*x(:,2)+beta(11)*x(:,2).*x(:,3)+beta(12)*x(:,2).*x(:,4)+beta(13)*x(:,3).*x(:,3)+beta(14)*x(:,3).*x(:,4)+beta(15)*x(:,4).*x(:,4);endfunction f=myfun(beta1,x) f=beta1(1)+beta1(2)*x(:,1)+beta1(3)*x(:,2)+b

20、eta1(4)*x(:,3)+beta1(5)*x(:,4)+beta1(6)*x(:,1).*x(:,1)+beta1(7)*x(:,1).*x(:,2)+beta1(8)*x(:,1).*x(:,3)+beta1(9)*x(:,1).*x(:,4)+. beta1(10)*x(:,2).*x(:,2)+beta1(11)*x(:,2).*x(:,3)+beta1(12)*x(:,2).*x(:,4)+beta1(13)*x(:,3).*x(:,3)+beta1(14)*x(:,3).*x(:,4)+beta1(15)*x(:,4).*x(:,4);endx=x1,x2,x3,x4;beta

21、,r1 = nlinfit(x,y1,myfun,rand(1,15)-0.5)beta1,r2 = nlinfit(x,y2,myfun,rand(1,15)-0.5)t=1:50;plot(t,r1,t,r2)legend(误差y2,实际y1); legend(误差y1,实际y2); 程序3function main()clcclear all;close all;warning off;InputNum=50;%输入的数据个数TestNum=50;%测试的数据个数FutureNum=2;%预测的数据个数HiddenNum=6;%隐藏神经元个数Il=4; %输入神经元个数Ol=2; %输出

22、神经元个数x1=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,B2:B51);x2=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,C2:C51);x3=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,D2:D51);x4=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,E2:E51);y1=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,F2:F51);y2=xlsread(F:建模题新建 Microsoft Excel 工作表.x

23、ls,G2:G51);XX=x1;x2;x3;x4;YY=y1;y2;In,minp,maxp,tn,mint,maxt=premnmx(XX,YY);%对样本进行初始化Out=tn;%TestIn=In;%TestOut=Out;count=50000;%训练次数rate=0.035;%学习速率E0=0.65*10(-3);%目标误差P1=0.5*rand(HiddenNum,Il)-0.1;%输入层与隐含层之间权值T1=0.5*rand(HiddenNum,1)-0.1;%输入层与隐含层之间阈值P2=0.5*rand(Ol,HiddenNum)-0.1;%隐含层与输出层层之间权值T2=0.

24、5*rand(Ol,1)-0.1; %隐含层与输出层之间的阈值ErrHistory=;for i=1:count Mid=logsig(P1*In+repmat(T1,1,InputNum);%传递 SOut=P2*Mid+repmat(T2,1,InputNum); E=Out-SOut;%误差 SSE=sumsqr(E); EH=; EH=EH SSE; %调整权值和阈值 if SSEE0,break,end Adjust2=E; Adjust1=P2*Adjust2.*Mid.*(1-Mid); dP2=Adjust2*Mid;dT2=Adjust2*ones(InputNum,1);d

25、P1=Adjust1*In;dT1=Adjust1*ones(InputNum,1); %根据调整量进行改正权值和阈值 P2=P2+rate*dP2; T2=T2+rate*dT2; P1=P1+rate*dP1; T1=T1+rate*dT1; endMid=logsig(P1*In+repmat(T1,1,TestNum);SOut=P2*Mid+repmat(T2,1,TestNum);a=postmnmx(SOut,mint,maxt);x=1:50;newk=a(1,:);newh=a(2,:);figure;subplot(2,1,1);plot(x,newk,r-o,x,y1,b

26、-+);subplot(2,1,2);plot(x,newh,r-o,x,y2,b-+);程序4clc;close all;clear all;% 原始数据x1=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,B2:B51);x2=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,C2:C51);x3=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,D2:D51);x4=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,E2:E51);y1=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,F2:F51);y2=xlsread(F:建模题新建 Microsoft Excel 工作表.xls,G2:G51);%输入数据矩阵p=x1;x2;x3;x4;%目标数据矩阵t=y1;y2;%利用mapminmax函数对数据进行归一化pn,input_s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论