XX 学 实 验 报 告
实验课程名称: 神网络进化算法
实验项目名称: BP神网络蝴蝶花进行分类
学院: 计算机软件 专业: 软件工程
报告: 学号:
组:
指导教师:
实验时间: 2016年4月1日 2016年4月7日
实验报告提交时间: 2016年4月7日
教务处制
实验目
初步熟悉BP神网络设计BP神网络蝴蝶花进行分类
二 实验容
设计BP神网络蝴蝶花进行分类求提交试验报告容包括:
1. 问题说明描
2. 数述
3. 网络设计包括输入层隐含层输出层节点数设计
4. 算法步骤
5. 编程注意原始数通化数输入机性
6. 网络训练注意训练数验证数分开
7. 网络验证
7. 结果分析修改隐含层节点数修改学率分结果影响
8. 体会例列问题理解:
1) BP学算法基思想
2) BP网络设计中结点数确定
3) 什数进行通标准化转[11]
4) 什训练数输入序进行机化处理?
5) 什训练数测试数分开?
注意:果MatLab编程序列数存放文文件(例datadat)编写程序存放m文件中(例学号m)数文件程序文件放文件夹运行MatLab指定述文件夹工作区域命令行运行m文件
三 实验步骤
前期工作:
首先实验数分两组组训练组测试分保存trainDatatxttestDatatxt中(115组训练数35组测试数)图示:
列数代表意义:
序号 种类 叶长 叶宽 花长 花宽(单位cm)
1 1 49 30 14 2
2 2 66 29 46 13
…
150 3 65 33 60 25
(实验设计BP网络先75数网络进行训练然25数进行检测)
网络设计:
输入层4节点分应文件中3456列隐层3节点输出3类3节点表示分应100010001
算法描述:
BP学算法类似LMS算法基梯度降:权值错误信号负梯度方进行修改优点高层错误表现反传递低层修改权值
第步初始化 权值机赋值取值范围[1 +1]
第二步输入层FA输入样品计算出隐层FB活动
第三步计算出输出层FC活动
第四步网络输出期输出相较计算出输出层FC错误
第五步反传计算出隐层FB错误
第六步修改FC层FB间权值wij
第七步修改FA层FB间权值vhj
第八步修改偏差ti fj
重复第二第八步直输出层FC错误足够
MATLAB编程:
Matlab建立前馈神网络会面3函数:
newff :前馈网络创建函数
train:训练神网络
sim :网络进行仿真
MATLAB代码根隐含层节点数学率激活函数选择需稍作修改
读取训练数
[idclassf1f2f3f4] textread('trainDatatxt' 'ffffff')
特征值化
[inputminImaxI] premnmx( [f1 f2 f3 f4 ]')
构造输出矩阵
s length( class )
output zeros( s 3 )
for i 1 s
output( i class( i )+1 ) 1
end
创建神网络
net newff( minmax(input) [3 3] { 'logsig' 'logsig' } 'traingdx' )
设置训练参数
nettrainparamshow 50
nettrainparamepochs 1500
nettrainparamgoal 001
nettrainParamlr 001
开始训练
net train( net input output' )
读取训练数
[id2 c t1 t2 t3 t4 ] textread('testDatatxt' 'ffffff')
测试数化
testInput tramnmx ( [t1t2t3t4]' minI maxI )
仿真
Y sim( net testInput )
取者1位置作识结果
[resultmaxr] max(Y)
testclassr'1
统计识正确率
[s1 s2] size( Y )
hitNum 0
for i 1 s2
[m Index] max( Y( i ) )
if( Index c(i)+1 )
hitNum hitNum + 1
end
end
sprintf('ʶ±ðÂÊÊÇ 33f'100 * hitNum s2 )
输入隐层权值
w1netiw{11}
隐层阙值
bias1netb{1}
隐层输出层权值
w2netlw{21}
输出层阙值
bias2netb{2}
程序识率稳定94左右训练250次左右达收敛训练曲线图示:
面语句定位误差数:
plot(id2c) 预测数
hold on 命令绘制图形发生已张纸
plot(id2testclass)已知数
hold off
例中出结果(训练结果)
输入隐层权值:
w1
163795 52873 51517 12917
09802 32833 03474 03002
59488 22175 26289 12639
隐层输出层权值:
w2
33628 11942 113182
94958 116694 40900
1682 41606 79779
隐层阙值:
bias1
93618
04042
39510
输出层阙值:
bias2
49943
57593
04679
结果分析:
实验中尝试调整隐含层结点数选择激活函数设定学率说明:
<1>隐含层节点数
隐含层节点数识率影响节点数会增加运算量训练较慢
<2>激活函数选择
激活函数识率收敛速度显著影响逼高次曲线时S形函数精度线性函数高计算量
面代码中'logsig' ' logsig '识率94换'logsig' 'purelin'发现识率接100
<3>学率选择
学率影响着网络收敛速度网络否收敛学率设置偏保证网络收敛收敛较慢相反学率设置偏网络训练收敛影响识效果
The table shows the different result
Case
Hidden nodes
Permitted error
Learning rate
Epoch
Accuracy(100)
1
3
001
001
1241
94286
2
6
001
001
1147
94286
3
9
001
001
1067
94286
4
3
0005
001
1196
94286
5
3
001
0005
583
97143
6
3
001
05
1159
94286
7
3
03
03
43
28571
8
3
005
03
111
94286
9
3
03
005
97
71429
10
6
03
005
96
54286
(测试数35组准确率反映情况3335943435期97)
学率允许误差太时候训练情况收敛例说Permitted errorLearning rate合适时候准确率基稳定94
四总结分析
MATLAB熟悉BP神网络实现出难度学MATLAB带神网络工具箱进解样BP神网络进行蝴蝶花分类
思考题:
1) 什数进行通标准化转[11]
答:
输入数单位样数范围特导致结果神网络收敛慢训练时间长
数范围输入模式分类中作会偏数范围输入作会偏
神网络输出层激活函数值域限制需网络训练目标数映射激活函数值域例神网络输出层采S形激活函数S形函数值域限制(01)说神网络输出限制(01)训练数输出化[01]区间
2) 什训练数输入进行机化处理?
答:
BP网络质支持量机输入序进行机化处理保证够监督学时算法梯度降法进行学假训练数序会导致训练结果难收敛偏置值保证数机性BP算法训练结果收敛
3) 什训练数测试数分开?
答:
测试数参训练否识度肯定100目通训练数学预测未知数
4) BP网络设计中结点数确定?
答:
没准确确定方法合理输入层输出层结点数量足够表示隐含层结点数量视情况定
5) BP学算法基思想
答:
BP算法误差反传播(Error Back Propagation BP)算法BP算法基思想学程信号正传播误差反传播两程组成层前馈网络训练常采误差反传播算法常层前馈网络直接称BP网络
指导教师批阅意见:√
实验报告容确完整性
(20分)
实验步骤清晰程度
(20分)
实验数准确性
(20分)
实验结果分析正确性
(20分)
实验态度(实验表现格式排版独立完成时提交)(20分)
完整
20
较完整
15
够完整
10
清晰
20
较清晰
15
够清晰
10
准确
20
较准确
15
够准确
10
正确
20
较正确
15
够正确
10
规范
20
较规范
15
够规范
10
说明:
说明:
说明:
说明:
说明:
成绩评定:
指导教师签字:
2016 年 X 月 X 日
备注:
注:1报告项目容设置根实际情况加调整补充
2教师批改学生实验报告时间应学生提交实验报告时间10日
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档