MATLAB BP神经网络工具箱
1. 原理
BP神经网络结构:
Matlab神经网络工具箱:
BP神经网络定义:
net=newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)
其中:
PR --输入元素的最小值和最大值的Rx2矩阵R
SI -- 第 i 层的大小,对于Nl层,N个隐藏层需要定义n个层神经元的个数
TFI--第 i 层的传递函数,默认 = ' tansig'
BTF-- 反向传播网络训练函数,默认 = ' traingdx'
BLF-- 反向传播权重/偏差学习函数,默认 = ' learngdm'
PF -- 性能函数,默认 = ' mse'
训练函数:train(net,traindata), net为神经网络,traindata为训练集数据
仿真函数:sim(net,test),传入测试的值通过仿真返回预测值
2. 过程
2.1 训练集数据可视化
导入两类训练集数据(格式为txt文本,内容为身高 体重),并绘制其数据分布,如下:
图1 训练集数据分布
2.2 数据处理
将两类训练集样本合并到一起并且给定它们已知的类别标签,1为男性,2为女性
2.3 通过神经网络工具箱设置相应的参数进行训练和仿真
设置相关神经网络参数后首先对训练集进行仿真
训练如下:
图2 神经网络训练
图3 性能指标
图4 训练状态
图5 回归分析
训练完成后通过sim函数对训练集数据进行预测,将输出结果中大于1.5的归为2类,小于等于1.5的归为1类
图6 训练集精度
得到训练集精度为90%
2.4 用测试样本数据对模型进行测试
图7 测试集分布
仿真并预测:
图8 测试集精度
得到测试集精度达到97%,说明分类器模型较好。
3. 结果与分析
本文实验通过神经网络工具箱成功构造了简单的神经网络,并且通过测试集测试的准确率达到了97%大于训练集的90%精确度,通过对数据以及样本分布进行分析,可以看出训练集的样本个数不够多且有很多数据点分布不均匀而测试集分布较为均匀。但从最后的结果上依然可以看出该神经网络分类模型在该问题上可以很好的通过身高体重特征对性别进行分类。
使用matlab神经网络工具箱可以简单的构造一个完整的BP神经网络并使用它进行分类预测,并且通过观察训练过程中的性能以及一些状态,能够更加清晰地了解到相关参数对神经网络训练地影响。