BP神经网络实例.doc
文本预览下载声明
运用Matlab创建BP神经网络(R2010b)??
BP神经网络属于前向网络
以下为创建BP神经网络的方法及参数意义
(1)net=newff(P,T,S)或者net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)
P:输入参数矩阵。(RxQ1)
T:目标参数矩阵。(SNxQ2)
S:N-1个隐含层的数目(S(i)到S(N-1)),输出层的单元数目取决于T,默认为空矩阵。
TF:相关层的传递函数,默认隐含层为tansig函数,输出层为purelin函数。
BTF:BP神经网络学习训练函数,默认值为trainlm函数。
BLF:权重学习函数,默认值为learngdm。
PF:性能函数,默认值为mse。
IPF,OPF,DDF均为默认值即可。
(2)传递函数
purelin?线性传递函数
tansig?正切?S?型传递函数
logsig?对数?S?型传递函数
隐含层和输出层函数的选择对BP神经网络预测精度有较大影响,一般隐含层节点转移函数选用?tansig函数或logsig函数,输出层节点转移函数选用tansig函数或purelin函数。
(3)学习训练函数
神经网络的学习分为有导师学习和无导师学习。
最速下降BP算法:traingd
动量BP算法:traingdm
学习率可变的BP算法:trainda(学习率可变的最速下降BP算法);traindx(学习率可变的动量BP算法)
弹性算法:trainrp
变梯度算法:traincgf(Fletcher-Reeves修正算法)
traincgp(Polak_Ribiere修正算法)
traincgb(Powell-Beale复位算法)
trainbfg(BFGS?拟牛顿算法)
trainoss(OSS算法)
trainlm(LM算法)
参数说明:通过net.trainParam可以查看参数
Show Training Window Feedback showWindow: true
Show Command Line Feedback showCommandLine: false
Command Line Frequency show:?两次显示之间的训练次数
Maximum Epochs epochs:?训练次数
Maximum Training Time time:?最长训练时间(秒)
Performance Goal goal:?网络性能目标
Minimum Gradient min_grad:?性能函数最小梯度
Maximum Validation Checks max_fail:?最大验证失败次数
Learning Rate lr:?学习速率
Learning Rate Increase lr_inc:?学习速率增长值
Learning Rate lr_dec:?学习速率下降值
Maximum Performance Increase max_perf_inc:
Momentum Constant mc:?动量因子
(4)BP神经网络预测函数
SimOut = sim(model,?Parameters) y=sim(net,x)
函数功能:用训练好的BP神经网络预测函数输出
net:训练好的网络
x:输入数据
y:网络预测数据
(5)训练函数
[net,tr] = train(Net,P,T,Pi,Ai)
其中,
Net?待训练的网络
P?输入数据矩阵
T?输出数据矩阵?(default = zeros)
Pi?初始化输入层条件?(default = zeros)
Ai?初始化输出层条件?(default = zeros)
net?训练好的网络
tr?训练过程记录
注意:P Ni-by-TS cell array Each element P{i,j,ts} is an?Ni-by-Q?matrix.
T Nl-by-TS cell array Each element T{i,ts} is a?Ui-by-Q?matrix.
?
BP网络的常用函数表
?
?
函数类型 ?
函数名称 ?
函数用途 ?
前向网络创建函数 ?
newcf ?
创建级联前向网络 ?
Newff ?
创建前向BP网络 ?
传递函数 ?
logsig ?
S型的对数函数 ?
tansig ?
S型的正切函数 ?
purelin ?
纯线性函数 ?
学习函数 ?
learngd ?
基于梯度下降法的学习函数 ?
learngdm ?
梯度下降动量学习函数 ?
性能函数 ?
mse ?
均方误差函数 ?
msereg ?
均方误差规范化函数 ?
?
显示函数 ?
plotperf ?
绘制网络的性能 ?
plotes ?
绘制一个
显示全部