1.BP网络创建函数newff函数
在MATLAB神经网络工具箱中,使用newff函数创建一个反向传播算法的BP网络。其调用格式如下:
net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)在输入参数中,PR为R维的输入元素的R×2最大最小值矩阵;Si为第i层网络神经元的个数,共有N1层;TFi为第i层网络的转移函数,默认为tansig函数;BTF为神经网络的训练函数,默认为trainlm函数;BLF为神经网络权值/偏差的学习函数;PF为性能评价函数,默认为mse函数。在BP网络中原理介绍中,介绍了几种不同的转移函数及它们的曲线特性,在下面章节中,将详细地介绍BP神经网络不同的训练函数。在这里同样使用例14.3中蠓虫分类问题的数据,建立BP神经网络,使用不同的训练函数进行网络训练。
% 输入样本没有经过训练的神经网络输出情况为:
P=[1.24 1.36 1.38 1.38 1.38 1.4 1.48 1.54 1.56 1.14 1.18 1.2 1.26 1.28 1.3;
1.72 1.74 1.64 1.82 1.9 1.7 1.82 1.82 2.08 1.78 1.96 1.86 2.0 2.0 1.96];
% 目标样本
T=[1 1 1 1 1 1 1 1 1 0 0 0 0 0 0];
%检验样本
p=[1.24,1.28,1.4;1.8,1.84,2.04];
%创建一个两层的BP神经网络,转移函数分别为logsig函数和purelin函数
net=newff(minmax(P),[5,1],{'logsig','purelin'});
A = sim(net,P);
A =可以发现,此时网络的输出与目标样本的误差非常大。
Columns 1 through 8
1.2514 0.7697 0.7263 0.7536 0.6203 0.5283 0.4206 0.2528
Columns 9 through 15
0.4334 1.2217 0.6259 0.8826 0.5589 0.5563 0.5717
2.BP网络训练函数
MATLAB神经网络工具箱提供了大量的BP网络训练函数,包括反向传播算法函数、自适应学习速率算法函数、共扼梯度算法函数、线性搜索函数和拟牛顿法函数等。
(1)traingd函数
traingd函数使用梯度下降算法训练神经网络,通过net.trainParam可以查看traingd函数网络训练的相关参数。
net=newff(minmax(P),[5,1],{'logsig','purelin'},'traingd');使用traingd函数进行蠓虫分类,在MATLAB命令行窗口中输入:
>> net.trainParam
ans =
epochs: 100 %最大的迭代次数
goal: 0 %训练目标
lr: 0.0100 %学习速率
max_fail: 5
min_grad: 1.0000e-010
show: 25
time: Inf
net=newff(minmax(P),[5,1],{'logsig','purelin'},'traingd');
net.trainParam.show = 50;
net.trainParam.lr = 0.2;
net.trainParam.epochs = 300;
net.trainParam.goal = 0.01;
[net,tr]=train(net,P,T);
%回代检验
A=sim(net,P);
%测试样本检验
a=sim(net,p);
训练过程及测试样本检验结果如下:
TRAINGD-calcgrad, Epoch 0/300, MSE 1.26821/0.01, Gradient 4.27366/1e-010网络训练过程均方差下降曲线如下图所示。为了比较各种不同训练函数的特点,在后面的实例中,将统一使用蠓虫分类问题的训练样本数据和测试样本数据。
TRAINGD-calcgrad, Epoch 50/300, MSE 0.0224145/0.01, Gradient 0.0415513/1e-010
TRAINGD-calcgrad, Epoch 100/300, MSE 0.0123293/0.01, Gradient 0.0241917/1e-010
TRAINGD-calcgrad, Epoch 125/300, MSE 0.0099568/0.01, Gradient 0.0194082/1e-010
TRAINGD, Performance goal met.
a =
0.5978 0.6097 0.3808
More details could be found in my published book:
MATLAB编程基础与典型应用
北京:人民邮电出版社,2008
ISBN:978-7-115-17932-6/TP
Pls contact me with Email:lhd06@mails.tsinghua.edu.cn
更多MATLAB交流资源,欢迎访问:
No comments:
Post a Comment