一、神经网络介绍
神经网络是模仿大脑神经网络结构和功能而建立的一种信息处理系统。其最基本的单元
是神经元,当大量的神经元构成神经网络后,该神经网络就可以完成诸如函数拟合、分类、
降噪、预测等一系列的功能,实际上神经网络的构建过程就是对权值
],,,[
21 r
wwwW ��
进
行训练的过程。
这里以 Matlab 软件编写 BP 神经网络程序实现分类功能为例,假设有枣和梨两种水果,
分别测定它们的重量和颜色,得到的数据如下(1 代表枣,0 代表梨):
类别
1
1
1
1
1
1
重量
0.2
0.1
0.15
0.32
0.17
0.28
颜色
0.61
0.77
0.53
0.82
0.92
0.73
类别
0
0
0
0
0
0
0
重量
0.69
0.73
0.51
0.62
0.74
0.81
0.96
颜色
0.26
0.19
0.34
0.51
0.24
0.17
0.33
编写.m 程序如下
function fenlei (.m文件均以function开头,fenlei是文件名)
clc (clc是清屏命令,清楚Matlab工作区的其他内容)
x=[0.20 0.10…0.96; (输入自变量矩阵x,其每一个列向量都是一个样本)
0.61 0.77…0.33];
y=[1 1 0]; (输入因变量y,1和0代表了不同的分类)
net=newff(minmax(x),[20 1],{'tansig','purelin'},'traingdx');
(“net”是网络的名字,可以任取)
(“newff”代表BP神经网络,不要修改)
(“minmax(x)”是矩阵x的极小值和极大值,不要修改)
(“[20 1]”是神经网络第一、二层神经元的个数,第一层可以修改,第二层尽量不动)
({'tansig','purelin'}是第一、二层神经元的算法,第二层不要改,第一层可以改为
'logsig')
('traingdx'是训练函数,可以改为下面表中的函数)
net.trainParam.epochs=500; (训练次数为500次)
net.trainParam.goal=0.0001; (误差为0.0001)
net.trainParam.show=50; (每训练50次显示一次结果)
net=train(net,x,y); (正式开始训练网络)
save fenlei net (保存训练好的网络,“fenlei”是任取的名字)
y1=sim(net,x); (训练之后,将原始数据x代入网络,看计算结果)
y1=y1>=0.5 (sim是使用网络进行拟合的命令)
new=[0.27 0.31 0.28 0.65 0.72 0.59; (输入新的样本,起名字叫new)
0.53 0.61 0.77 0.42 0.30 0.29];
y2=sim(net,new); (将新的样本new代入网络,进行分类)
y2=y2>=0.5
以上程序运行的结果为: