神经网络学习报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络学习报告
一神经网络的特点及其应用
神经网络是一种黑箱建模工具,所谓黑箱建模就是在对研究对象系统一无所知的情况下,将该系统看作“黑匣子”,借助已有的数据,通过数学计算得到系统输入与输出之间的关系。这一方法相对于其他的建模方式具有一下特点:
有很强的适应能力
有很强的学习能力
是多输入多输出的系统
随着人们对神经网络的深入的研究,神经网络得以在很多场合都有了应用。尤其是在模式识别,人工智能,信息处理,计算机科学等方面;
模式识别及图像处理
语音识别,人脸识别,指纹识别,签字识别,字符识别,目标检测与识别,图像压缩和图像还原等;
控制及优化
工业过程控制,机器人运动控制,家电智能控制,集成电路设计等;
(3)预测和信息管理
股票市场数据预测,地震预测,证券管理,交通管理,IC卡管理等;
(4)通信领域
自适应均衡,回波抵消,ATM网络中的呼叫接纳识别以及控制和路由选择等;
二人工神经网络的基本模型及其实现
人工神经网络是由多个神经元构成的如下图1所示:
..
神经元的结构如下图2所示:
图中X1——Xn是该神经元的输入信号,当然此信号有可能来自系统的输入信号,也有可能来自前面的其他神经元。Wij表示从神经元i到神经元j的连接权值,Wi0表示一个阈值。所以神经元i的输入与输出的关系为:
(1)
(2)
neti称为神经元i的净激活,若neti大于零则该神经元处于激活状态,若小于零则处于抑制状态。
三BP神经网络的设计
BP神经网络的设计步骤如下图:
数据的读取
数据很少可以直接在程序中给出,则无需读取。若数据很多,可以另外存储在一个text,mat文件中使用load函数就这可以直接读取。
数据归一化
数据归一化就是把实验数据映射到[0,1]或[-1,1]或者更小的区间上。
Matlab数据归一化函数有premnmx,postmnmx,tramnmx三个函数;
语法为:[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);
[pn]=tramnmx(p,minp,maxp)
[p,t]=postmnmx(pn,minp,maxp,tn,mint,maxt)
(3)创建神经网络
创建神经网络的函数有很多,常用的为newff函数语法为:net=newff(A,B,{C},’trainfun’)其中A我n*2矩阵,第i行的最大值和最小值;B为k维行向量,其元素为网络中各层的神经元个数;C为各层对应的激活函数;trainfun为学习规则采用的学习方法;
(4)训练参数的设置
训练参数设置如下:
目标误差:net.trainparam.goal;
显示中间结果的周期:net.trainparam.show;
最大迭代次数:net.trainparam.epochs;
学习率:net.trainparam.Ir;
(5)训练函数的格式
语法:[net,tr,Y1,E]=train(net,X,Y)
X为网络输入;Y为网络应有输出;tr为训练跟踪信息;Y1为网络实际输出;E为误差矩阵;(6)参数仿真
语法:Y=sim(net,X)
其中为网络,X为输入网络的K*N矩阵,K为样本数,N为数据样本数;Y:输出矩阵Q*N,Q为网络输出个数;
四Matlab BP神经网络实例
实例以Iris的特征和种类数据作为神经网络的测试数据。这种花有三种品种,不同品种之间花的花萼长度,宽度和花瓣长度,宽度不同,本实例目的是为了找到品种和花萼花瓣的特征的对应关系;本实例共150组数据其中75作为训练数据,其中三种花各25组数据;
75组数据作为检验样本,三种花依次编号为1,2,3.因此数据有四个输入,三个输出;Matlab程序如下:
[f1,f2,f3,f4,class] = textread('trainData.txt' , '%f%f%f%f%f',150);
[input,minI,maxI] = premnmx( [f1 , f2 , f3 , f4 ]') ;
s = length( class ) ;
output = zeros( s , 3 ) ;
for i = 1 : s
output( i , class( i ) ) = 1 ;
end
net = newff( minmax(input) , [10 3] , { 'logsig' 'purelin' } , 'traingdx' ) ;
net.trainparam.show = 50 ;
net.trainparam.epochs = 500 ;
net.trainparam.goal = 0.01 ;
net.trainParam.lr = 0.01 ;
net = train( net, input , output' ) ;
[t1, t2, t3, t4, c] = textread('testData.txt' , '%f%f%f%f%f',150);
testInput = tramnmx ( [t1,t2,t3,t4]' , minI, maxI ) ;
Y = sim( net , testInput )
[s1 , s2] = size( Y ) ;
hitNum = 0 ;
for i = 1 : s2
[m , Index] = max( Y( : , i ) ) ;
if( Index == c(i) )
hitNum = hitNum + 1 ;
end
end
sprintf('识别率是%3.3f%%',100 * hitNum / s2 )
程序运行结果
Y =
Columns 1 through 14
0.9423 0.9182 1.0313 1.0345 0.9841 0.9614 0.9306 1.0504
1.0096 0.9814 1.0416 1.0238 1.1002 0.9413
0.0398 0.0800 -0.0385 -0.0458 -0.0005 0.0216 0.0735 -0.0478 0.0051 -0.0019 -0.0668 -0.0230 -0.1206 0.0420
0.0057 -0.0007 0.0067 0.0130 -0.0030 0.0002 0.0060 0.0016 -0.0052 0.0126 0.0335 0.0069 0.0151 0.0168
Columns 15 through 28
1.0300 1.0227 0.5615 1.0105 0.8169 0.9469 0.8956 1.0403 1.0094 1.0293 1.0336 0.0308 -0.0060 -0.0119
-0.0424 -0.0351 0.4309 -0.0321 0.1934 0.0643 0.0862 -0.0426 -0.0315 -0.0288 -0.0526 0.9856 0.9269 0.6285
0.0092 0.0179 0.0409 0.0152 0.0007 -0.0221 0.0264 0.0003 0.0132 0.0023 0.0174 -0.0151 0.0968 0.3848
Columns 29 through 42
-0.0313 0.0654 -0.0097 0.0183 0.0060 -0.0479 -0.0356 0.0360 0.0172 -0.0158 0.0155 -0.0416 -0.0351 -0.0055
0.9000 1.0477 1.0745 1.0713 1.0943 0.3816 0.8551 0.8785 0.9105 0.9355 1.1062 1.0141 0.9958 0.9614
0.1333 -0.1197 -0.0611 -0.0938 -0.0876 0.6144 0.1911 0.0712 0.0765 0.0473 -0.0941 0.0432 0.0459 0.0393
Columns 43 through 56
-0.0131 0.0480 -0.0337 0.0431 -0.0026 0.0155 0.0359 -0.0146 -0.0108 -0.0238 -0.0371 0.0317 -0.0079 -0.0094
1.0773 1.0646 1.0405 1.0889 1.0817 1.0335 1.1353 1.0856 0.2547 0.4009 0.4324 -0.1223 0.4707 0.0772
-0.0606 -0.0717 0.0135 -0.1319 -0.0574 -0.0483 -0.1152 -0.0454 0.7803 0.5702 0.5565 1.0832 0.5758 0.9472
Columns 57 through 70
0.0907 0.0533 -0.0501 -0.0749 0.0307 -0.0140 -0.0380 -0.0401 0.0241 0.0523 0.0673 -0.0121 0.0178 0.0358
0.0478 -0.1695 0.6489 0.3663 -0.0417 -0.0188 0.2688 0.4635 0.1155 -0.1190 0.0460 0.0001 -0.0576 -0.0853
0.8417 1.1223 0.3753 0.6588 0.9847 0.9911 0.7115 0.5317 0.8517 1.0621 0.8414 0.9646 1.0601 1.0573
Columns 71 through 75